aboutsummaryrefslogtreecommitdiffstats
path: root/src/pgtkterm.c
diff options
context:
space:
mode:
authorFlorian Rommel2022-06-03 03:03:03 +0200
committerPo Lu2022-07-04 10:21:14 +0800
commitbbca04fd9d10ec2a5e849c48eab42faad0de0a32 (patch)
treea24ffa40795ff4e40c505d614d37ee71b8ede2de /src/pgtkterm.c
parent06afa7b4e096b14d03cc801235b27395a9857272 (diff)
downloademacs-bbca04fd9d10ec2a5e849c48eab42faad0de0a32.tar.gz
emacs-bbca04fd9d10ec2a5e849c48eab42faad0de0a32.zip
Add support for fullscreen values fullheight and fullwidth on PGTK
* src/pgtkterm.c (window_state_event): Support values fullheight and fullwidth for the fullscreen frame-parameter * doc/lispref/frames.texi (Size Parameters): Document inability to actively set hullheight/fullwidth for PGTK frames * configure.ac: Bump GTK version for PGTK * etc/NEWS: Change GTK version in PGTK announcement
Diffstat (limited to 'src/pgtkterm.c')
-rw-r--r--src/pgtkterm.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/pgtkterm.c b/src/pgtkterm.c
index 1eb4d378adf..b283cef7cde 100644
--- a/src/pgtkterm.c
+++ b/src/pgtkterm.c
@@ -5454,15 +5454,18 @@ window_state_event (GtkWidget *widget,
5454 gpointer *user_data) 5454 gpointer *user_data)
5455{ 5455{
5456 struct frame *f = pgtk_any_window_to_frame (event->window_state.window); 5456 struct frame *f = pgtk_any_window_to_frame (event->window_state.window);
5457 GdkWindowState new_state;
5457 union buffered_input_event inev; 5458 union buffered_input_event inev;
5458 5459
5460 new_state = event->window_state.new_window_state;
5461
5459 EVENT_INIT (inev.ie); 5462 EVENT_INIT (inev.ie);
5460 inev.ie.kind = NO_EVENT; 5463 inev.ie.kind = NO_EVENT;
5461 inev.ie.arg = Qnil; 5464 inev.ie.arg = Qnil;
5462 5465
5463 if (f) 5466 if (f)
5464 { 5467 {
5465 if (event->window_state.new_window_state & GDK_WINDOW_STATE_FOCUSED) 5468 if (new_state & GDK_WINDOW_STATE_FOCUSED)
5466 { 5469 {
5467 if (FRAME_ICONIFIED_P (f)) 5470 if (FRAME_ICONIFIED_P (f))
5468 { 5471 {
@@ -5478,17 +5481,24 @@ window_state_event (GtkWidget *widget,
5478 } 5481 }
5479 } 5482 }
5480 5483
5481 if (event->window_state.new_window_state 5484 if (new_state & GDK_WINDOW_STATE_FULLSCREEN)
5482 & GDK_WINDOW_STATE_FULLSCREEN)
5483 store_frame_param (f, Qfullscreen, Qfullboth); 5485 store_frame_param (f, Qfullscreen, Qfullboth);
5484 else if (event->window_state.new_window_state 5486 else if (new_state & GDK_WINDOW_STATE_MAXIMIZED)
5485 & GDK_WINDOW_STATE_MAXIMIZED)
5486 store_frame_param (f, Qfullscreen, Qmaximized); 5487 store_frame_param (f, Qfullscreen, Qmaximized);
5488 else if ((new_state & GDK_WINDOW_STATE_TOP_TILED)
5489 && (new_state & GDK_WINDOW_STATE_BOTTOM_TILED)
5490 && !(new_state & GDK_WINDOW_STATE_TOP_RESIZABLE)
5491 && !(new_state & GDK_WINDOW_STATE_BOTTOM_RESIZABLE))
5492 store_frame_param (f, Qfullscreen, Qfullheight);
5493 else if ((new_state & GDK_WINDOW_STATE_LEFT_TILED)
5494 && (new_state & GDK_WINDOW_STATE_RIGHT_TILED)
5495 && !(new_state & GDK_WINDOW_STATE_LEFT_RESIZABLE)
5496 && !(new_state & GDK_WINDOW_STATE_RIGHT_RESIZABLE))
5497 store_frame_param (f, Qfullscreen, Qfullwidth);
5487 else 5498 else
5488 store_frame_param (f, Qfullscreen, Qnil); 5499 store_frame_param (f, Qfullscreen, Qnil);
5489 5500
5490 if (event->window_state.new_window_state 5501 if (new_state & GDK_WINDOW_STATE_ICONIFIED)
5491 & GDK_WINDOW_STATE_ICONIFIED)
5492 SET_FRAME_ICONIFIED (f, true); 5502 SET_FRAME_ICONIFIED (f, true);
5493 else 5503 else
5494 { 5504 {
@@ -5498,8 +5508,7 @@ window_state_event (GtkWidget *widget,
5498 SET_FRAME_ICONIFIED (f, false); 5508 SET_FRAME_ICONIFIED (f, false);
5499 } 5509 }
5500 5510
5501 if (event->window_state.new_window_state 5511 if (new_state & GDK_WINDOW_STATE_STICKY)
5502 & GDK_WINDOW_STATE_STICKY)
5503 store_frame_param (f, Qsticky, Qt); 5512 store_frame_param (f, Qsticky, Qt);
5504 else 5513 else
5505 store_frame_param (f, Qsticky, Qnil); 5514 store_frame_param (f, Qsticky, Qnil);