X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Fevent.c;h=cb739339e6d8b961bb9c653b1e90f3e4f17626d7;hb=a76ac8205cbfe484a5fee7749daa20ed2b7e8a2b;hp=6e11f82eac819dcf8fff9addb8c10e8f27c723fd;hpb=f638c5b8fac29cffb62de1f6cab351b48afda918;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index 6e11f82e..cb739339 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -539,13 +539,6 @@ static void event_process(const XEvent *ec, gpointer data) gboolean nomove = FALSE; XEvent ce; - if (client) { - frame_adjust_focus(client->frame, FALSE); - /* focus_set_client(NULL) has already been called in this - section or by focus_fallback */ - client_calc_layer(client); - } - /* Look for the followup FocusIn */ if (!XCheckIfEvent(ob_display, &ce, event_look_for_focusin, NULL)) { /* There is no FocusIn, this means focus went to a window that @@ -581,6 +574,13 @@ static void event_process(const XEvent *ec, gpointer data) focus_fallback(TRUE); } } + + if (client && client != focus_client) { + frame_adjust_focus(client->frame, FALSE); + /* focus_set_client(NULL) has already been called in this + section or by focus_fallback */ + client_calc_layer(client); + } } else if (timewinclients) event_handle_user_time_window_clients(timewinclients, e); else if (client) @@ -1588,8 +1588,8 @@ static gboolean event_handle_menu_keyboard(XEvent *ev) menu_frame_select_next(frame); } - /* keyboard accelerator shortcuts. */ - else if (ev->xkey.state == 0 && + /* keyboard accelerator shortcuts. (allow controlmask) */ + else if ((ev->xkey.state & ~ControlMask) == 0 && /* was it a valid key? */ unikey != 0 && /* don't bother if the menu is empty. */