summaryrefslogtreecommitdiff
path: root/vcl/unx/gtk/window/gtkframe.cxx
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/gtk/window/gtkframe.cxx
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/gtk/window/gtkframe.cxx')
-rw-r--r--vcl/unx/gtk/window/gtkframe.cxx20
1 files changed, 14 insertions, 6 deletions
diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
index 36be0b223c41..d45a8f65545a 100644
--- a/vcl/unx/gtk/window/gtkframe.cxx
+++ b/vcl/unx/gtk/window/gtkframe.cxx
@@ -2990,6 +2990,12 @@ void GtkSalFrame::popIgnoreDamage()
{
m_nDuringRender--;
}
+
+bool GtkSalFrame::isDuringRender()
+{
+ return m_nDuringRender;
+}
+
#endif
void GtkSalFrame::damaged (const basegfx::B2IBox& rDamageRect)
@@ -2997,27 +3003,29 @@ void GtkSalFrame::damaged (const basegfx::B2IBox& rDamageRect)
#if !GTK_CHECK_VERSION(3,0,0)
(void)rDamageRect;
#else
- if (m_nDuringRender)
+ if ( isDuringRender() )
return;
#if OSL_DEBUG_LEVEL > 1
long long area = rDamageRect.getWidth() * rDamageRect.getHeight();
if( area > 32 * 1024 )
- fprintf( stderr, "bitmap damaged %d %d (%dx%d) area %lld\n",
+ {
+ fprintf( stderr, "bitmap damaged %d %d (%dx%d) area %lld widget\n",
(int) rDamageRect.getMinX(),
(int) rDamageRect.getMinY(),
(int) rDamageRect.getWidth(),
(int) rDamageRect.getHeight(),
area );
+ }
#endif
/* FIXME: this is a dirty hack, to render buttons correctly, we
* should of course remove the -100 and + 200, but the whole area
* won't be rendered then.
*/
gtk_widget_queue_draw_area( m_pWindow,
- rDamageRect.getMinX() - 100,
- rDamageRect.getMinY() - 100,
- rDamageRect.getWidth() + 200,
- rDamageRect.getHeight() + 200 );
+ rDamageRect.getMinX() - 1,
+ rDamageRect.getMinY() - 1,
+ rDamageRect.getWidth() + 2,
+ rDamageRect.getHeight() + 2 );
#endif
}