X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Fevent.c;h=a9841b0e142f2c814035a579fc248b699a030dc2;hb=50d70283347236df2ce43718c73b0568067b9629;hp=e3efb289bd72e24d1cc419d7402f207afefb4ac1;hpb=889c5aab4f7f06ca396e5922ece436e48b88b098;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index e3efb289..a9841b0e 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -319,7 +319,7 @@ static gboolean event_ignore(XEvent *e, ObClient *client) break; if (fe.type == FocusOut) { #ifdef DEBUG_FOCUS - ob_debug("found pending FocusOut"); + ob_debug("found pending FocusOut\n"); #endif if (!INVALID_FOCUSOUT(&fe)) { /* if there is a VALID FocusOut still coming, don't @@ -330,7 +330,7 @@ static gboolean event_ignore(XEvent *e, ObClient *client) } } else { #ifdef DEBUG_FOCUS - ob_debug("found pending FocusIn"); + ob_debug("found pending FocusIn\n"); #endif /* is the focused window getting a FocusOut/In back to itself? @@ -348,7 +348,7 @@ static gboolean event_ignore(XEvent *e, ObClient *client) if (focus_client) { #ifdef DEBUG_FOCUS ob_debug("focused window got an Out/In back to " - "itself IGNORED both"); + "itself IGNORED both\n"); #endif return TRUE; } else { @@ -356,7 +356,7 @@ static gboolean event_ignore(XEvent *e, ObClient *client) #ifdef DEBUG_FOCUS ob_debug("focused window got an Out/In back to " "itself but focus_client was null " - "IGNORED just the Out"); + "IGNORED just the Out\n"); #endif return TRUE; } @@ -376,7 +376,7 @@ static gboolean event_ignore(XEvent *e, ObClient *client) if (fallback) { #ifdef DEBUG_FOCUS ob_debug("no valid FocusIn and no FocusOut events found, " - "falling back"); + "falling back\n"); #endif focus_fallback(OB_FOCUS_FALLBACK_NOFOCUS); } @@ -392,7 +392,7 @@ static gboolean event_ignore(XEvent *e, ObClient *client) (e->xcrossing.mode == NotifyUngrab && e->xcrossing.detail == NotifyVirtual)) { #ifdef DEBUG_FOCUS - ob_debug("%sNotify mode %d detail %d on %lx IGNORED", + ob_debug("%sNotify mode %d detail %d on %lx IGNORED\n", (e->type == EnterNotify ? "Enter" : "Leave"), e->xcrossing.mode, e->xcrossing.detail, client?client->window:0); @@ -400,7 +400,7 @@ static gboolean event_ignore(XEvent *e, ObClient *client) return TRUE; } #ifdef DEBUG_FOCUS - ob_debug("%sNotify mode %d detail %d on %lx", + ob_debug("%sNotify mode %d detail %d on %lx\n", (e->type == EnterNotify ? "Enter" : "Leave"), e->xcrossing.mode, e->xcrossing.detail, client?client->window:0); @@ -645,9 +645,11 @@ static void event_handle_client(ObClient *client, XEvent *e) case OB_FRAME_CONTEXT_FRAME: /* XXX if doing a 'reconfigure' make sure you kill this timer, maybe all timers.. */ - if (config_focus_delay) { + if (config_focus_delay && client == focus_delay_client) { + ob_main_loop_timeout_remove_data(ob_main_loop, + focus_delay_func, + focus_delay_client); focus_delay_client = NULL; - ob_main_loop_timeout_remove(ob_main_loop, focus_delay_func); } default: break; @@ -695,7 +697,7 @@ static void event_handle_client(ObClient *client, XEvent *e) ob_main_loop_timeout_add(ob_main_loop, config_focus_delay, focus_delay_func, - NULL, NULL); + client, NULL); focus_delay_client = client; } else client_focus(client); @@ -1124,8 +1126,7 @@ static void event_handle_menu(XEvent *ev) else { if ((e = menu_entry_frame_under(ev->xbutton.x_root, ev->xbutton.y_root))) - menu_entry_frame_execute(e, - !(ev->xbutton.state & ControlMask)); + menu_entry_frame_execute(e, ev->xbutton.state); } break; case MotionNotify: @@ -1143,8 +1144,7 @@ static void event_handle_menu(XEvent *ev) else if (ev->xkey.keycode == ob_keycode(OB_KEY_RETURN)) { ObMenuFrame *f; if ((f = find_active_menu())) - menu_entry_frame_execute(f->selected, - !(ev->xkey.state & ControlMask)); + menu_entry_frame_execute(f->selected, ev->xkey.state); } else if (ev->xkey.keycode == ob_keycode(OB_KEY_LEFT)) { ObMenuFrame *f; if ((f = find_active_menu()) && f->parent) @@ -1176,7 +1176,8 @@ static void focus_delay_client_dest(gpointer data) { ObClient *c = data; if (c == focus_delay_client) { + ob_main_loop_timeout_remove_data(ob_main_loop, focus_delay_func, + focus_delay_client); focus_delay_client = NULL; - ob_main_loop_timeout_remove(ob_main_loop, focus_delay_func); } }