[Libreoffice-commits] core.git: vcl/inc vcl/unx

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Mon May 24 14:31:36 UTC 2021


 vcl/inc/unx/gtk/gtkframe.hxx          |    2 ++
 vcl/unx/gtk3/gtkframe.cxx             |    7 ++++++-
 vcl/unx/gtk3/salnativewidgets-gtk.cxx |    3 +--
 3 files changed, 9 insertions(+), 3 deletions(-)

New commits:
commit 7da5a688f47574f2e55c57d8efba5640bbc4e14f
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon May 24 12:51:41 2021 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon May 24 16:30:54 2021 +0200

    gtk[3|4] add a queue_draw to avoid GtkFixed cast
    
    Change-Id: I093b62f9530b28ae932338163606e78fca5752d4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116057
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx
index a9d3173f27a1..55b306827350 100644
--- a/vcl/inc/unx/gtk/gtkframe.hxx
+++ b/vcl/inc/unx/gtk/gtkframe.hxx
@@ -585,6 +585,8 @@ public:
     //which triggers the gsignals.
     bool                        CallCallbackExc(SalEvent nEvent, const void* pEvent) const;
 
+    // call gtk_widget_queue_draw on the drawing widget
+    void                        queue_draw();
 
     static void                 KeyCodeToGdkKey(const vcl::KeyCode& rKeyCode,
         guint* pGdkKeyCode, GdkModifierType *pGdkModifiers);
diff --git a/vcl/unx/gtk3/gtkframe.cxx b/vcl/unx/gtk3/gtkframe.cxx
index ba35080c9641..4ddbc637c51b 100644
--- a/vcl/unx/gtk3/gtkframe.cxx
+++ b/vcl/unx/gtk3/gtkframe.cxx
@@ -3536,6 +3536,11 @@ gboolean GtkSalFrame::signalConfigure(GtkWidget*, GdkEventConfigure* pEvent, gpo
 }
 #endif
 
+void GtkSalFrame::queue_draw()
+{
+    gtk_widget_queue_draw(GTK_WIDGET(m_pFixedContainer));
+}
+
 void GtkSalFrame::TriggerPaintEvent()
 {
     //Under gtk2 we can basically paint directly into the XWindow and on
@@ -3553,7 +3558,7 @@ void GtkSalFrame::TriggerPaintEvent()
     SAL_INFO("vcl.gtk3", "force painting" << 0 << "," << 0 << " " << maGeometry.nWidth << "x" << maGeometry.nHeight);
     SalPaintEvent aPaintEvt(0, 0, maGeometry.nWidth, maGeometry.nHeight, true);
     CallCallbackExc(SalEvent::Paint, &aPaintEvt);
-    gtk_widget_queue_draw(GTK_WIDGET(m_pFixedContainer));
+    queue_draw();
 }
 
 void GtkSalFrame::DrawingAreaFocusInOut(SalEvent nEventType)
diff --git a/vcl/unx/gtk3/salnativewidgets-gtk.cxx b/vcl/unx/gtk3/salnativewidgets-gtk.cxx
index 68bf184673e9..fc4ddb0617e0 100644
--- a/vcl/unx/gtk3/salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/salnativewidgets-gtk.cxx
@@ -2783,8 +2783,7 @@ cairo::SurfaceSharedPtr GtkSalGraphics::CreateSurface(const OutputDevice& /*rRef
 void GtkSalGraphics::WidgetQueueDraw() const
 {
     //request gtk to sync the entire contents
-    GtkWidget *pWidget = GTK_WIDGET(mpFrame->getFixedContainer());
-    gtk_widget_queue_draw(pWidget);
+    mpFrame->queue_draw();
 }
 
 namespace {


More information about the Libreoffice-commits mailing list