diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-07-30 20:38:45 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-07-31 11:27:54 +0200 |
commit | 824c0cb9b2c0d74c7eb76ce08169f7eae11e39d0 (patch) | |
tree | 553e5485a9a61c182c3246ffe5fbd78c4f7aa7de | |
parent | c3d446522d0bd1ec0f1d9e0c4a83e3472eb108da (diff) |
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@redhat.com>
-rw-r--r-- | include/vcl/weld.hxx | 3 | ||||
-rw-r--r-- | vcl/source/app/salvtables.cxx | 8 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 5 |
3 files changed, 16 insertions, 0 deletions
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 |