1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-20 04:48:06 +01:00

fixed lockup when multi-clicking menu

This commit is contained in:
kojima
2000-03-06 21:52:43 +00:00
parent 553539748d
commit 6c8226a52f
2 changed files with 14 additions and 4 deletions

View File

@@ -1949,6 +1949,11 @@ menuMouseDown(WObjDescriptor *desc, XEvent *event)
d_data.magic = WMAddTimerHandler(wPreferences.dblclick_time,
delaySelection, &d_data);
}
if (menu->flags.inside_handler) {
return;
}
menu->flags.inside_handler = 1;
wRaiseFrame(menu->frame->core);
@@ -1963,7 +1968,7 @@ menuMouseDown(WObjDescriptor *desc, XEvent *event)
}
if (menu->flags.editing) {
return;
goto byebye;
}
entry_no = getEntryAt(menu, x, y);
if (entry_no>=0) {
@@ -1972,9 +1977,9 @@ menuMouseDown(WObjDescriptor *desc, XEvent *event)
if (!close_on_exit && (bev->state & ControlMask) && smenu
&& entry->flags.editable) {
editEntry(smenu, entry);
return;
goto byebye;
} else if (bev->state & ControlMask) {
return;
goto byebye;
}
if (entry->flags.enabled && entry->cascade>=0 && menu->cascades) {
@@ -2005,7 +2010,7 @@ menuMouseDown(WObjDescriptor *desc, XEvent *event)
while (!done) {
int x, y;
XAllowEvents(dpy, SyncPointer, CurrentTime);
XAllowEvents(dpy, AsyncPointer|SyncPointer, CurrentTime);
WMMaskEvent(dpy, ExposureMask|ButtonMotionMask|ButtonReleaseMask
|ButtonPressMask, &ev);
@@ -2205,6 +2210,9 @@ menuMouseDown(WObjDescriptor *desc, XEvent *event)
if (!wPreferences.wrap_menus)
wMenuMove(parentMenu(desc->parent), old_frame_x, old_frame_y, True);
byebye:
((WMenu*)desc->parent)->flags.inside_handler = 0;
}