X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Ffocus.c;h=c30d0e613ffaff3d03c348f975aaa34856a785ac;hb=c0c06e3828981cacc96b27a87d7803f603241d15;hp=1642261dac685967365b8aaf3889c79980498436;hpb=79e189dbac9ec5ae5baed26515ee60b8dce9a079;p=chaz%2Fopenbox diff --git a/openbox/focus.c b/openbox/focus.c index 1642261d..c30d0e61 100644 --- a/openbox/focus.c +++ b/openbox/focus.c @@ -262,7 +262,7 @@ static void popup_cycle(ObClient *c, gboolean show) } ObClient *focus_cycle(gboolean forward, gboolean linear, gboolean done, - gboolean cancel) + gboolean cancel) { static ObClient *first = NULL; static ObClient *t = NULL; @@ -278,11 +278,9 @@ ObClient *focus_cycle(gboolean forward, gboolean linear, gboolean done, goto done_cycle; } else if (done) { if (focus_cycle_target) - client_activate(focus_cycle_target); + client_activate(focus_cycle_target, FALSE); goto done_cycle; } - if (!first) - grab_pointer(TRUE, None); if (!first) first = focus_client; if (!focus_cycle_target) focus_cycle_target = focus_client; @@ -311,6 +309,7 @@ ObClient *focus_cycle(gboolean forward, gboolean linear, gboolean done, desktop */ if (ft->transients == NULL && client_normal(ft) && ((ft->can_focus || ft->focus_notify) && + !ft->skip_taskbar && (ft->desktop == screen_desktop || ft->desktop == DESKTOP_ALL))) { if (ft != focus_cycle_target) { /* prevents flicker */ if (focus_cycle_target) @@ -331,7 +330,6 @@ done_cycle: order = NULL; popup_cycle(ft, FALSE); - grab_pointer(FALSE, None); return NULL; }