diff --git a/libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h b/libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h index 9883fd2020..3b0fe48184 100644 --- a/libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h +++ b/libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h @@ -40,8 +40,11 @@ class LIBGTKMM2EXT_API PersistentTooltip : public sigc::trackable void set_center_alignment (bool align_to_center); virtual bool dragging () const; + static void set_tooltips_enabled (bool en) { _tooltips_enabled = en; } + static bool tooltips_enabled () { return _tooltips_enabled; } private: + static bool _tooltips_enabled; bool timeout (); void show (); void hide (); diff --git a/libs/gtkmm2ext/persistent_tooltip.cc b/libs/gtkmm2ext/persistent_tooltip.cc index c7cb3f4df2..7ee1c3ba6f 100644 --- a/libs/gtkmm2ext/persistent_tooltip.cc +++ b/libs/gtkmm2ext/persistent_tooltip.cc @@ -29,6 +29,8 @@ using namespace std; using namespace Gtk; using namespace Gtkmm2ext; +bool PersistentTooltip::_tooltips_enabled = true; + /** @param target The widget to provide the tooltip for */ PersistentTooltip::PersistentTooltip (Gtk::Widget* target, bool draggable, int margin_y) : _target (target) @@ -115,7 +117,7 @@ PersistentTooltip::hide () void PersistentTooltip::show () { - if (_tip.empty()) { + if (_tip.empty() || !_tooltips_enabled) { return; } diff --git a/libs/gtkmm2ext/utils.cc b/libs/gtkmm2ext/utils.cc index 2b0eb86a9c..7590ed2d78 100644 --- a/libs/gtkmm2ext/utils.cc +++ b/libs/gtkmm2ext/utils.cc @@ -33,6 +33,7 @@ #include #include "gtkmm2ext/utils.h" +#include "gtkmm2ext/persistent_tooltip.h" #include "i18n.h" @@ -836,12 +837,14 @@ void Gtkmm2ext::enable_tooltips () { gtk_rc_parse_string ("gtk-enable-tooltips = 1"); + PersistentTooltip::set_tooltips_enabled (true); } void Gtkmm2ext::disable_tooltips () { gtk_rc_parse_string ("gtk-enable-tooltips = 0"); + PersistentTooltip::set_tooltips_enabled (false); } bool