]> Dogcows Code - chaz/openbox/commitdiff
set the session stuff before trying to apply per-app settings.
authorDana Jansens <danakj@orodu.net>
Thu, 10 May 2007 05:21:05 +0000 (05:21 +0000)
committerDana Jansens <danakj@orodu.net>
Thu, 10 May 2007 05:21:05 +0000 (05:21 +0000)
set the decor/functions after restoring all the stuff from session/per-app too

openbox/client.c
openbox/event.c

index 4c88daf7fc3b78f57c83d5cda5ab71ccf636d805..719f46a155a7f08387ba5ba8c2e189c8dc08a4f2 100644 (file)
@@ -294,6 +294,8 @@ void client_manage(Window window)
     /* the session should get the last say */
     client_restore_session_state(self);
 
+    client_setup_decor_and_functions(self);
+
     client_calc_layer(self);
 
     {
@@ -503,6 +505,10 @@ ObClient *client_fake_manage(Window window)
        uses too */
     settings = client_get_settings_state(self);
 
+    client_setup_decor_and_functions(self);
+    /* adjust the decorations so we know the sizes */
+    frame_adjust_area(self->frame, FALSE, TRUE, TRUE);
+
     /* create the decoration frame for the client window */
     self->frame = frame_new(self);
     return self;
@@ -993,51 +999,50 @@ static void client_get_all(ObClient *self, gboolean real)
     /* this can change the mwmhints for special cases */
     client_get_type_and_transientness(self);
     client_get_state(self);
-    client_update_protocols(self);
     client_update_normal_hints(self);
 
-    /* got the type, the mwmhints, the protocols, and the normal hints
-       (min/max sizes), so we're ready to set up the decorations/functions */
-    client_setup_decor_and_functions(self);
+    /* get the session related properties, these can change decorations
+       from per-app settings */
+    client_get_session_ids(self);
 
-    if (real) {
-        client_update_wmhints(self);
-        /* this may have already been called from client_update_wmhints */
-        if (self->transient_for == NULL)
-            client_update_transient_for(self);
+    if (!real)
+        return;
 
-        client_get_startup_id(self);
-        client_get_desktop(self);/* uses transient data/group/startup id if a
-                                    desktop is not specified */
-        client_get_shaped(self);
+    client_update_protocols(self);
 
-        client_get_layer(self); /* if layer hasn't been specified, get it from
-                                   other sources if possible */
+    client_update_wmhints(self);
+    /* this may have already been called from client_update_wmhints */
+    if (self->transient_for == NULL)
+        client_update_transient_for(self);
 
-        {
-            /* a couple type-based defaults for new windows */
+    client_get_startup_id(self);
+    client_get_desktop(self);/* uses transient data/group/startup id if a
+                                desktop is not specified */
+    client_get_shaped(self);
 
-            /* this makes sure that these windows appear on all desktops */
-            if (self->type == OB_CLIENT_TYPE_DESKTOP)
-                self->desktop = DESKTOP_ALL;
-        }
+    client_get_layer(self); /* if layer hasn't been specified, get it from
+                               other sources if possible */
+
+    {
+        /* a couple type-based defaults for new windows */
+
+        /* this makes sure that these windows appear on all desktops */
+        if (self->type == OB_CLIENT_TYPE_DESKTOP)
+            self->desktop = DESKTOP_ALL;
+    }
   
 #ifdef SYNC
-        client_update_sync_request_counter(self);
+    client_update_sync_request_counter(self);
 #endif
 
-        /* get the session related properties */
-        client_get_session_ids(self);
-
-        client_get_colormap(self);
-        client_update_title(self);
-        client_update_strut(self);
-        client_update_icons(self);
-        client_update_user_time_window(self);
-        if (!self->user_time_window) /* check if this would have been called */
-            client_update_user_time(self);
-        client_update_icon_geometry(self);
-    }
+    client_get_colormap(self);
+    client_update_title(self);
+    client_update_strut(self);
+    client_update_icons(self);
+    client_update_user_time_window(self);
+    if (!self->user_time_window) /* check if this would have been called */
+        client_update_user_time(self);
+    client_update_icon_geometry(self);
 }
 
 static void client_get_startup_id(ObClient *self)
index e3132c9069f028d681ef5b5077c302b02aedeb6e..bd3911e2f924be13ff84fd06fd08be4d061fd2eb 100644 (file)
@@ -577,9 +577,6 @@ static void event_process(const XEvent *ec, gpointer data)
             ObClient *c = client_fake_manage(e->xclient.window);
             gulong vals[4];
 
-            /* adjust the decorations so we know the sizes */
-            frame_adjust_area(c->frame, FALSE, TRUE, TRUE);
-
             /* set the frame extents on the window */
             vals[0] = c->frame->size.left;
             vals[1] = c->frame->size.right;
This page took 0.029708 seconds and 4 git commands to generate.