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

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Fri Jul 31 09:28:32 UTC 2020


 include/vcl/weld.hxx          |    3 +++
 vcl/source/app/salvtables.cxx |    8 ++++++++
 vcl/unx/gtk3/gtk3gtkinst.cxx  |    5 +++++
 3 files changed, 16 insertions(+)

New commits:
commit 824c0cb9b2c0d74c7eb76ce08169f7eae11e39d0
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Jul 30 20:38:45 2020 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Fri Jul 31 11:27:54 2020 +0200

    add queue_draw to force redraw with custom rendering
    
    Change-Id: I19251835ff4d49e6240b322a37df5653db7d1b70
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99822
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index 660c7feb2a57..c45a0cc35c54 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -1174,6 +1174,9 @@ public:
     void connect_custom_render(const Link<render_args, void>& rLink) { m_aRenderHdl = rLink; }
     // call set_column_custom_renderer after setting custom callbacks
     virtual void set_column_custom_renderer(int nColumn, bool bEnable) = 0;
+    // redraw all rows, typically only useful with custom rendering to redraw due to external
+    // state change
+    virtual void queue_draw() = 0;
 
     /* with bDnDMode false simply return the row under the point
      *
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index d84d657f86dc..37b6f595e178 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -3694,6 +3694,14 @@ public:
             m_aCustomRenders.erase(nColumn);
     }
 
+    virtual void queue_draw() override
+    {
+        // invalidate the entries
+        SvTreeList* pModel = m_xTreeView->GetModel();
+        for (SvTreeListEntry* pEntry = m_xTreeView->First(); pEntry; pEntry = m_xTreeView->Next(pEntry))
+            pModel->InvalidateEntry(pEntry);
+    }
+
     virtual void show() override
     {
         if (LclHeaderTabListBox* pHeaderBox = dynamic_cast<LclHeaderTabListBox*>(m_xTreeView.get()))
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index a647bdfdaaec..a6e6901c0604 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -10104,6 +10104,11 @@ public:
         }
     }
 
+    virtual void queue_draw() override
+    {
+        gtk_widget_queue_draw(GTK_WIDGET(m_pTreeView));
+    }
+
     virtual void insert(const weld::TreeIter* pParent, int pos, const OUString* pText, const OUString* pId, const OUString* pIconName,
                         VirtualDevice* pImageSurface,
                         bool bChildrenOnDemand, weld::TreeIter* pRet) override


More information about the Libreoffice-commits mailing list