diff options
author | Maxim Monastirsky <momonasmon@gmail.com> | 2018-10-23 01:37:25 +0300 |
---|---|---|
committer | Maxim Monastirsky <momonasmon@gmail.com> | 2018-10-24 22:08:10 +0200 |
commit | b8bf751f9f5e2cb718175c0f2c4b2be762dcf614 (patch) | |
tree | b27251c2fa351a3fd2415d6cbfdc8021831b802a /vcl/inc | |
parent | 4fc1fe6dbc6dd1e836a7abf37f7860eb17c12b1c (diff) |
tdf#120764 Toolbar popups sometimes not showing under Wayland
This happens with gtk 3.24 if the toolbar button is
clicked when the tooltip of that button is visible.
The warning gtk emits is "Tried to map a popup with a
non-top most parent".
The solution is to hide the tooltip early on mouse
button press event processing. (gtk does hiding too,
but in a way which isn't useful here - see the code
comment. We also have similar code for the non-native
case in ImplHandleMouseEvent of winproc.cxx.)
Note that it's likely a gtk bug, as this new tooltip
behavior breaks some native cases too, e.g. combo boxes
with tooltips. But we can't leave our toolbars broken
until this is fixed upstream.
Change-Id: I1ce8bffcd78a3bcbbfe2ffdd1bd006ae5dc79618
Reviewed-on: https://gerrit.libreoffice.org/62207
Tested-by: Jenkins
Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
Diffstat (limited to 'vcl/inc')
-rw-r--r-- | vcl/inc/unx/gtk/gtkframe.hxx | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx index 04ec68a7854e..94547848659e 100644 --- a/vcl/inc/unx/gtk/gtkframe.hxx +++ b/vcl/inc/unx/gtk/gtkframe.hxx @@ -537,6 +537,7 @@ public: #if GTK_CHECK_VERSION(3,0,0) virtual void PositionByToolkit(const tools::Rectangle& rRect, FloatWinPopupFlags nFlags) override; virtual void SetModal(bool bModal) override; + void HideTooltip(); virtual bool ShowTooltip(const OUString& rHelpText, const tools::Rectangle& rHelpArea) override; virtual void* ShowPopover(const OUString& rHelpText, vcl::Window* pParent, const tools::Rectangle& rHelpArea, QuickHelpFlags nFlags) override; virtual bool UpdatePopover(void* nId, const OUString& rHelpText, vcl::Window* pParent, const tools::Rectangle& rHelpArea) override; |