From 9c1d6b1d6a24338517756437757cc4aaaa4da4e5 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Sun, 6 Feb 2022 08:58:23 +0800 Subject: [PATCH] Handle window state changes on PGTK * src/pgtkterm.c (window_state_event): Set fullscreen, sticky, and iconification status according to the new window state. (bug#53793) --- src/pgtkterm.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/pgtkterm.c b/src/pgtkterm.c index d0a2980bc1b..23ad3c318c2 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -5694,6 +5694,32 @@ window_state_event (GtkWidget *widget, } } + if (event->window_state.new_window_state + & GDK_WINDOW_STATE_FULLSCREEN) + store_frame_param (f, Qfullscreen, Qfullboth); + else if (event->window_state.new_window_state + & GDK_WINDOW_STATE_MAXIMIZED) + store_frame_param (f, Qfullscreen, Qmaximized); + else + store_frame_param (f, Qfullscreen, Qnil); + + if (event->window_state.new_window_state + & GDK_WINDOW_STATE_ICONIFIED) + SET_FRAME_ICONIFIED (f, true); + else + { + FRAME_X_OUTPUT (f)->has_been_visible = true; + inev.ie.kind = DEICONIFY_EVENT; + XSETFRAME (inev.ie.frame_or_window, f); + SET_FRAME_ICONIFIED (f, false); + } + + if (event->window_state.new_window_state + & GDK_WINDOW_STATE_STICKY) + store_frame_param (f, Qsticky, Qt); + else + store_frame_param (f, Qsticky, Qnil); + if (inev.ie.kind != NO_EVENT) evq_enqueue (&inev); return FALSE; -- 2.39.5