From: Dana Jansens Date: Sun, 2 Mar 2008 20:37:07 +0000 (-0500) Subject: add a RECONFIGURING state, and enter that when doing reconfiguring X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=7ea56abf05b9e6cd4e806dbfa1146562378edc7b;p=chaz%2Fopenbox add a RECONFIGURING state, and enter that when doing reconfiguring --- diff --git a/openbox/event.c b/openbox/event.c index 5c4700ae..a7f65fcb 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -652,9 +652,11 @@ static void event_process(const XEvent *ec, gpointer data) /* keyboard layout changes for modifier mapping changes. reload the modifier map, and rebind all the key bindings as appropriate */ ob_debug("Kepboard map changed. Reloading keyboard bindings.\n"); + ob_set_state(OB_STATE_RECONFIGURING); modkeys_shutdown(TRUE); modkeys_startup(TRUE); keyboard_rebind(); + ob_set_state(OB_STATE_RUNNING); } else if (e->type == ClientMessage) { /* This is for _NET_WM_REQUEST_FRAME_EXTENTS messages. They come for diff --git a/openbox/misc.h b/openbox/misc.h index c73c9265..c1ec4075 100644 --- a/openbox/misc.h +++ b/openbox/misc.h @@ -60,7 +60,8 @@ typedef enum { OB_STATE_STARTING, OB_STATE_RUNNING, - OB_STATE_EXITING + OB_STATE_EXITING, + OB_STATE_RECONFIGURING } ObState; typedef enum diff --git a/openbox/openbox.c b/openbox/openbox.c index fb1e75d0..eb7934e0 100644 --- a/openbox/openbox.c +++ b/openbox/openbox.c @@ -121,7 +121,7 @@ gint main(gint argc, gchar **argv) { gchar *program_name; - state = OB_STATE_STARTING; + ob_set_state(OB_STATE_STARTING); /* initialize the locale */ if (!setlocale(LC_ALL, "")) @@ -367,9 +367,10 @@ gint main(gint argc, gchar **argv) reconfigure = FALSE; - state = OB_STATE_RUNNING; + ob_set_state(OB_STATE_RUNNING); ob_main_loop_run(ob_main_loop); - state = OB_STATE_EXITING; + ob_set_state(reconfigure ? + OB_STATE_RECONFIGURING : OB_STATE_EXITING); if (!reconfigure) { dock_remove_all(); @@ -709,3 +710,8 @@ ObState ob_state() { return state; } + +void ob_set_state(ObState s) +{ + state = s; +} diff --git a/openbox/openbox.h b/openbox/openbox.h index 4f2310f8..06d38297 100644 --- a/openbox/openbox.h +++ b/openbox/openbox.h @@ -52,6 +52,7 @@ extern gboolean ob_debug_xinerama; /* The state of execution of the window manager */ ObState ob_state(); +void ob_set_state(ObState state); void ob_restart_other(const gchar *path); void ob_restart(); diff --git a/openbox/screen.c b/openbox/screen.c index 2e48f85c..15b3c8d8 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -492,7 +492,7 @@ void screen_resize(void) PROP_SETA32(RootWindow(ob_display, ob_screen), net_desktop_geometry, cardinal, geometry, 2); - if (ob_state() == OB_STATE_STARTING) + if (ob_state() != OB_STATE_RUNNING) return; screen_update_areas();