From 2ec3ee73cc7ce2a38ed69a938d858bba286aca8a Mon Sep 17 00:00:00 2001 From: Florian Rommel Date: Wed, 1 Jun 2022 16:13:21 +0200 Subject: [PATCH] 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..eee0df979b 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -5420,6 +5420,7 @@ window_state_event (GtkWidget *widget, gpointer *user_data) { struct frame *f = pgtk_any_window_to_frame (event->window_state.window); + GdkWindowState new_state = event->window_state.new_window_state; union buffered_input_event inev; EVENT_INIT (inev.ie); @@ -5428,7 +5429,7 @@ window_state_event (GtkWidget *widget, 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 +5445,26 @@ 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); +#if GTK_CHECK_VERSION (3, 22, 23) + 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); +#endif 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