summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Fourdan <fourdan@xfce.org>2018-07-22 10:58:42 +0200
committerOlivier Fourdan <fourdan@xfce.org>2018-07-26 17:43:43 +0200
commitd730ebb6244874805b3e37b6c0bb3b9328f2b23d (patch)
tree20d6fa03aea358416c461efcdd50005aaab77444
parent18575f3a098c7bbb3a43838c7745e01efa260997 (diff)
downloadxfwm4-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.c4
-rw-r--r--src/events.c10
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