aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-02-06 08:58:23 +0800
committerPo Lu2022-02-06 08:58:23 +0800
commit9c1d6b1d6a24338517756437757cc4aaaa4da4e5 (patch)
tree4ef7bdd3c470b5cb4dec1ae87bd897171b37545a /src
parenteb351e3795bb89fc5bdb4e6a1db0b53563a2ebaf (diff)
downloademacs-9c1d6b1d6a24338517756437757cc4aaaa4da4e5.tar.gz
emacs-9c1d6b1d6a24338517756437757cc4aaaa4da4e5.zip
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)
Diffstat (limited to 'src')
-rw-r--r--src/pgtkterm.c26
1 files changed, 26 insertions, 0 deletions
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,
5694 } 5694 }
5695 } 5695 }
5696 5696
5697 if (event->window_state.new_window_state
5698 & GDK_WINDOW_STATE_FULLSCREEN)
5699 store_frame_param (f, Qfullscreen, Qfullboth);
5700 else if (event->window_state.new_window_state
5701 & GDK_WINDOW_STATE_MAXIMIZED)
5702 store_frame_param (f, Qfullscreen, Qmaximized);
5703 else
5704 store_frame_param (f, Qfullscreen, Qnil);
5705
5706 if (event->window_state.new_window_state
5707 & GDK_WINDOW_STATE_ICONIFIED)
5708 SET_FRAME_ICONIFIED (f, true);
5709 else
5710 {
5711 FRAME_X_OUTPUT (f)->has_been_visible = true;
5712 inev.ie.kind = DEICONIFY_EVENT;
5713 XSETFRAME (inev.ie.frame_or_window, f);
5714 SET_FRAME_ICONIFIED (f, false);
5715 }
5716
5717 if (event->window_state.new_window_state
5718 & GDK_WINDOW_STATE_STICKY)
5719 store_frame_param (f, Qsticky, Qt);
5720 else
5721 store_frame_param (f, Qsticky, Qnil);
5722
5697 if (inev.ie.kind != NO_EVENT) 5723 if (inev.ie.kind != NO_EVENT)
5698 evq_enqueue (&inev); 5724 evq_enqueue (&inev);
5699 return FALSE; 5725 return FALSE;