* src/haiku_support.h: (BWindow_sync)
* src/haiku_support.cc (BWindow_sync): New function.
* src/haikuterm.c (haiku_frame_raise_lower): Synchronize window
after raising it to avoid situations where raising windows is
done out-of-order, such as when ediff raises a frame.
w->UnlockLooper ();
}
+/* Synchronize WINDOW's connection to the App Server. */
+void
+BWindow_sync (void *window)
+{
+ BWindow *w = (BWindow *) window;
+
+ if (!w->LockLooper ())
+ gui_abort ("Failed to lock window looper for sync");
+ w->Sync ();
+ w->UnlockLooper ();
+}
+
/* Set the alignment of WINDOW's dimensions. */
void
BWindow_set_size_alignment (void *window, int align_width, int align_height)
extern void
BWindow_set_size_alignment (void *window, int align_width, int align_height);
+ extern void
+ BWindow_sync (void *window);
+
#ifdef __cplusplus
extern void *
find_appropriate_view_for_draw (void *vw);
{
block_input ();
BWindow_activate (FRAME_HAIKU_WINDOW (f));
- flush_frame (f);
+ BWindow_sync (FRAME_HAIKU_WINDOW (f));
unblock_input ();
}
}