set the session stuff before trying to apply per-app settings.

set the decor/functions after restoring all the stuff from session/per-app too
This commit is contained in:
Dana Jansens 2007-05-10 05:21:05 +00:00
parent 933a689b41
commit 083a7565c7
2 changed files with 39 additions and 37 deletions

View 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,14 +999,17 @@ 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)
return;
client_update_protocols(self);
if (real) {
client_update_wmhints(self);
/* this may have already been called from client_update_wmhints */
if (self->transient_for == NULL)
@ -1026,9 +1035,6 @@ static void client_get_all(ObClient *self, gboolean real)
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);
@ -1038,7 +1044,6 @@ static void client_get_all(ObClient *self, gboolean real)
client_update_user_time(self);
client_update_icon_geometry(self);
}
}
static void client_get_startup_id(ObClient *self)
{

View 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;