summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/window_proxy.h4
-rw-r--r--libs/gtkmm2ext/tabbable.cc7
-rw-r--r--libs/gtkmm2ext/window_proxy.cc20
3 files changed, 24 insertions, 7 deletions
diff --git a/libs/gtkmm2ext/gtkmm2ext/window_proxy.h b/libs/gtkmm2ext/gtkmm2ext/window_proxy.h
index a7923e8e04..abacca2428 100644
--- a/libs/gtkmm2ext/gtkmm2ext/window_proxy.h
+++ b/libs/gtkmm2ext/gtkmm2ext/window_proxy.h
@@ -52,8 +52,8 @@ class LIBGTKMM2EXT_API WindowProxy : public PBD::StatefulDestructible, public vi
void present ();
void maybe_show ();
- bool visible() const { return _visible; }
- bool not_visible() const { return !_visible; }
+ bool visible() const;
+ bool fully_visible() const;
const std::string& name() const { return _name; }
const std::string& menu_name() const { return _menu_name; }
diff --git a/libs/gtkmm2ext/tabbable.cc b/libs/gtkmm2ext/tabbable.cc
index 1c720591f5..be898a5555 100644
--- a/libs/gtkmm2ext/tabbable.cc
+++ b/libs/gtkmm2ext/tabbable.cc
@@ -188,11 +188,8 @@ Tabbable::change_visibility ()
}
if (_window && (current_toplevel() == _window)) {
- if (_window->is_visible ()) {
- _window->hide ();
- } else {
- _window->present ();
- }
+ /* Use WindowProxy method which will rotate then hide */
+ toggle();
}
}
diff --git a/libs/gtkmm2ext/window_proxy.cc b/libs/gtkmm2ext/window_proxy.cc
index 8efebd0241..b40e373046 100644
--- a/libs/gtkmm2ext/window_proxy.cc
+++ b/libs/gtkmm2ext/window_proxy.cc
@@ -233,6 +233,26 @@ WindowProxy::setup ()
set_pos_and_size ();
}
+bool
+WindowProxy::visible() const
+{
+ if (vistracker) {
+ /* update with current state */
+ _visible = vistracker->partially_visible();
+ }
+ return _visible;
+}
+
+bool
+WindowProxy::fully_visible () const
+{
+ if (!vistracker) {
+ /* no vistracker .. no window .. cannot be fully visible */
+ return false;
+ }
+ return vistracker->fully_visible();
+}
+
void
WindowProxy::show ()
{