Make gdk_window_flush public

We need to call this from Gtk+, and its concievable that some other
app doing weird stuff could have a use for it.
This commit is contained in:
Alexander Larsson 2009-09-14 16:07:25 +02:00
parent f473242e19
commit cfeba9c389
3 changed files with 25 additions and 2 deletions

View File

@ -687,6 +687,7 @@ gdk_window_clear_area_e
gdk_window_constrain_size
gdk_window_destroy
gdk_window_end_paint
gdk_window_flush
gdk_window_foreign_new
gdk_window_freeze_toplevel_updates_libgtk_only
gdk_window_freeze_updates

View File

@ -322,7 +322,6 @@ static void recompute_visible_regions (GdkWindowObject *private,
gboolean recalculate_siblings,
gboolean recalculate_children);
static void gdk_window_flush_outstanding_moves (GdkWindow *window);
static void gdk_window_flush (GdkWindow *window);
static void gdk_window_flush_recursive (GdkWindowObject *window);
static void do_move_region_bits_on_impl (GdkWindowObject *private,
GdkRegion *region, /* In impl window coords */
@ -3229,7 +3228,29 @@ gdk_window_flush_outstanding_moves (GdkWindow *window)
impl_window->outstanding_moves = NULL;
}
static void
/**
* gdk_window_flush:
* @window: a #GdkWindow
*
* Flush all outstanding cached operations on a window, leaving the
* window in a state which reflects all that has been drawn before.
*
* Gdk uses multiple kinds of caching to get better performance and
* nicer drawing. For instance, during exposes all paints to a window
* using double buffered rendering are keep on a pixmap until the last
* window has been exposed. It also delays window moves/scrolls until
* as long as possible until next update to avoid tearing when moving
* windows.
*
* Normally this should be completely invisible to applications, as
* we automatically flush the windows when required, but this might
* be needed if you for instance mix direct native drawing with
* gdk drawing. For Gtk widgets that don't use double buffering this
* will be called automatically before sending the expose event.
*
* Since: 2.18
**/
void
gdk_window_flush (GdkWindow *window)
{
gdk_window_flush_outstanding_moves (window);

View File

@ -509,6 +509,7 @@ void gdk_window_begin_paint_rect (GdkWindow *window,
void gdk_window_begin_paint_region (GdkWindow *window,
const GdkRegion *region);
void gdk_window_end_paint (GdkWindow *window);
void gdk_window_flush (GdkWindow *window);
void gdk_window_set_title (GdkWindow *window,
const gchar *title);