diff options
author | jstebbins <[email protected]> | 2011-08-03 22:17:14 +0000 |
---|---|---|
committer | jstebbins <[email protected]> | 2011-08-03 22:17:14 +0000 |
commit | c9eab48235633df60714dedea4204e0c8bc1b43f (patch) | |
tree | c37c79fc3e116ba22bb2d4c3944e92823f7a9b73 | |
parent | 111818c49564ae33e12bddc6f1e1fa6a747388c3 (diff) |
LinGui: fix hud rendering issue
On some display drivers, the rounded corners of the hud would retain
the previous preview image when the preview was changed. This adds
a region mask to compensate for buggy drivers.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4154 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r-- | gtk/src/ghbcompositor.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gtk/src/ghbcompositor.c b/gtk/src/ghbcompositor.c index b4054055f..93f533c3c 100644 --- a/gtk/src/ghbcompositor.c +++ b/gtk/src/ghbcompositor.c @@ -634,7 +634,14 @@ ghb_compositor_blend (GtkWidget *widget, GdkEventExpose *event) /* draw no more than our expose event intersects our child */ region = gdk_region_rectangle (&child->allocation); gdk_region_intersect (region, event->region); + + GdkRegion *dregion = gdk_drawable_get_visible_region( + gtk_widget_get_window(child)); + gdk_region_offset(dregion, child->allocation.x, child->allocation.y); + gdk_region_intersect (region, dregion); + gdk_cairo_region (cr, region); + gdk_region_destroy(region); cairo_clip (cr); /* composite, with an opacity */ cairo_set_operator (cr, CAIRO_OPERATOR_OVER); |