From: Dana Jansens Date: Mon, 28 May 2007 04:18:54 +0000 (+0000) Subject: better more obvious code X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=be3b78736fc171da4f14c99a22b858ad03237fd8;p=chaz%2Fopenbox better more obvious code --- diff --git a/openbox/client.c b/openbox/client.c index a8015978..e953a613 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -321,7 +321,7 @@ void client_manage(Window window) client_restore_session_state(self); /* now we have all of the window's information so we can set this up */ - client_setup_decor_and_functions(self); + client_setup_decor_and_functions(self, FALSE); { Time t = sn_app_started(self->startup_id, self->class); @@ -1595,9 +1595,7 @@ void client_update_normal_hints(ObClient *self) } } -/*! This needs to be followed by a call to client_configure to make - the changes show */ -void client_setup_decor_and_functions(ObClient *self) +void client_setup_decor_and_functions(ObClient *self, gboolean reconfig) { /* start with everything (cept fullscreen) */ self->decorations = @@ -1753,6 +1751,9 @@ void client_setup_decor_and_functions(ObClient *self) } client_change_allowed_actions(self); + + if (reconfig) + client_reconfigure(self); } static void client_change_allowed_actions(ObClient *self) @@ -3716,8 +3717,7 @@ void client_set_undecorated(ObClient *self, gboolean undecorated) (self->functions & OB_CLIENT_FUNC_UNDECORATE || !undecorated)) { self->undecorated = undecorated; - client_setup_decor_and_functions(self); - client_reconfigure(self); /* show the lack of decorations */ + client_setup_decor_and_functions(self, TRUE); client_change_state(self); /* reflect this in the state hints */ } } diff --git a/openbox/client.h b/openbox/client.h index 55b684ff..f1b8c885 100644 --- a/openbox/client.h +++ b/openbox/client.h @@ -604,8 +604,10 @@ void client_update_icon_geometry(ObClient *self); /*! Set up what decor should be shown on the window and what functions should be allowed (ObClient::decorations and ObClient::functions). This also updates the NET_WM_ALLOWED_ACTIONS hint. + @param reconfig When TRUE, the window will be reconfigured to show the + changes */ -void client_setup_decor_and_functions(ObClient *self); +void client_setup_decor_and_functions(ObClient *self, gboolean reconfig); /*! Sets the window's type and transient flag */ void client_get_type_and_transientness(ObClient *self); diff --git a/openbox/event.c b/openbox/event.c index ff2d560d..096e0d56 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -1430,8 +1430,7 @@ static void event_handle_client(ObClient *client, XEvent *e) if (msgtype == XA_WM_NORMAL_HINTS) { client_update_normal_hints(client); /* normal hints can make a window non-resizable */ - client_setup_decor_and_functions(client); - client_reconfigure(client); + client_setup_decor_and_functions(client, TRUE); } else if (msgtype == XA_WM_HINTS) { client_update_wmhints(client); } else if (msgtype == XA_WM_TRANSIENT_FOR) { @@ -1439,8 +1438,7 @@ static void event_handle_client(ObClient *client, XEvent *e) client_get_type_and_transientness(client); /* type may have changed, so update the layer */ client_calc_layer(client); - client_setup_decor_and_functions(client); - client_reconfigure(client); + client_setup_decor_and_functions(client, TRUE); } else if (msgtype == prop_atoms.net_wm_name || msgtype == prop_atoms.wm_name || msgtype == prop_atoms.net_wm_icon_name || @@ -1448,8 +1446,7 @@ static void event_handle_client(ObClient *client, XEvent *e) client_update_title(client); } else if (msgtype == prop_atoms.wm_protocols) { client_update_protocols(client); - client_setup_decor_and_functions(client); - client_reconfigure(client); + client_setup_decor_and_functions(client, TRUE); } else if (msgtype == prop_atoms.net_wm_strut) { client_update_strut(client);