diff options
Diffstat (limited to 'src/pop-window-view.c')
-rw-r--r-- | src/pop-window-view.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/pop-window-view.c b/src/pop-window-view.c index e665dde..4539e9a 100644 --- a/src/pop-window-view.c +++ b/src/pop-window-view.c @@ -544,7 +544,7 @@ pop_window_view_enable_window_damage_reporting (PopWindowView *view) view->priv->damage = XDamageCreate (GDK_WINDOW_XDISPLAY (view->priv->window), GDK_WINDOW_XWINDOW (view->priv->window), - XDamageReportNonEmpty); + XDamageReportRawRectangles); } static void @@ -565,7 +565,7 @@ pop_window_view_window_redrawn (PopWindowView *view, GdkWindow *window, GdkRectangle *rectangle) { - //g_print ("window 0x%lx redrawn (area: %dx%d+%d+%d)\n", GDK_WINDOW_XWINDOW (view->priv->window), rectangle->x, rectangle->y, rectangle->width, rectangle->height); + g_print ("window 0x%lx redrawn (area: %dx%d+%d+%d)\n", GDK_WINDOW_XWINDOW (view->priv->window), rectangle->x, rectangle->y, rectangle->width, rectangle->height); if (view->priv->pattern == NULL) pop_window_view_create_pattern_from_window (view); @@ -903,6 +903,9 @@ pop_window_view_render_to_context (PopWindowView *view, if (view->priv->pattern == NULL) return; + if (!view->priv->is_damaged && FALSE) + return; + pop_window_view_report_fixed_damage (view); cairo_save (cairo_context); @@ -920,6 +923,8 @@ pop_window_view_render_to_context (PopWindowView *view, cairo_move_to (cairo_context, 0.0, 0.0); cairo_append_path (cairo_context, view->priv->clip_path); cairo_clip (cairo_context); + gdk_cairo_rectangle (cairo_context, view->priv->damaged_area); + cairo_clip (cairo_context); cairo_paint (cairo_context); cairo_restore (cairo_context); |