[gtk+] gtkwindow: Don't set an opaque region if the window is app-paintable
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] gtkwindow: Don't set an opaque region if the window is app-paintable
- Date: Sat, 31 Aug 2013 19:53:24 +0000 (UTC)
commit de1f5b8bb3c07895b30f2f8539d76d33de771492
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Sat Aug 31 15:52:56 2013 -0400
gtkwindow: Don't set an opaque region if the window is app-paintable
This means the background is effectively unused. This fixes bad drawing
errors with cc-rr-labeller and potentially also notify-osd.
gtk/gtkwindow.c | 19 +++++++++++++------
1 files changed, 13 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 97e5e8b..7ae2577 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -6512,17 +6512,24 @@ update_opaque_region (GtkWindow *window,
GtkBorder *border,
const GtkAllocation *allocation)
{
- const GdkRGBA *color;
+ GtkWidget *widget = GTK_WIDGET (window);
cairo_region_t *opaque_region;
GtkStyleContext *context;
+ gboolean is_opaque = FALSE;
- if (!gtk_widget_get_realized (GTK_WIDGET (window)))
+ if (!gtk_widget_get_realized (widget))
return;
- context = gtk_widget_get_style_context (GTK_WIDGET (window));
- color = _gtk_css_rgba_value_get_rgba (_gtk_style_context_peek_property (context,
GTK_CSS_PROPERTY_BACKGROUND_COLOR));
+ context = gtk_widget_get_style_context (widget);
+
+ if (!gtk_widget_get_app_paintable (widget))
+ {
+ const GdkRGBA *color;
+ color = _gtk_css_rgba_value_get_rgba (_gtk_style_context_peek_property (context,
GTK_CSS_PROPERTY_BACKGROUND_COLOR));
+ is_opaque = (color->alpha >= 1.0);
+ }
- if (color->alpha >= 1.0)
+ if (is_opaque)
{
cairo_rectangle_int_t rect;
@@ -6540,7 +6547,7 @@ update_opaque_region (GtkWindow *window,
opaque_region = NULL;
}
- gdk_window_set_opaque_region (gtk_widget_get_window (GTK_WIDGET (window)), opaque_region);
+ gdk_window_set_opaque_region (gtk_widget_get_window (widget), opaque_region);
cairo_region_destroy (opaque_region);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]