Created
August 22, 2015 19:28
-
-
Save pipcet/592df95aa6fd22c014ce to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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