diff options
Diffstat (limited to 'openbox/focus.c')
| -rw-r--r-- | openbox/focus.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/openbox/focus.c b/openbox/focus.c index e21e8b5b..2d6804bc 100644 --- a/openbox/focus.c +++ b/openbox/focus.c @@ -56,9 +56,11 @@ static ObIconPopup *focus_cycle_popup; static void focus_cycle_destructor(ObClient *client, gpointer data) { - /* end cycling if the target disappears */ + /* end cycling if the target disappears. CurrentTime is fine, time won't + be used + */ if (focus_cycle_target == client) - focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE); + focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, CurrentTime); } static Window createWindow(Window parent, gulong mask, @@ -185,9 +187,11 @@ void focus_set_client(ObClient *client) XSync(ob_display, FALSE); } - /* in the middle of cycling..? kill it. */ + /* in the middle of cycling..? kill it. CurrentTime is fine, time won't + be used. + */ if (focus_cycle_target) - focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE); + focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, CurrentTime); old = focus_client; focus_client = client; @@ -547,7 +551,7 @@ static gboolean valid_focus_target(ObClient *ft) } void focus_cycle(gboolean forward, gboolean linear, gboolean interactive, - gboolean dialog, gboolean done, gboolean cancel) + gboolean dialog, gboolean done, gboolean cancel, Time time) { static ObClient *first = NULL; static ObClient *t = NULL; @@ -608,7 +612,7 @@ void focus_cycle(gboolean forward, gboolean linear, gboolean interactive, done_cycle: if (done && focus_cycle_target) - client_activate(focus_cycle_target, FALSE, TRUE); + client_activate(focus_cycle_target, FALSE, TRUE, time); t = NULL; first = NULL; @@ -625,7 +629,8 @@ done_cycle: } void focus_directional_cycle(ObDirection dir, gboolean interactive, - gboolean dialog, gboolean done, gboolean cancel) + gboolean dialog, gboolean done, gboolean cancel, + Time time) { static ObClient *first = NULL; ObClient *ft = NULL; @@ -670,7 +675,7 @@ void focus_directional_cycle(ObDirection dir, gboolean interactive, done_cycle: if (done && focus_cycle_target) - client_activate(focus_cycle_target, FALSE, TRUE); + client_activate(focus_cycle_target, FALSE, TRUE, time); first = NULL; focus_cycle_target = NULL; |
