gdk: Make window moves a custom vfunc

The window move code needs special attention for multiple reasons:
- invalid areas for expose events need to be modified
- self-copy is not supported by Cairo
- in X11, copying from an overlapped Window might cause unexposed areas
  to be copied in, spo expose events for those need to be generated.

This was all special cased in various parts of the code. By making it an
explicit vfunc, we can work around it.
This commit is contained in:
Benjamin Otte
2010-07-21 20:37:33 +02:00
parent a581401920
commit 65ac54bb23
9 changed files with 133 additions and 99 deletions

View File

@ -118,8 +118,7 @@ void _gdk_window_process_expose (GdkWindow *window,
gboolean _gdk_x11_window_queue_antiexpose (GdkWindow *window,
cairo_region_t *area);
void _gdk_x11_window_queue_translation (GdkWindow *window,
GdkGC *gc,
void _gdk_x11_window_translate (GdkWindow *window,
cairo_region_t *area,
gint dx,
gint dy);