From: Kristian Høgsberg Date: Tue, 27 Mar 2012 20:44:57 +0000 (-0400) Subject: dnd: Damage surface after attaching new buffer X-Git-Tag: 20120702.1049~342 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=679f716088845c54fff3e0c9a9d318a3e9e94e2e;p=profile%2Fivi%2Fweston.git dnd: Damage surface after attaching new buffer --- diff --git a/clients/dnd.c b/clients/dnd.c index 2b0faaa..91a7365 100644 --- a/clients/dnd.c +++ b/clients/dnd.c @@ -53,6 +53,7 @@ struct dnd_drag { uint32_t time; struct item *item; int x_offset, y_offset; + int width, height; const char *mime_type; struct wl_surface *drag_surface; @@ -256,6 +257,8 @@ data_source_target(void *data, buffer = display_get_buffer_for_surface(dnd->display, surface); wl_surface_attach(dnd_drag->drag_surface, buffer, 0, 0); + wl_surface_damage(dnd_drag->drag_surface, 0, 0, + dnd_drag->width, dnd_drag->height); } static void @@ -347,6 +350,8 @@ create_drag_cursor(struct dnd_drag *dnd_drag, dnd_drag->hotspot_x = pointer_width + x - item->x; dnd_drag->hotspot_y = pointer_height + y - item->y; + dnd_drag->width = rectangle.width; + dnd_drag->height = rectangle.height; return surface; } @@ -418,6 +423,8 @@ dnd_button_handler(struct widget *widget, buffer = display_get_buffer_for_surface(dnd->display, dnd_drag->translucent); wl_surface_attach(dnd_drag->drag_surface, buffer, -dnd_drag->hotspot_x, -dnd_drag->hotspot_y); + wl_surface_damage(dnd_drag->drag_surface, 0, 0, + dnd_drag->width, dnd_drag->height); window_schedule_redraw(dnd->window); }