window: Remove display_flush_cairo_device
authorBenjamin Franzke <benjaminfranzke@googlemail.com>
Fri, 7 Oct 2011 07:08:56 +0000 (09:08 +0200)
committerBenjamin Franzke <benjaminfranzke@googlemail.com>
Fri, 7 Oct 2011 08:05:57 +0000 (10:05 +0200)
Rather add a flush_surface utility that
flushed the cairo_device thats associated to a surface.

clients/cairo-util.c
clients/cairo-util.h
clients/dnd.c
clients/window.c
clients/window.h

index 7bcfe41..184f58e 100644 (file)
 #define ARRAY_LENGTH(a) (sizeof (a) / sizeof (a)[0])
 
 void
+surface_flush_device(cairo_surface_t *surface)
+{
+       cairo_device_t *device;
+
+       device = cairo_surface_get_device(surface);
+       if (device)
+               cairo_device_flush(device);
+}
+
+void
 blur_surface(cairo_surface_t *surface, int margin)
 {
        int32_t width, height, stride, x, y, z, w;
index 257489a..e490b9f 100644 (file)
@@ -24,6 +24,9 @@
 #define _CAIRO_UTIL_H
 
 void
+surface_flush_device(cairo_surface_t *surface);
+
+void
 blur_surface(cairo_surface_t *surface, int margin);
 
 void
index 707ef5d..5bfe31c 100644 (file)
@@ -35,6 +35,7 @@
 #include "wayland-client.h"
 
 #include "window.h"
+#include "cairo-util.h"
 
 struct dnd {
        struct window *window;
@@ -544,7 +545,7 @@ create_drag_cursor(struct dnd_drag *dnd_drag,
        cairo_surface_destroy(pointer);
        cairo_paint(cr);
        /* FIXME: more cairo-gl brokeness */
-       display_flush_cairo_device(dnd->display);
+       surface_flush_device(surface);
        cairo_destroy(cr);
 
        dnd_drag->hotspot_x = pointer_width + x - item->x;
index 54adde6..e9e8a27 100644 (file)
@@ -1037,12 +1037,6 @@ item_get_user_data(struct item *item)
 }
 
 void
-display_flush_cairo_device(struct display *display)
-{
-       cairo_device_flush (display->device);
-}
-
-void
 window_draw(struct window *window)
 {
        if (window->parent)
index 2409197..60da5ca 100644 (file)
@@ -101,9 +101,6 @@ display_add_drag_listener(struct display *display,
                          void *data);
 
 void
-display_flush_cairo_device(struct display *display);
-
-void
 display_defer(struct display *display, struct task *task);
 
 void