diff options
author | Olivier Fourdan <fourdan@xfce.org> | 2018-07-22 10:58:42 +0200 |
---|---|---|
committer | Olivier Fourdan <fourdan@xfce.org> | 2018-07-26 17:43:43 +0200 |
commit | d730ebb6244874805b3e37b6c0bb3b9328f2b23d (patch) | |
tree | 20d6fa03aea358416c461efcdd50005aaab77444 | |
parent | 18575f3a098c7bbb3a43838c7745e01efa260997 (diff) | |
download | xfwm4-d730ebb6244874805b3e37b6c0bb3b9328f2b23d.tar.gz |
client: Check GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED
Check that value for GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED has actually
changed before reconfiguring the window.
(cherry picked from commit 5f7a1f5f91fd0eec91a4a88c669847fd2567a270)
-rw-r--r-- | src/client.c | 4 | ||||
-rw-r--r-- | src/events.c | 10 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/client.c b/src/client.c index df34eb019..4071e67f0 100644 --- a/src/client.c +++ b/src/client.c @@ -4089,6 +4089,7 @@ clientGetGtkHideTitlebar (Client * c) { ScreenInfo *screen_info; DisplayInfo *display_info; + unsigned long old_value; long val; g_return_val_if_fail (c != NULL, FALSE); @@ -4096,13 +4097,14 @@ clientGetGtkHideTitlebar (Client * c) screen_info = c->screen_info; display_info = screen_info->display_info; + old_value = FLAG_TEST (c->flags, CLIENT_FLAG_HIDE_TITLEBAR); FLAG_UNSET (c->flags, CLIENT_FLAG_HIDE_TITLEBAR); if (getHint (display_info, c->window, GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED, &val) &&( val != 0)) { FLAG_SET (c->flags, CLIENT_FLAG_HIDE_TITLEBAR); } - return FLAG_TEST (c->flags, CLIENT_FLAG_HIDE_TITLEBAR); + return old_value != FLAG_TEST (c->flags, CLIENT_FLAG_HIDE_TITLEBAR); } #ifdef HAVE_LIBSTARTUP_NOTIFICATION diff --git a/src/events.c b/src/events.c index 74503e341..ee026aa1c 100644 --- a/src/events.c +++ b/src/events.c @@ -1839,11 +1839,13 @@ handlePropertyNotify (DisplayInfo *display_info, XPropertyEvent * ev) else if (ev->atom == display_info->atoms[GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED]) { TRACE ("client \"%s\" (0x%lx) has received a GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED notify", c->name, c->window); - clientGetGtkHideTitlebar (c); - if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED)) + if (clientGetGtkHideTitlebar (c)) { - clientUpdateMaximizeSize (c); - clientReconfigure (c, CFG_FORCE_REDRAW); + if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED)) + { + clientUpdateMaximizeSize (c); + clientReconfigure (c, CFG_FORCE_REDRAW); + } } } #ifdef HAVE_STARTUP_NOTIFICATION |