From 6e1b469ee2c44797e9f7922366d069e0f924cc63 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Dj=C3=A4rv?= Date: Sat, 24 Aug 2013 10:43:36 +0200 Subject: [PATCH] * gtkutil.c (x_wm_set_size_hint): Don't set hints when maximized or fullscreen. Fixes: debbugs:14627 --- src/ChangeLog | 5 +++++ src/gtkutil.c | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 3eccf6ff55..8e5eedd445 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2013-08-24 Jan Djärv + + * gtkutil.c (x_wm_set_size_hint): Don't set hints when maximized + or fullscreen (Bug#14627). + 2013-08-24 Paul Eggert System-dependent integer overflow fixes. diff --git a/src/gtkutil.c b/src/gtkutil.c index 7e304d417d..8e255ac4bf 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -1341,6 +1341,7 @@ x_wm_set_size_hint (struct frame *f, long int flags, bool user_position) int base_width, base_height; int min_rows = 0, min_cols = 0; int win_gravity = f->win_gravity; + Lisp_Object fs_state, frame; /* Don't set size hints during initialization; that apparently leads to a race condition. See the thread at @@ -1348,6 +1349,16 @@ x_wm_set_size_hint (struct frame *f, long int flags, bool user_position) if (NILP (Vafter_init_time) || !FRAME_GTK_OUTER_WIDGET (f)) return; + XSETFRAME (frame, f); + fs_state = Fframe_parameter (frame, Qfullscreen); + if (EQ (fs_state, Qmaximized) || EQ (fs_state, Qfullboth)) + { + /* Don't set hints when maximized or fullscreen. Apparently KWin and + Gtk3 don't get along and the frame shrinks (!). + */ + return; + } + if (flags) { memset (&size_hints, 0, sizeof (size_hints)); -- 2.20.1