diff options
| author | Florian Rommel | 2022-06-03 03:03:03 +0200 |
|---|---|---|
| committer | Po Lu | 2022-07-04 10:21:14 +0800 |
| commit | bbca04fd9d10ec2a5e849c48eab42faad0de0a32 (patch) | |
| tree | a24ffa40795ff4e40c505d614d37ee71b8ede2de /src/pgtkterm.c | |
| parent | 06afa7b4e096b14d03cc801235b27395a9857272 (diff) | |
| download | emacs-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.c | 27 |
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); |