X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fevent.c;h=7e0dc0aaf0aba1a1bf115fe59fdcb8fe580ac3c1;hb=c7e818abd78c3f2207d28e8035a46b58593be5f9;hp=1430c3d23af36b73819ac2a169f2780d24db17b1;hpb=c3a2684e02b3399d7b65332d001c34225c067eee;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index 1430c3d2..7e0dc0aa 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -248,9 +248,9 @@ void event_process(XEvent *e) /* secret magic way of event_process telling us that no client was found for the FocusIn event */ if (fi.xfocus.window == None) - focus_set_client(NULL); + focus_fallback(FALSE); } else - focus_set_client(NULL); + focus_fallback(FALSE); } break; case EnterNotify: @@ -349,17 +349,21 @@ static void event_handle_client(Client *client, XEvent *e) engine_frame_adjust_focus(client->frame); break; case EnterNotify: - if (ob_state == State_Starting) { - /* move it to the top of the focus order */ - guint desktop = client->desktop; - if (desktop == DESKTOP_ALL) desktop = screen_desktop; - focus_order[desktop] = g_list_remove(focus_order[desktop], client); - focus_order[desktop] = g_list_prepend(focus_order[desktop],client); - } else { - if (!config_get("focusFollowsMouse", Config_Bool, &focus_follow)) - g_assert_not_reached(); - if (focus_follow.bool) - client_focus(client); + if (client_normal(client)) { + if (ob_state == State_Starting) { + /* move it to the top of the focus order */ + guint desktop = client->desktop; + if (desktop == DESKTOP_ALL) desktop = screen_desktop; + focus_order[desktop] = g_list_remove(focus_order[desktop], + client); + focus_order[desktop] = g_list_prepend(focus_order[desktop], + client); + } else { + if (!config_get("focusFollowsMouse",Config_Bool,&focus_follow)) + g_assert_not_reached(); + if (focus_follow.bool) + client_focus(client); + } } break; case ConfigureRequest: