diff options
| author | Po Lu | 2022-02-06 08:58:23 +0800 |
|---|---|---|
| committer | Po Lu | 2022-02-06 08:58:23 +0800 |
| commit | 9c1d6b1d6a24338517756437757cc4aaaa4da4e5 (patch) | |
| tree | 4ef7bdd3c470b5cb4dec1ae87bd897171b37545a /src | |
| parent | eb351e3795bb89fc5bdb4e6a1db0b53563a2ebaf (diff) | |
| download | emacs-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.c | 26 |
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; |