summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2014-06-21 10:16:14 -0400
committerJasper St. Pierre <jstpierre@mecheye.net>2014-06-21 10:17:23 -0400
commit7fefd211b87017f0860117c2fc70a36b90708311 (patch)
tree9af6cfdd5aa8379b068e3bee0a32aabd9fe7e794 /gdk
parente7003052793c79fd1d5ebfd594e0e24252a445c3 (diff)
downloadgtk+-7fefd211b87017f0860117c2fc70a36b90708311.tar.gz
gdkwindow: Clean up code
Introduce a temporary to make the code a bit more clear under these cases.
Diffstat (limited to 'gdk')
-rw-r--r--gdk/gdkwindow.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 1a3966b70e..dd217136e6 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -2818,6 +2818,7 @@ gdk_window_end_paint (GdkWindow *window)
if (window->current_paint.surface_needs_composite)
{
cairo_surface_t *surface;
+ gboolean skip_alpha_blending;
cairo_region_get_extents (window->current_paint.region, &clip_box);
full_clip = cairo_region_copy (window->clip_region);
@@ -2831,8 +2832,12 @@ gdk_window_end_paint (GdkWindow *window)
gdk_cairo_region (cr, full_clip);
cairo_clip (cr);
- if (gdk_window_has_impl (window) ||
- window->alpha == 255)
+ /* We can skip alpha blending for a fast composite case
+ * if we have an impl window or we're a fully opaque window. */
+ skip_alpha_blending = (gdk_window_has_impl (window) ||
+ window->alpha == 255);
+
+ if (skip_alpha_blending)
{
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
cairo_paint (cr);