[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master c92d73d271: Fix pending window changes in haiku_set_window_size
From: |
Po Lu |
Subject: |
master c92d73d271: Fix pending window changes in haiku_set_window_size |
Date: |
Sat, 28 May 2022 21:06:38 -0400 (EDT) |
branch: master
commit c92d73d271038c93a72c059ed0190bc09b95026d
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Fix pending window changes in haiku_set_window_size
* src/haikuterm.c (haiku_set_window_size): Wait for
FRAME_RESIZED events, then call `do_pending_window_change'.
(haiku_read_socket): Allow waiting for FRAME_RESIZED events.
---
src/haikuterm.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/haikuterm.c b/src/haikuterm.c
index a487556218..7f0bc1a8cf 100644
--- a/src/haikuterm.c
+++ b/src/haikuterm.c
@@ -2009,9 +2009,17 @@ haiku_set_window_size (struct frame *f, bool
change_gravity,
if (FRAME_HAIKU_WINDOW (f))
{
block_input ();
- BWindow_resize (FRAME_HAIKU_WINDOW (f), width, height);
+ BWindow_resize (FRAME_HAIKU_WINDOW (f),
+ width, height);
+
+ if (FRAME_VISIBLE_P (f)
+ && (width != FRAME_PIXEL_WIDTH (f)
+ || height != FRAME_PIXEL_HEIGHT (f)))
+ haiku_wait_for_event (f, FRAME_RESIZED);
unblock_input ();
}
+
+ do_pending_window_change (false);
}
static void
@@ -3138,6 +3146,10 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
int width = lrint (b->px_widthf);
int height = lrint (b->px_heightf);
+ if (FRAME_OUTPUT_DATA (f)->wait_for_event_type
+ == FRAME_RESIZED)
+ FRAME_OUTPUT_DATA (f)->wait_for_event_type = -1;
+
if (FRAME_TOOLTIP_P (f))
{
if (FRAME_PIXEL_WIDTH (f) != width
@@ -3166,6 +3178,7 @@ haiku_read_socket (struct terminal *terminal, struct
input_event *hold_quit)
cancel_mouse_face (f);
haiku_clear_under_internal_border (f);
}
+
break;
}
case FRAME_EXPOSED:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master c92d73d271: Fix pending window changes in haiku_set_window_size,
Po Lu <=