summaryrefslogtreecommitdiff
path: root/vcl/unx/gtk3/gtk3gtkframe.cxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-04-16 09:26:20 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-04-16 20:28:49 +0200
commitd89a8ae8f963b3b49db920715cfdee11486764e5 (patch)
tree2fba990107dbaa557cafae24c6e463e3f888a313 /vcl/unx/gtk3/gtk3gtkframe.cxx
parentbc0e0f633b05c4f91b6695488fc9e5c127507ba5 (diff)
don't allow tooltips from parent to appear while popup menu is active
Change-Id: Ic2ddff3e22a667af992d6b0701f43d3a89153458 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92371 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl/unx/gtk3/gtk3gtkframe.cxx')
-rw-r--r--vcl/unx/gtk3/gtk3gtkframe.cxx16
1 files changed, 14 insertions, 2 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index 18db569607ee..588081965554 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -928,6 +928,7 @@ void GtkSalFrame::InitCommon()
m_pDropTarget = nullptr;
m_pDragSource = nullptr;
m_bGeometryIsProvisional = false;
+ m_bTooltipBlocked = false;
m_ePointerStyle = static_cast<PointerStyle>(0xffff);
m_pSalMenu = nullptr;
m_nWatcherId = 0;
@@ -2344,7 +2345,7 @@ gboolean GtkSalFrame::signalTooltipQuery(GtkWidget*, gint /*x*/, gint /*y*/,
gpointer frame)
{
GtkSalFrame* pThis = static_cast<GtkSalFrame*>(frame);
- if (pThis->m_aTooltip.isEmpty())
+ if (pThis->m_aTooltip.isEmpty() || pThis->m_bTooltipBlocked)
return false;
gtk_tooltip_set_text(tooltip,
OUStringToOString(pThis->m_aTooltip, RTL_TEXTENCODING_UTF8).getStr());
@@ -2367,10 +2368,21 @@ bool GtkSalFrame::ShowTooltip(const OUString& rHelpText, const tools::Rectangle&
return true;
}
+void GtkSalFrame::BlockTooltip()
+{
+ m_bTooltipBlocked = true;
+}
+
+void GtkSalFrame::UnblockTooltip()
+{
+ m_bTooltipBlocked = false;
+}
+
void GtkSalFrame::HideTooltip()
{
m_aTooltip.clear();
- gtk_widget_trigger_tooltip_query(getMouseEventWidget());
+ GtkWidget* pEventWidget = getMouseEventWidget();
+ gtk_widget_trigger_tooltip_query(pEventWidget);
}
namespace