summaryrefslogtreecommitdiffstats
path: root/gtk/src/ghbcompositor.c
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2011-08-03 22:17:14 +0000
committerjstebbins <[email protected]>2011-08-03 22:17:14 +0000
commitc9eab48235633df60714dedea4204e0c8bc1b43f (patch)
treec37c79fc3e116ba22bb2d4c3944e92823f7a9b73 /gtk/src/ghbcompositor.c
parent111818c49564ae33e12bddc6f1e1fa6a747388c3 (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
Diffstat (limited to 'gtk/src/ghbcompositor.c')
-rw-r--r--gtk/src/ghbcompositor.c7
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);