summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openbox/client.c6
-rw-r--r--openbox/dock.c2
-rw-r--r--openbox/event.c2
-rw-r--r--openbox/focus.c2
-rw-r--r--openbox/frame.c2
-rw-r--r--openbox/openbox.c13
-rw-r--r--openbox/openbox.h2
-rw-r--r--openbox/screen.c2
-rw-r--r--openbox/stacking.c2
-rw-r--r--plugins/placement/history.c2
-rw-r--r--plugins/placement/placement.c2
11 files changed, 21 insertions, 16 deletions
diff --git a/openbox/client.c b/openbox/client.c
index 644198a7..339c2a18 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -256,7 +256,7 @@ void client_manage(Window window)
focus_order_add_new(self);
/* focus the new window? */
- if (ob_state != OB_STATE_STARTING && config_focus_new &&
+ if (ob_state() != OB_STATE_STARTING && config_focus_new &&
(self->type == OB_CLIENT_TYPE_NORMAL || self->type == OB_CLIENT_TYPE_DIALOG)) {
gboolean group_foc = FALSE;
@@ -405,7 +405,7 @@ void client_unmanage(ObClient *self)
frame_release_client(self->frame, self);
self->frame = NULL;
- if (ob_state != OB_STATE_EXITING) {
+ if (ob_state() != OB_STATE_EXITING) {
/* these values should not be persisted across a window
unmapping/mapping */
prop_erase(self->window, prop_atoms.net_wm_desktop);
@@ -1125,7 +1125,7 @@ void client_update_wmhints(ObClient *self)
/* only do this when first managing the window *AND* when we aren't
starting up! */
- if (ob_state != OB_STATE_STARTING && self->frame == NULL)
+ if (ob_state() != OB_STATE_STARTING && self->frame == NULL)
if (hints->flags & StateHint)
self->iconic = hints->initial_state == IconicState;
diff --git a/openbox/dock.c b/openbox/dock.c
index 5d110353..5f7585da 100644
--- a/openbox/dock.c
+++ b/openbox/dock.c
@@ -93,7 +93,7 @@ void dock_add(Window win, XWMHints *wmhints)
member set the root window, and one set to the client, but both get
handled and need to be ignored.
*/
- if (ob_state == OB_STATE_STARTING)
+ if (ob_state() == OB_STATE_STARTING)
app->ignore_unmaps += 2;
if (app->win != app->icon_win) {
diff --git a/openbox/event.c b/openbox/event.c
index d80f755c..6d74a27d 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -650,7 +650,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
break;
case EnterNotify:
if (client_normal(client)) {
- if (ob_state == OB_STATE_STARTING) {
+ if (ob_state() == OB_STATE_STARTING) {
/* move it to the top of the focus order */
guint desktop = client->desktop;
if (desktop == DESKTOP_ALL) desktop = screen_desktop;
diff --git a/openbox/focus.c b/openbox/focus.c
index 6177bc9a..0285f40d 100644
--- a/openbox/focus.c
+++ b/openbox/focus.c
@@ -94,7 +94,7 @@ void focus_set_client(ObClient *client)
push_to_top(client);
/* set the NET_ACTIVE_WINDOW hint, but preserve it on shutdown */
- if (ob_state != OB_STATE_EXITING) {
+ if (ob_state() != OB_STATE_EXITING) {
active = client ? client->window : None;
PROP_SET32(RootWindow(ob_display, ob_screen),
net_active_window, window, active);
diff --git a/openbox/frame.c b/openbox/frame.c
index 82e7f90b..5efc869a 100644
--- a/openbox/frame.c
+++ b/openbox/frame.c
@@ -349,7 +349,7 @@ void frame_grab_client(ObFrame *self, ObClient *client)
member set the root window, and one set to the client, but both get
handled and need to be ignored.
*/
- if (ob_state == OB_STATE_STARTING)
+ if (ob_state() == OB_STATE_STARTING)
client->ignore_unmaps += 2;
/* select the event mask on the client's parent (to receive config/map
diff --git a/openbox/openbox.c b/openbox/openbox.c
index 65669652..747f3840 100644
--- a/openbox/openbox.c
+++ b/openbox/openbox.c
@@ -59,10 +59,10 @@ RrInstance *ob_rr_inst;
RrTheme *ob_rr_theme;
Display *ob_display;
gint ob_screen;
-ObState ob_state;
Cursor ob_cursors[OB_NUM_CURSORS];
KeyCode ob_keys[OB_NUM_KEYS];
+static ObState state;
static gboolean sync;
static gboolean shutdown;
static gboolean restart;
@@ -91,7 +91,7 @@ int main(int argc, char **argv)
xmlDocPtr doc;
xmlNodePtr node;
- ob_state = OB_STATE_STARTING;
+ state = OB_STATE_STARTING;
/* initialize the locale */
if (!setlocale(LC_ALL, ""))
@@ -256,10 +256,10 @@ int main(int argc, char **argv)
/* get all the existing windows */
client_manage_all();
- ob_state = OB_STATE_RUNNING;
+ state = OB_STATE_RUNNING;
while (!shutdown)
event_loop();
- ob_state = OB_STATE_EXITING;
+ state = OB_STATE_EXITING;
dock_remove_all();
client_unmanage_all();
@@ -612,3 +612,8 @@ KeyCode ob_keycode(ObKey key)
g_assert(key < OB_NUM_KEYS);
return ob_keys[key];
}
+
+ObState ob_state()
+{
+ return state;
+}
diff --git a/openbox/openbox.h b/openbox/openbox.h
index 93ee4813..73f84364 100644
--- a/openbox/openbox.h
+++ b/openbox/openbox.h
@@ -28,7 +28,7 @@ SnDisplay *ob_sn_display;
extern gint ob_screen;
/* The state of execution of the window manager */
-extern ObState ob_state;
+ObState ob_state();
void ob_restart_other(const gchar *path);
void ob_restart();
diff --git a/openbox/screen.c b/openbox/screen.c
index 67863d17..4b25a035 100644
--- a/openbox/screen.c
+++ b/openbox/screen.c
@@ -257,7 +257,7 @@ void screen_resize()
PROP_SETA32(RootWindow(ob_display, ob_screen),
net_desktop_geometry, cardinal, geometry, 2);
- if (ob_state == OB_STATE_STARTING)
+ if (ob_state() == OB_STATE_STARTING)
return;
dock_configure();
diff --git a/openbox/stacking.c b/openbox/stacking.c
index 5b9b37b2..bab7b765 100644
--- a/openbox/stacking.c
+++ b/openbox/stacking.c
@@ -18,7 +18,7 @@ void stacking_set_list()
/* on shutdown, don't update the properties, so that we can read it back
in on startup and re-stack the windows as they were before we shut down
*/
- if (ob_state == OB_STATE_EXITING) return;
+ if (ob_state() == OB_STATE_EXITING) return;
/* create an array of the window ids (from bottom to top,
reverse order!) */
diff --git a/plugins/placement/history.c b/plugins/placement/history.c
index 22dbb6e0..eeff1f63 100644
--- a/plugins/placement/history.c
+++ b/plugins/placement/history.c
@@ -58,7 +58,7 @@ gboolean place_history(ObClient *c)
if (hi && !(hi->flags & PLACED)) {
hi->flags |= PLACED;
- if (ob_state != OB_STATE_STARTING) {
+ if (ob_state() != OB_STATE_STARTING) {
if (hi->flags & HAVE_POSITION ||
hi->flags & HAVE_SIZE) {
if (hi->flags & HAVE_POSITION) {
diff --git a/plugins/placement/placement.c b/plugins/placement/placement.c
index a84c41ec..599d58a9 100644
--- a/plugins/placement/placement.c
+++ b/plugins/placement/placement.c
@@ -30,7 +30,7 @@ static void place_random(ObClient *c)
int x, y;
Rect *area;
- if (ob_state == OB_STATE_STARTING) return;
+ if (ob_state() == OB_STATE_STARTING) return;
area = screen_area_monitor(c->desktop,
g_random_int_range(0, screen_num_monitors));