Commit 36ce5487 authored by Alexander Larsson's avatar Alexander Larsson Committed by Alexander Larsson

Make _gdk_windowing_window_queue_translation a GdkWindiwImpl call

parent f22211c8
......@@ -359,11 +359,6 @@ gint _gdk_windowing_get_bits_for_depth (GdkDisplay *display,
#define GDK_WINDOW_IS_MAPPED(window) ((((GdkWindowObject*)window)->state & GDK_WINDOW_STATE_WITHDRAWN) == 0)
void _gdk_windowing_window_queue_translation (GdkWindow *window,
GdkRegion *area,
gint dx,
gint dy);
/* Called to do the windowing system specific part of gdk_window_destroy(),
*
......
......@@ -1119,6 +1119,15 @@ gdk_offscreen_window_queue_antiexpose (GdkWindow *window,
return FALSE;
}
static void
gdk_offscreen_window_queue_translation (GdkWindow *window,
GdkRegion *area,
gint dx,
gint dy)
{
}
static void
gdk_offscreen_window_class_init (GdkOffscreenWindowClass *klass)
{
......@@ -1173,6 +1182,7 @@ gdk_offscreen_window_impl_iface_init (GdkWindowImplIface *iface)
iface->merge_child_shapes = gdk_offscreen_window_merge_child_shapes;
iface->set_static_gravities = gdk_offscreen_window_set_static_gravities;
iface->queue_antiexpose = gdk_offscreen_window_queue_antiexpose;
iface->queue_translation = gdk_offscreen_window_queue_translation;
iface->get_origin = gdk_offscreen_window_get_origin;
}
......
......@@ -5559,9 +5559,8 @@ gdk_window_move_resize_internal (GdkWindow *window,
/* The old_region area is moved and we queue translations for all expose events
to it that will be sent before the copy operation */
/* TODO: Make queue_translation a vtable call instead of hardcoding this crap */
if (!gdk_window_is_offscreen (impl_window))
_gdk_windowing_window_queue_translation ((GdkWindow *)impl_window, old_region, dx, dy);
GDK_WINDOW_IMPL_GET_IFACE (impl_window->impl)->queue_translation ((GdkWindow *)impl_window,
old_region, dx, dy);
/* convert from parent coords to impl */
gdk_region_offset (copy_area, private->abs_x - private->x, private->abs_y - private->y);
......@@ -5732,15 +5731,13 @@ gdk_window_scroll (GdkWindow *window,
/* Get window clip and convert to real window coords, this
area is moved and we queue translations for all expose events
to it that will be sent before the copy operation */
/* TODO: Make queue_translation a vtable call instead of hardcoding this crap */
if (!gdk_window_is_offscreen (impl_window))
{
source_area = gdk_region_copy (private->clip_region);
/* convert from window coords to real parent */
gdk_region_offset (source_area, private->abs_x, private->abs_y);
_gdk_windowing_window_queue_translation ((GdkWindow *)impl_window, source_area, dx, dy);
gdk_region_destroy (source_area);
}
source_area = gdk_region_copy (private->clip_region);
/* convert from window coords to real parent */
gdk_region_offset (source_area, private->abs_x, private->abs_y);
GDK_WINDOW_IMPL_GET_IFACE (impl_window->impl)->queue_translation ((GdkWindow *)impl_window,
source_area, dx, dy);
gdk_region_destroy (source_area);
/* convert from window coords to impl */
gdk_region_offset (copy_area, private->abs_x, private->abs_y);
......@@ -5809,13 +5806,10 @@ gdk_window_move_region (GdkWindow *window,
gdk_window_invalidate_region (window, nocopy_area, FALSE);
gdk_region_destroy (nocopy_area);
/* TODO: Make queue_translation a vtable call instead of hardcoding this crap */
if (!gdk_window_is_offscreen (impl_window))
{
gdk_region_offset (source_area, private->abs_x, private->abs_y);
_gdk_windowing_window_queue_translation ((GdkWindow *)impl_window, source_area, dx, dy);
}
gdk_region_offset (source_area, private->abs_x, private->abs_y);
GDK_WINDOW_IMPL_GET_IFACE (impl_window->impl)->queue_translation ((GdkWindow *)impl_window,
source_area, dx, dy);
/* convert from window coords to impl */
gdk_region_offset (copy_area, private->abs_x, private->abs_y);
......
......@@ -108,6 +108,11 @@ struct _GdkWindowImplIface
*/
gboolean (* queue_antiexpose) (GdkWindow *window,
GdkRegion *update_area);
void (* queue_translation) (GdkWindow *window,
GdkRegion *area,
gint dx,
gint dy);
};
/* Interface Functions */
......
......@@ -357,10 +357,10 @@ gdk_window_queue (GdkWindow *window,
}
void
_gdk_windowing_window_queue_translation (GdkWindow *window,
GdkRegion *area,
gint dx,
gint dy)
_gdk_x11_window_queue_translation (GdkWindow *window,
GdkRegion *area,
gint dx,
gint dy)
{
GdkWindowQueueItem *item = g_new (GdkWindowQueueItem, 1);
item->type = GDK_WINDOW_QUEUE_TRANSLATE;
......
......@@ -127,9 +127,12 @@ void _gdk_window_process_expose (GdkWindow *window,
gulong serial,
GdkRectangle *area);
gboolean _gdk_x11_window_queue_antiexpose (GdkWindow *window,
GdkRegion *area);
gboolean _gdk_x11_window_queue_antiexpose (GdkWindow *window,
GdkRegion *area);
void _gdk_x11_window_queue_translation (GdkWindow *window,
GdkRegion *area,
gint dx,
gint dy);
void _gdk_selection_window_destroyed (GdkWindow *window);
gboolean _gdk_selection_filter_clear_event (XSelectionClearEvent *event);
......
......@@ -5925,6 +5925,7 @@ gdk_window_impl_iface_init (GdkWindowImplIface *iface)
iface->merge_child_shapes = gdk_window_x11_merge_child_shapes;
iface->set_static_gravities = gdk_window_x11_set_static_gravities;
iface->queue_antiexpose = _gdk_x11_window_queue_antiexpose;
iface->queue_translation = _gdk_x11_window_queue_translation;
}
#define __GDK_WINDOW_X11_C__
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment