X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Ffocus.c;h=949a3291721be33c9aaed16b6dfb28aede962ba4;hb=ea6d0e0d4d31d0d810fa752d04b702b3b599e3df;hp=2ee2cf2f6037cb8f48f7ab30713c0faf7356f5c2;hpb=d5eacc5642ad8f5611f7c946d734863bc8898513;p=chaz%2Fopenbox diff --git a/openbox/focus.c b/openbox/focus.c index 2ee2cf2f..949a3291 100644 --- a/openbox/focus.c +++ b/openbox/focus.c @@ -1,5 +1,6 @@ #include "event.h" #include "openbox.h" +#include "grab.h" #include "framerender.h" #include "client.h" #include "config.h" @@ -40,8 +41,7 @@ void focus_startup() -100, -100, 1, 1, 0, CopyFromParent, InputOutput, CopyFromParent, CWOverrideRedirect, &attrib); - XMapWindow(ob_display, focus_backup); - stacking_raise_internal(focus_backup); + XMapRaised(ob_display, focus_backup); /* start with nothing focused */ focus_set_client(NULL); @@ -272,6 +272,9 @@ Client *focus_cycle(gboolean forward, gboolean linear, gboolean done, client_activate(focus_cycle_target); goto done_cycle; } + if (!first) + grab_pointer(TRUE, None); + if (!first) first = focus_client; if (!focus_cycle_target) focus_cycle_target = focus_client; @@ -313,7 +316,10 @@ done_cycle: focus_cycle_target = NULL; g_list_free(order); order = NULL; + popup_cycle(ft, FALSE); + grab_pointer(FALSE, None); + return NULL; }