summaryrefslogtreecommitdiff
path: root/openbox/focus.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-09-03 18:11:39 +0000
committerDana Jansens <danakj@orodu.net>2003-09-03 18:11:39 +0000
commit806a8c411f10c7a2292bfac15d77c8609f56ee71 (patch)
treed56c0f2a4b05b00fef085ea69930603f10ee8f75 /openbox/focus.c
parent40902496a01b21b950f3672bf2ae9e100ba9b95c (diff)
add a reconfigure action, also reconfigure on SIGUSR2.
support reconfiguring throughout the entire codebase.
Diffstat (limited to 'openbox/focus.c')
-rw-r--r--openbox/focus.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/openbox/focus.c b/openbox/focus.c
index 6e738d4a..36be7456 100644
--- a/openbox/focus.c
+++ b/openbox/focus.c
@@ -24,28 +24,30 @@ GList **focus_order; /* these lists are created when screen_startup
static ObClient *focus_cycle_target;
static Popup *focus_cycle_popup;
-void focus_startup()
+void focus_startup(gboolean reconfig)
{
-
focus_cycle_popup = popup_new(TRUE);
- /* start with nothing focused */
- focus_set_client(NULL);
+ if (!reconfig)
+ /* start with nothing focused */
+ focus_set_client(NULL);
}
-void focus_shutdown()
+void focus_shutdown(gboolean reconfig)
{
guint i;
- for (i = 0; i < screen_num_desktops; ++i)
- g_list_free(focus_order[i]);
- g_free(focus_order);
-
popup_free(focus_cycle_popup);
- /* reset focus to root */
- XSetInputFocus(ob_display, PointerRoot, RevertToPointerRoot,
- event_lasttime);
+ if (!reconfig) {
+ for (i = 0; i < screen_num_desktops; ++i)
+ g_list_free(focus_order[i]);
+ g_free(focus_order);
+
+ /* reset focus to root */
+ XSetInputFocus(ob_display, PointerRoot, RevertToPointerRoot,
+ event_lasttime);
+ }
}
static void push_to_top(ObClient *client)