From d40ad1f6ffe74add0df2e494c963ef8005cfb1a5 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 25 Apr 2015 03:00:57 +0200 Subject: [PATCH] fixup stuck persistent tooltips. --- libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h | 3 +++ libs/gtkmm2ext/persistent_tooltip.cc | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) 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 (); }