diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-04-09 15:24:10 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2021-04-09 20:54:56 +0200 |
commit | 4db804df44b1b4cb9512e02aaac8d45e986a03eb (patch) | |
tree | b0f810f62eb121f3e1f15eb4f6252d42563fa61f /vcl | |
parent | ce98bef935dccd79735615a9299b2aa7a1ab0b94 (diff) |
enable set_busy_cursor to stack up in the gtk version too
Change-Id: Ib9f8ee5af3e40c7563561d0eebc59f4a4fafcfa4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113888
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 10df2ee6e317..5ee5a9bf0bb3 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -2109,6 +2109,7 @@ protected: private: bool m_bTakeOwnership; bool m_bDraggedOver; + int m_nWaitCount; sal_uInt16 m_nLastMouseButton; sal_uInt16 m_nLastMouseClicks; int m_nPressedButton; @@ -2480,6 +2481,7 @@ public: , m_pBuilder(pBuilder) , m_bTakeOwnership(bTakeOwnership) , m_bDraggedOver(false) + , m_nWaitCount(0) , m_nLastMouseButton(0) , m_nLastMouseClicks(0) , m_nPressedButton(-1) @@ -3021,7 +3023,15 @@ public: virtual void set_busy_cursor(bool bBusy) override { - set_cursor(m_pWidget, bBusy ? "progress" : nullptr); + if (bBusy) + ++m_nWaitCount; + else + --m_nWaitCount; + if (m_nWaitCount == 1) + set_cursor(m_pWidget, "progress"); + else if (m_nWaitCount == 0) + set_cursor(m_pWidget, nullptr); + assert (m_nWaitCount >= 0); } virtual void queue_resize() override |