summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@gmail.com>2009-09-20 15:50:13 +0200
committerMikael Magnusson <mikachu@gmail.com>2009-09-20 16:03:48 +0200
commita92c209fc1845cf3f3acdfa3f9e8f0930fd53eb3 (patch)
treee69a92f34da6dbecc6d3cdb23958bf4a60b9b7a0 /openbox
parentb89cc5859068fd5543dc9e7da3f469fb0c0a7a1c (diff)
parentabf3660f84ad9d8bab48c4b5ee29a42386c262b9 (diff)
Merge branch 'backport' into work
Diffstat (limited to 'openbox')
-rw-r--r--openbox/client.c3
-rw-r--r--openbox/client.h2
-rw-r--r--openbox/event.c7
3 files changed, 10 insertions, 2 deletions
diff --git a/openbox/client.c b/openbox/client.c
index 38dc7c1a..a62aa5b6 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -80,7 +80,6 @@ static void client_get_area(ObClient *self);
static void client_get_desktop(ObClient *self);
static void client_get_state(ObClient *self);
static void client_get_shaped(ObClient *self);
-static void client_get_mwm_hints(ObClient *self);
static void client_get_colormap(ObClient *self);
static void client_set_desktop_recursive(ObClient *self,
guint target,
@@ -1409,7 +1408,7 @@ static void client_update_transient_tree(ObClient *self,
}
}
-static void client_get_mwm_hints(ObClient *self)
+void client_get_mwm_hints(ObClient *self)
{
guint num;
guint32 *hints;
diff --git a/openbox/client.h b/openbox/client.h
index 6d018bc6..ca992746 100644
--- a/openbox/client.h
+++ b/openbox/client.h
@@ -632,6 +632,8 @@ 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);
+/*! Gets the motif wm hints */
+void client_get_mwm_hints(ObClient *self);
/*! Returns a client's icon set, or its parents (recursively) if it doesn't
have one
diff --git a/openbox/event.c b/openbox/event.c
index e2fd411f..3f5c1543 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -1526,6 +1526,13 @@ static void event_handle_client(ObClient *client, XEvent *e)
reconfigure the window if it needs to. emacs will update its
normal hints every time it receives a conigurenotify */
client_reconfigure(client, FALSE);
+ } else if (msgtype == OBT_PROP_ATOM(MOTIF_WM_HINTS)) {
+ client_get_mwm_hints(client);
+ /* This can override some mwm hints */
+ client_get_type_and_transientness(client);
+
+ /* Apply the changes to the window */
+ client_setup_decor_and_functions(client, TRUE);
} else if (msgtype == XA_WM_HINTS) {
client_update_wmhints(client);
} else if (msgtype == XA_WM_TRANSIENT_FOR) {