make ob_state a function so it cant be changed outside of openbox.c
This commit is contained in:
parent
35418ca0fc
commit
bddbe94328
11 changed files with 21 additions and 16 deletions
|
@ -256,7 +256,7 @@ void client_manage(Window window)
|
||||||
focus_order_add_new(self);
|
focus_order_add_new(self);
|
||||||
|
|
||||||
/* focus the new window? */
|
/* 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)) {
|
(self->type == OB_CLIENT_TYPE_NORMAL || self->type == OB_CLIENT_TYPE_DIALOG)) {
|
||||||
gboolean group_foc = FALSE;
|
gboolean group_foc = FALSE;
|
||||||
|
|
||||||
|
@ -405,7 +405,7 @@ void client_unmanage(ObClient *self)
|
||||||
frame_release_client(self->frame, self);
|
frame_release_client(self->frame, self);
|
||||||
self->frame = NULL;
|
self->frame = NULL;
|
||||||
|
|
||||||
if (ob_state != OB_STATE_EXITING) {
|
if (ob_state() != OB_STATE_EXITING) {
|
||||||
/* these values should not be persisted across a window
|
/* these values should not be persisted across a window
|
||||||
unmapping/mapping */
|
unmapping/mapping */
|
||||||
prop_erase(self->window, prop_atoms.net_wm_desktop);
|
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
|
/* only do this when first managing the window *AND* when we aren't
|
||||||
starting up! */
|
starting up! */
|
||||||
if (ob_state != OB_STATE_STARTING && self->frame == NULL)
|
if (ob_state() != OB_STATE_STARTING && self->frame == NULL)
|
||||||
if (hints->flags & StateHint)
|
if (hints->flags & StateHint)
|
||||||
self->iconic = hints->initial_state == IconicState;
|
self->iconic = hints->initial_state == IconicState;
|
||||||
|
|
||||||
|
|
|
@ -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
|
member set the root window, and one set to the client, but both get
|
||||||
handled and need to be ignored.
|
handled and need to be ignored.
|
||||||
*/
|
*/
|
||||||
if (ob_state == OB_STATE_STARTING)
|
if (ob_state() == OB_STATE_STARTING)
|
||||||
app->ignore_unmaps += 2;
|
app->ignore_unmaps += 2;
|
||||||
|
|
||||||
if (app->win != app->icon_win) {
|
if (app->win != app->icon_win) {
|
||||||
|
|
|
@ -650,7 +650,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
|
||||||
break;
|
break;
|
||||||
case EnterNotify:
|
case EnterNotify:
|
||||||
if (client_normal(client)) {
|
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 */
|
/* move it to the top of the focus order */
|
||||||
guint desktop = client->desktop;
|
guint desktop = client->desktop;
|
||||||
if (desktop == DESKTOP_ALL) desktop = screen_desktop;
|
if (desktop == DESKTOP_ALL) desktop = screen_desktop;
|
||||||
|
|
|
@ -94,7 +94,7 @@ void focus_set_client(ObClient *client)
|
||||||
push_to_top(client);
|
push_to_top(client);
|
||||||
|
|
||||||
/* set the NET_ACTIVE_WINDOW hint, but preserve it on shutdown */
|
/* 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;
|
active = client ? client->window : None;
|
||||||
PROP_SET32(RootWindow(ob_display, ob_screen),
|
PROP_SET32(RootWindow(ob_display, ob_screen),
|
||||||
net_active_window, window, active);
|
net_active_window, window, active);
|
||||||
|
|
|
@ -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
|
member set the root window, and one set to the client, but both get
|
||||||
handled and need to be ignored.
|
handled and need to be ignored.
|
||||||
*/
|
*/
|
||||||
if (ob_state == OB_STATE_STARTING)
|
if (ob_state() == OB_STATE_STARTING)
|
||||||
client->ignore_unmaps += 2;
|
client->ignore_unmaps += 2;
|
||||||
|
|
||||||
/* select the event mask on the client's parent (to receive config/map
|
/* select the event mask on the client's parent (to receive config/map
|
||||||
|
|
|
@ -59,10 +59,10 @@ RrInstance *ob_rr_inst;
|
||||||
RrTheme *ob_rr_theme;
|
RrTheme *ob_rr_theme;
|
||||||
Display *ob_display;
|
Display *ob_display;
|
||||||
gint ob_screen;
|
gint ob_screen;
|
||||||
ObState ob_state;
|
|
||||||
Cursor ob_cursors[OB_NUM_CURSORS];
|
Cursor ob_cursors[OB_NUM_CURSORS];
|
||||||
KeyCode ob_keys[OB_NUM_KEYS];
|
KeyCode ob_keys[OB_NUM_KEYS];
|
||||||
|
|
||||||
|
static ObState state;
|
||||||
static gboolean sync;
|
static gboolean sync;
|
||||||
static gboolean shutdown;
|
static gboolean shutdown;
|
||||||
static gboolean restart;
|
static gboolean restart;
|
||||||
|
@ -91,7 +91,7 @@ int main(int argc, char **argv)
|
||||||
xmlDocPtr doc;
|
xmlDocPtr doc;
|
||||||
xmlNodePtr node;
|
xmlNodePtr node;
|
||||||
|
|
||||||
ob_state = OB_STATE_STARTING;
|
state = OB_STATE_STARTING;
|
||||||
|
|
||||||
/* initialize the locale */
|
/* initialize the locale */
|
||||||
if (!setlocale(LC_ALL, ""))
|
if (!setlocale(LC_ALL, ""))
|
||||||
|
@ -256,10 +256,10 @@ int main(int argc, char **argv)
|
||||||
/* get all the existing windows */
|
/* get all the existing windows */
|
||||||
client_manage_all();
|
client_manage_all();
|
||||||
|
|
||||||
ob_state = OB_STATE_RUNNING;
|
state = OB_STATE_RUNNING;
|
||||||
while (!shutdown)
|
while (!shutdown)
|
||||||
event_loop();
|
event_loop();
|
||||||
ob_state = OB_STATE_EXITING;
|
state = OB_STATE_EXITING;
|
||||||
|
|
||||||
dock_remove_all();
|
dock_remove_all();
|
||||||
client_unmanage_all();
|
client_unmanage_all();
|
||||||
|
@ -612,3 +612,8 @@ KeyCode ob_keycode(ObKey key)
|
||||||
g_assert(key < OB_NUM_KEYS);
|
g_assert(key < OB_NUM_KEYS);
|
||||||
return ob_keys[key];
|
return ob_keys[key];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ObState ob_state()
|
||||||
|
{
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ SnDisplay *ob_sn_display;
|
||||||
extern gint ob_screen;
|
extern gint ob_screen;
|
||||||
|
|
||||||
/* The state of execution of the window manager */
|
/* 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_other(const gchar *path);
|
||||||
void ob_restart();
|
void ob_restart();
|
||||||
|
|
|
@ -257,7 +257,7 @@ void screen_resize()
|
||||||
PROP_SETA32(RootWindow(ob_display, ob_screen),
|
PROP_SETA32(RootWindow(ob_display, ob_screen),
|
||||||
net_desktop_geometry, cardinal, geometry, 2);
|
net_desktop_geometry, cardinal, geometry, 2);
|
||||||
|
|
||||||
if (ob_state == OB_STATE_STARTING)
|
if (ob_state() == OB_STATE_STARTING)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
dock_configure();
|
dock_configure();
|
||||||
|
|
|
@ -18,7 +18,7 @@ void stacking_set_list()
|
||||||
/* on shutdown, don't update the properties, so that we can read it back
|
/* 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
|
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,
|
/* create an array of the window ids (from bottom to top,
|
||||||
reverse order!) */
|
reverse order!) */
|
||||||
|
|
|
@ -58,7 +58,7 @@ gboolean place_history(ObClient *c)
|
||||||
|
|
||||||
if (hi && !(hi->flags & PLACED)) {
|
if (hi && !(hi->flags & PLACED)) {
|
||||||
hi->flags |= PLACED;
|
hi->flags |= PLACED;
|
||||||
if (ob_state != OB_STATE_STARTING) {
|
if (ob_state() != OB_STATE_STARTING) {
|
||||||
if (hi->flags & HAVE_POSITION ||
|
if (hi->flags & HAVE_POSITION ||
|
||||||
hi->flags & HAVE_SIZE) {
|
hi->flags & HAVE_SIZE) {
|
||||||
if (hi->flags & HAVE_POSITION) {
|
if (hi->flags & HAVE_POSITION) {
|
||||||
|
|
|
@ -30,7 +30,7 @@ static void place_random(ObClient *c)
|
||||||
int x, y;
|
int x, y;
|
||||||
Rect *area;
|
Rect *area;
|
||||||
|
|
||||||
if (ob_state == OB_STATE_STARTING) return;
|
if (ob_state() == OB_STATE_STARTING) return;
|
||||||
|
|
||||||
area = screen_area_monitor(c->desktop,
|
area = screen_area_monitor(c->desktop,
|
||||||
g_random_int_range(0, screen_num_monitors));
|
g_random_int_range(0, screen_num_monitors));
|
||||||
|
|
Loading…
Reference in a new issue