]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix flicker during frame resize on Haiku
authorPo Lu <luangruo@yahoo.com>
Wed, 9 Mar 2022 03:50:16 +0000 (03:50 +0000)
committerPo Lu <luangruo@yahoo.com>
Wed, 9 Mar 2022 03:50:16 +0000 (03:50 +0000)
* haikuterm.c (haiku_update_end): Call BWindow_Flush directly.
(haiku_set_vertical_scroll_bar): Stop calling flush_frame.
(haiku_flush): Only flip buffer of tooltip frames.

src/haikuterm.c

index 3950e45fe9bd557bbb361f53f215f6f8b61d4b0e..413eedd66836b6013e5e252e1c7014087db629c8 100644 (file)
@@ -1221,7 +1221,7 @@ static void
 haiku_update_end (struct frame *f)
 {
   MOUSE_HL_INFO (f)->mouse_face_defer = false;
-  flush_frame (f);
+  BWindow_Flush (FRAME_HAIKU_WINDOW (f));
 }
 
 static void
@@ -2287,7 +2287,6 @@ haiku_set_vertical_scroll_bar (struct window *w,
                                   bar->width, bar->height);
          BView_move_frame (bar->scroll_bar, left, top,
                            left + width - 1, top + height - 1);
-         flush_frame (WINDOW_XFRAME (w));
          BView_publish_scroll_bar (view, left, top, width, height);
          bar->left = left;
          bar->top = top;
@@ -2515,7 +2514,7 @@ haiku_flush (struct frame *f)
 {
   /* This is needed for tooltip frames to work properly with double
      buffering.  */
-  if (FRAME_DIRTY_P (f))
+  if (FRAME_DIRTY_P (f) && FRAME_TOOLTIP_P (f))
     haiku_flip_buffers (f);
 
   if (FRAME_VISIBLE_P (f) && !FRAME_TOOLTIP_P (f))