[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master bc17a10708: Fix creating frames with an initial value of `fullscr
From: |
Po Lu |
Subject: |
master bc17a10708: Fix creating frames with an initial value of `fullscreen' on Haiku |
Date: |
Thu, 17 Mar 2022 04:55:46 -0400 (EDT) |
branch: master
commit bc17a10708337cbe853ea153bd82ad159d959924
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Fix creating frames with an initial value of `fullscreen' on Haiku
* src/haikufns.c (haiku_create_frame): Set configury_done and do
pending fullscreen change if any.
* src/haikuterm.c (haiku_fullscreen): Defer actually setting
fullscreen until configury_done is set.
* src/haikuterm.h (struct haiku_output): New field
`configury_done'.
---
src/haikufns.c | 5 +++++
src/haikuterm.c | 7 +++++++
src/haikuterm.h | 4 ++++
3 files changed, 16 insertions(+)
diff --git a/src/haikufns.c b/src/haikufns.c
index 24e4613e3e..7bb613af6e 100644
--- a/src/haikufns.c
+++ b/src/haikufns.c
@@ -902,6 +902,11 @@ haiku_create_frame (Lisp_Object parms)
BWindow_center_on_screen (FRAME_HAIKU_WINDOW (f));
unblock_input ();
+ FRAME_OUTPUT_DATA (f)->configury_done = true;
+
+ if (f->want_fullscreen != FULLSCREEN_NONE)
+ FRAME_TERMINAL (f)->fullscreen_hook (f);
+
/* Make sure windows on this frame appear in calls to next-window
and similar functions. */
Vwindow_list = Qnil;
diff --git a/src/haikuterm.c b/src/haikuterm.c
index 9844a09a02..4ae64129ef 100644
--- a/src/haikuterm.c
+++ b/src/haikuterm.c
@@ -3779,6 +3779,13 @@ haiku_toggle_invisible_pointer (struct frame *f, bool
invisible_p)
static void
haiku_fullscreen (struct frame *f)
{
+ /* When FRAME_OUTPUT_DATA (f)->configury_done is false, the frame is
+ being created, and its regular width and height have not yet been
+ set. This function will be called again by haiku_create_frame,
+ so do nothing. */
+ if (!FRAME_OUTPUT_DATA (f)->configury_done)
+ return;
+
if (f->want_fullscreen == FULLSCREEN_MAXIMIZED)
{
EmacsWindow_make_fullscreen (FRAME_HAIKU_WINDOW (f), 0);
diff --git a/src/haikuterm.h b/src/haikuterm.h
index 8d0af8dc67..65fd51e237 100644
--- a/src/haikuterm.h
+++ b/src/haikuterm.h
@@ -165,6 +165,10 @@ struct haiku_output
/* The pending position we're waiting for. */
int pending_top, pending_left;
+
+ /* Whether or not adjust_frame_size and haiku_set_offset have yet
+ been called by haiku_create_frame. */
+ bool configury_done;
};
struct x_output
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master bc17a10708: Fix creating frames with an initial value of `fullscreen' on Haiku,
Po Lu <=