X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Ffocus_cycle.c;h=20a738f43bc13d017f2a2f181d3306500f3c12f5;hb=5f2182c33ba5e716885f096bfe498620d111908c;hp=85cdf4808b7067e66716c825d3b531b9f9bd7d37;hpb=77baf26a7f2f64ddf1274035fd4991ab17345904;p=chaz%2Fopenbox diff --git a/openbox/focus_cycle.c b/openbox/focus_cycle.c index 85cdf480..20a738f4 100644 --- a/openbox/focus_cycle.c +++ b/openbox/focus_cycle.c @@ -60,19 +60,20 @@ void focus_cycle_stop(ObClient *ifclient) focus_cycle_iconic_windows, focus_cycle_all_desktops, focus_cycle_dock_windows, - focus_cycle_desktop_windows)) + focus_cycle_desktop_windows, + FALSE)) { - focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE); - focus_directional_cycle(0, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE); + focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,TRUE); + focus_directional_cycle(0, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE); } } ObClient* focus_cycle(gboolean forward, gboolean all_desktops, gboolean dock_windows, gboolean desktop_windows, gboolean linear, gboolean interactive, - gboolean dialog, gboolean done, gboolean cancel) + gboolean showbar, gboolean dialog, + gboolean done, gboolean cancel) { - static ObClient *t = NULL; static GList *order = NULL; GList *it, *start, *list; ObClient *ft = NULL; @@ -96,7 +97,6 @@ ObClient* focus_cycle(gboolean forward, gboolean all_desktops, list = client_list; } - if (focus_cycle_target == NULL) { focus_cycle_iconic_windows = TRUE; focus_cycle_all_desktops = all_desktops; @@ -123,12 +123,13 @@ ObClient* focus_cycle(gboolean forward, gboolean all_desktops, focus_cycle_iconic_windows, focus_cycle_all_desktops, focus_cycle_dock_windows, - focus_cycle_desktop_windows)) + focus_cycle_desktop_windows, + FALSE)) { if (interactive) { if (ft != focus_cycle_target) { /* prevents flicker */ focus_cycle_target = ft; - focus_cycle_draw_indicator(ft); + focus_cycle_draw_indicator(showbar ? ft : NULL); } if (dialog) /* same arguments as focus_target_valid */ @@ -149,7 +150,6 @@ ObClient* focus_cycle(gboolean forward, gboolean all_desktops, done_cycle: if (done && !cancel) ret = focus_cycle_target; - t = NULL; focus_cycle_target = NULL; g_list_free(order); order = NULL; @@ -191,7 +191,7 @@ static ObClient *focus_find_directional(ObClient *c, ObDirection dir, if (cur == c) continue; if (!focus_valid_target(it->data, TRUE, FALSE, FALSE, dock_windows, - desktop_windows)) + desktop_windows, FALSE)) continue; /* find the centre coords of this window, from the @@ -261,7 +261,7 @@ static ObClient *focus_find_directional(ObClient *c, ObDirection dir, ObClient* focus_directional_cycle(ObDirection dir, gboolean dock_windows, gboolean desktop_windows, gboolean interactive, - gboolean dialog, + gboolean showbar, gboolean dialog, gboolean done, gboolean cancel) { static ObClient *first = NULL; @@ -299,7 +299,7 @@ ObClient* focus_directional_cycle(ObDirection dir, gboolean dock_windows, focus_cycle_iconic_windows, focus_cycle_all_desktops, focus_cycle_dock_windows, - focus_cycle_desktop_windows)) + focus_cycle_desktop_windows, FALSE)) ft = it->data; } @@ -307,7 +307,7 @@ ObClient* focus_directional_cycle(ObDirection dir, gboolean dock_windows, focus_cycle_target = ft; if (!interactive) goto done_cycle; - focus_cycle_draw_indicator(ft); + focus_cycle_draw_indicator(showbar ? ft : NULL); } if (focus_cycle_target && dialog) /* same arguments as focus_target_valid */