From 48f2c3657ff0e37b4c5c837fdd490c604b61ac27 Mon Sep 17 00:00:00 2001 From: Benoit Gschwind Date: Sat, 23 Feb 2008 14:49:44 +0100 Subject: [PATCH] focus_target_cycle is back in openbox-core --- engines/default/plugin.c | 2 -- openbox/engine_interface.h | 2 +- openbox/event.c | 2 +- openbox/focus_cycle.c | 44 +++++++++++++++++++------------------- 4 files changed, 24 insertions(+), 26 deletions(-) diff --git a/engines/default/plugin.c b/engines/default/plugin.c index 0c21c307..6fae75df 100644 --- a/engines/default/plugin.c +++ b/engines/default/plugin.c @@ -1580,8 +1580,6 @@ ObFrameEngine engine = { frame_is_max_vert, /* */ frame_trigger, /* */ load_theme_config, /* */ - /* This fields are fill by openbox. */ - 0, /*struct _ObClient *focus_cycle_target; */ }; ObFrameEngine * get_info() diff --git a/openbox/engine_interface.h b/openbox/engine_interface.h index 1f1e62ea..a793c303 100644 --- a/openbox/engine_interface.h +++ b/openbox/engine_interface.h @@ -185,7 +185,7 @@ struct _ObFrameEngine RrFont *menu_item_font, RrFont *osd_font); /* Filled by openbox-core */ - struct _ObClient *focus_cycle_target; + //struct _ObClient *focus_cycle_target; //gboolean moveresize_in_progress; }; /* Define how to draw the current windows */ diff --git a/openbox/event.c b/openbox/event.c index 074708da..0c370f75 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -1892,7 +1892,7 @@ static void event_handle_user_input(ObClient *client, XEvent *e) in the case where it is animating before disappearing */ mouse_event(client, e); } else - keyboard_event((frame_engine.focus_cycle_target ? frame_engine.focus_cycle_target : + keyboard_event((focus_cycle_target ? focus_cycle_target : (client ? client : focus_client)), e); } } diff --git a/openbox/focus_cycle.c b/openbox/focus_cycle.c index d8e73b98..3b52dd09 100644 --- a/openbox/focus_cycle.c +++ b/openbox/focus_cycle.c @@ -54,7 +54,7 @@ void focus_cycle_stop(ObClient *ifclient) { /* stop focus cycling if the given client is a valid focus target, and so the cycling is being disrupted */ - if (frame_engine.focus_cycle_target && ifclient && + if (focus_cycle_target && ifclient && focus_valid_target(ifclient, TRUE, focus_cycle_iconic_windows, focus_cycle_all_desktops, @@ -80,7 +80,7 @@ ObClient* focus_cycle(gboolean forward, gboolean all_desktops, if (interactive) { if (cancel) { - frame_engine.focus_cycle_target = NULL; + focus_cycle_target = NULL; goto done_cycle; } else if (done) goto done_cycle; @@ -97,14 +97,14 @@ ObClient* focus_cycle(gboolean forward, gboolean all_desktops, } - if (frame_engine.focus_cycle_target == NULL) { + if (focus_cycle_target == NULL) { focus_cycle_iconic_windows = TRUE; focus_cycle_all_desktops = all_desktops; focus_cycle_dock_windows = dock_windows; focus_cycle_desktop_windows = desktop_windows; start = it = g_list_find(list, focus_client); } else - start = it = g_list_find(list, frame_engine.focus_cycle_target); + start = it = g_list_find(list, focus_cycle_target); if (!start) /* switched desktops or something? */ start = it = forward ? g_list_last(list) : g_list_first(list); @@ -126,8 +126,8 @@ ObClient* focus_cycle(gboolean forward, gboolean all_desktops, focus_cycle_desktop_windows)) { if (interactive) { - if (ft != frame_engine.focus_cycle_target) { /* prevents flicker */ - frame_engine.focus_cycle_target = ft; + if (ft != focus_cycle_target) { /* prevents flicker */ + focus_cycle_target = ft; focus_cycle_draw_indicator(showbar ? ft : NULL); } /* same arguments as focus_target_valid */ @@ -137,9 +137,9 @@ ObClient* focus_cycle(gboolean forward, gboolean all_desktops, focus_cycle_dock_windows, focus_cycle_desktop_windows, mode); - return frame_engine.focus_cycle_target; - } else if (ft != frame_engine.focus_cycle_target) { - frame_engine.focus_cycle_target = ft; + return focus_cycle_target; + } else if (ft != focus_cycle_target) { + focus_cycle_target = ft; done = TRUE; break; } @@ -147,10 +147,10 @@ ObClient* focus_cycle(gboolean forward, gboolean all_desktops, } while (it != start); done_cycle: - if (done && !cancel) ret = frame_engine.focus_cycle_target; + if (done && !cancel) ret = focus_cycle_target; t = NULL; - frame_engine.focus_cycle_target = NULL; + focus_cycle_target = NULL; g_list_free(order); order = NULL; @@ -273,7 +273,7 @@ ObClient* focus_directional_cycle(ObDirection dir, gboolean dock_windows, ObClient *ret = NULL; if (cancel) { - frame_engine.focus_cycle_target = NULL; + focus_cycle_target = NULL; goto done_cycle; } else if (done && interactive) goto done_cycle; @@ -281,7 +281,7 @@ ObClient* focus_directional_cycle(ObDirection dir, gboolean dock_windows, if (!focus_order) goto done_cycle; - if (frame_engine.focus_cycle_target == NULL) { + if (focus_cycle_target == NULL) { focus_cycle_iconic_windows = FALSE; focus_cycle_all_desktops = FALSE; focus_cycle_dock_windows = dock_windows; @@ -290,8 +290,8 @@ ObClient* focus_directional_cycle(ObDirection dir, gboolean dock_windows, if (!first) first = focus_client; - if (frame_engine.focus_cycle_target) - ft = focus_find_directional(frame_engine.focus_cycle_target, dir, dock_windows, + if (focus_cycle_target) + ft = focus_find_directional(focus_cycle_target, dir, dock_windows, desktop_windows); else if (first) ft = focus_find_directional(first, dir, dock_windows, desktop_windows); @@ -307,26 +307,26 @@ ObClient* focus_directional_cycle(ObDirection dir, gboolean dock_windows, ft = it->data; } - if (ft && ft != frame_engine.focus_cycle_target) {/* prevents flicker */ - frame_engine.focus_cycle_target = ft; + if (ft && ft != focus_cycle_target) {/* prevents flicker */ + focus_cycle_target = ft; if (!interactive) goto done_cycle; focus_cycle_draw_indicator(showbar ? ft : NULL); } - if (frame_engine.focus_cycle_target && dialog) + if (focus_cycle_target && dialog) /* same arguments as focus_target_valid */ - focus_cycle_popup_single_show(frame_engine.focus_cycle_target, + focus_cycle_popup_single_show(focus_cycle_target, focus_cycle_iconic_windows, focus_cycle_all_desktops, focus_cycle_dock_windows, focus_cycle_desktop_windows); - return frame_engine.focus_cycle_target; + return focus_cycle_target; done_cycle: - if (done && !cancel) ret = frame_engine.focus_cycle_target; + if (done && !cancel) ret = focus_cycle_target; first = NULL; - frame_engine.focus_cycle_target = NULL; + focus_cycle_target = NULL; focus_cycle_draw_indicator(NULL); focus_cycle_popup_single_hide(); -- 2.34.1