summaryrefslogtreecommitdiff
path: root/vcl/unx/gtk3
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2012-07-27 15:27:46 +0100
committerMichael Meeks <michael.meeks@suse.com>2012-07-27 15:30:33 +0100
commitfae17f307efeebf535d5e389e2e829fbd9dace58 (patch)
tree694be575ef753cb0388c29b2efdde4f59ceadbfa /vcl/unx/gtk3
parent3c39dd893afec4f00039d0e0d4e97328fe848f0f (diff)
gtk3: ensure we re-render native commits
If we blit pixels to the back-buffer, we need to remember to get them to gtk3 at idle. Change-Id: Ic37660e963fbbcdd132cfba0ce739174d64148d2
Diffstat (limited to 'vcl/unx/gtk3')
-rw-r--r--vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx8
1 files changed, 7 insertions, 1 deletions
diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 64dc0bce6c85..5e0972ff841b 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -979,7 +979,10 @@ void GtkSalGraphics::renderAreaToPix( cairo_t *cr,
src += nStride;
cairo_data += cairo_stride;
}
+ if ( !mpFrame->isDuringRender() )
+ gtk_widget_queue_draw_area( mpFrame->getWindow(), ax, ay, awidth, aheight );
}
+
sal_Bool GtkSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState,
const ImplControlValue&, const rtl::OUString&,
Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion )
@@ -1551,6 +1554,7 @@ void GtkSalGraphics::copyArea( long nDestX, long nDestY,
long nSrcWidth, long nSrcHeight,
sal_uInt16 nFlags )
{
+#ifndef DISABLE_CLEVER_COPYAREA
mpFrame->pushIgnoreDamage();
SvpSalGraphics::copyArea( nDestX, nDestY, nSrcX, nSrcY, nSrcWidth, nSrcHeight, nFlags );
mpFrame->popIgnoreDamage();
@@ -1595,10 +1599,12 @@ void GtkSalGraphics::copyArea( long nDestX, long nDestY,
// FIXME: this will queue (duplicate) gtk+ re-rendering for the exposed area, c'est la vie
gdk_window_move_region( gtk_widget_get_window( mpFrame->getWindow() ),
region, nDestX - nSrcX, nDestY - nSrcY );
-
print_update_area( gtk_widget_get_window( mpFrame->getWindow() ), "after copy area" );
cairo_region_destroy( clip_region );
cairo_region_destroy( region );
+#else
+ SvpSalGraphics::copyArea( nDestX, nDestY, nSrcX, nSrcY, nSrcWidth, nSrcHeight, nFlags );
+#endif
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */