Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save pipcet/592df95aa6fd22c014ce to your computer and use it in GitHub Desktop.
Save pipcet/592df95aa6fd22c014ce to your computer and use it in GitHub Desktop.
From b9a9a286c48a28ea7a3e095fbd1bb2cbf6165ef5 Mon Sep 17 00:00:00 2001
From: Philip <pipcet@gmail.com>
Date: Sat, 22 Aug 2015 19:05:35 +0000
Subject: [PATCH] Do not apply this patch, it might break KWin
---
src/gtkutil.c | 11 -----------
src/xterm.c | 23 +++++++++++++++++++++++
2 files changed, 23 insertions(+), 11 deletions(-)
diff --git a/src/gtkutil.c b/src/gtkutil.c
index d684cd9..bdbfb0d 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -1364,7 +1364,6 @@ 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;
int scale = xg_get_gdk_scale ();
/* Don't set size hints during initialization; that apparently leads
@@ -1373,16 +1372,6 @@ 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));
diff --git a/src/xterm.c b/src/xterm.c
index b7aacfa..b877842 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -10155,6 +10155,8 @@ x_handle_net_wm_state (struct frame *f, const XPropertyEvent *event)
static void
x_check_fullscreen (struct frame *f)
{
+ Lisp_Object lval;
+
if (do_ewmh_fullscreen (f))
return;
@@ -10189,6 +10191,8 @@ x_check_fullscreen (struct frame *f)
frame_size_history_add
(f, Qx_check_fullscreen, width, height, Qnil);
+ x_wm_set_size_hint (f, 0, false);
+
XResizeWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f),
width, height);
@@ -10201,6 +10205,25 @@ x_check_fullscreen (struct frame *f)
x_sync (f);
}
}
+
+ lval = Qnil;
+ switch (f->want_fullscreen)
+ {
+ case FULLSCREEN_WIDTH:
+ lval = Qfullwidth;
+ break;
+ case FULLSCREEN_HEIGHT:
+ lval = Qfullheight;
+ break;
+ case FULLSCREEN_BOTH:
+ lval = Qfullboth;
+ break;
+ case FULLSCREEN_MAXIMIZED:
+ lval = Qmaximized;
+ break;
+ }
+
+ store_frame_param (f, Qfullscreen, lval);
}
/* This function is called by x_set_offset to determine whether the window
--
2.5.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment