summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h3
-rw-r--r--libs/gtkmm2ext/persistent_tooltip.cc16
2 files changed, 18 insertions, 1 deletions
diff --git a/libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h b/libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h
index 6507bbb479..1b63db26e2 100644
--- a/libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h
+++ b/libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h
@@ -39,6 +39,9 @@ public:
virtual bool dragging () const;
+ void explicit_show ();
+ void explicit_hide ();
+
private:
bool timeout ();
void show ();
diff --git a/libs/gtkmm2ext/persistent_tooltip.cc b/libs/gtkmm2ext/persistent_tooltip.cc
index ae4c2e45c6..72d1aa4db3 100644
--- a/libs/gtkmm2ext/persistent_tooltip.cc
+++ b/libs/gtkmm2ext/persistent_tooltip.cc
@@ -63,11 +63,25 @@ PersistentTooltip::timeout ()
return false;
}
+void
+PersistentTooltip::explicit_show ()
+{
+ _timeout.disconnect ();
+ show ();
+}
+
+void
+PersistentTooltip::explicit_hide ()
+{
+ _timeout.disconnect ();
+ hide ();
+}
+
bool
PersistentTooltip::leave (GdkEventCrossing *)
{
+ _timeout.disconnect ();
if (!dragging ()) {
- _timeout.disconnect ();
hide ();
}