emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 9c1d6b1d6a: Handle window state changes on PGTK


From: Po Lu
Subject: master 9c1d6b1d6a: Handle window state changes on PGTK
Date: Sat, 5 Feb 2022 19:59:54 -0500 (EST)

branch: master
commit 9c1d6b1d6a24338517756437757cc4aaaa4da4e5
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    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 d0a2980bc1..23ad3c318c 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;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]