summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-04-25 03:00:57 +0200
committerRobin Gareus <robin@gareus.org>2015-04-25 03:00:57 +0200
commitd40ad1f6ffe74add0df2e494c963ef8005cfb1a5 (patch)
treee1f2c6279d8529b247fb34be1c37338e6c524552
parentc809e528c026bcc02471f973c71ba04d8e8a1dce (diff)
fixup stuck persistent tooltips.
-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 ();
}