From 19f0635273892643336eb5042cebf675d8a7fb94 Mon Sep 17 00:00:00 2001 From: Florian Rommel Date: Fri, 3 Jun 2022 03:03:03 +0200 Subject: [PATCH v2] pgtk: Add support for fullscreen values fullheight and fullwidth * src/pgtkterm.c (window_state_event): Set fullheight/fullweight parameter depending on new_window_state --- src/pgtkterm.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/pgtkterm.c b/src/pgtkterm.c index da958a6664..b816deba0a 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -5420,15 +5420,18 @@ window_state_event (GtkWidget *widget, gpointer *user_data) { struct frame *f = pgtk_any_window_to_frame (event->window_state.window); + GdkWindowState new_state; union buffered_input_event inev; + new_state = event->window_state.new_window_state; + EVENT_INIT (inev.ie); inev.ie.kind = NO_EVENT; inev.ie.arg = Qnil; if (f) { - if (event->window_state.new_window_state & GDK_WINDOW_STATE_FOCUSED) + if (new_state & GDK_WINDOW_STATE_FOCUSED) { if (FRAME_ICONIFIED_P (f)) { @@ -5444,17 +5447,24 @@ window_state_event (GtkWidget *widget, } } - if (event->window_state.new_window_state - & GDK_WINDOW_STATE_FULLSCREEN) + if (new_state & GDK_WINDOW_STATE_FULLSCREEN) store_frame_param (f, Qfullscreen, Qfullboth); - else if (event->window_state.new_window_state - & GDK_WINDOW_STATE_MAXIMIZED) + else if (new_state & GDK_WINDOW_STATE_MAXIMIZED) store_frame_param (f, Qfullscreen, Qmaximized); + else if ((new_state & GDK_WINDOW_STATE_TOP_TILED) + && (new_state & GDK_WINDOW_STATE_BOTTOM_TILED) + && !(new_state & GDK_WINDOW_STATE_TOP_RESIZABLE) + && !(new_state & GDK_WINDOW_STATE_BOTTOM_RESIZABLE)) + store_frame_param (f, Qfullscreen, Qfullheight); + else if ((new_state & GDK_WINDOW_STATE_LEFT_TILED) + && (new_state & GDK_WINDOW_STATE_RIGHT_TILED) + && !(new_state & GDK_WINDOW_STATE_LEFT_RESIZABLE) + && !(new_state & GDK_WINDOW_STATE_RIGHT_RESIZABLE)) + store_frame_param (f, Qfullscreen, Qfullwidth); else store_frame_param (f, Qfullscreen, Qnil); - if (event->window_state.new_window_state - & GDK_WINDOW_STATE_ICONIFIED) + if (new_state & GDK_WINDOW_STATE_ICONIFIED) SET_FRAME_ICONIFIED (f, true); else { @@ -5464,8 +5474,7 @@ window_state_event (GtkWidget *widget, SET_FRAME_ICONIFIED (f, false); } - if (event->window_state.new_window_state - & GDK_WINDOW_STATE_STICKY) + if (new_state & GDK_WINDOW_STATE_STICKY) store_frame_param (f, Qsticky, Qt); else store_frame_param (f, Qsticky, Qnil); -- 2.36.1