mirror of
https://gitlab.com/CinnamonSlackBuilds/csb.git
synced 2024-12-28 09:58:11 +01:00
33 lines
989 B
Diff
33 lines
989 B
Diff
|
--- a/eel/eel-canvas.c
|
||
|
+++ b/eel/eel-canvas.c
|
||
|
@@ -3213,11 +3213,19 @@ eel_canvas_draw (GtkWidget *widget, cair
|
||
|
return FALSE;
|
||
|
|
||
|
bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (widget));
|
||
|
+
|
||
|
+ if (!gtk_cairo_should_draw_window (cr, bin_window))
|
||
|
+ return FALSE;
|
||
|
+
|
||
|
+ cairo_save (cr);
|
||
|
+
|
||
|
gtk_cairo_transform_to_window (cr, widget, bin_window);
|
||
|
|
||
|
region = eel_cairo_get_clip_region (cr);
|
||
|
- if (region == NULL)
|
||
|
+ if (region == NULL) {
|
||
|
+ cairo_restore (cr);
|
||
|
return FALSE;
|
||
|
+ }
|
||
|
|
||
|
#ifdef VERBOSE
|
||
|
g_print ("Draw\n");
|
||
|
@@ -3249,6 +3257,8 @@ eel_canvas_draw (GtkWidget *widget, cair
|
||
|
if (canvas->root->flags & EEL_CANVAS_ITEM_MAPPED)
|
||
|
EEL_CANVAS_ITEM_GET_CLASS (canvas->root)->draw (canvas->root, cr, region);
|
||
|
|
||
|
+ cairo_restore (cr);
|
||
|
+
|
||
|
/* Chain up to get exposes on child widgets */
|
||
|
if (GTK_WIDGET_CLASS (canvas_parent_class)->draw)
|
||
|
GTK_WIDGET_CLASS (canvas_parent_class)->draw (widget, cr);
|