diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2018-09-23 12:57:31 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2018-09-23 13:48:19 -0400 |
commit | d48dd0ccd546616cf71c3bc8f7e776b76d7ab9c6 (patch) | |
tree | db6e0ce75d38832290f73806adaa93b2c59eb9c2 /libs/gtkmm2ext | |
parent | b9d8f75119fc9a9f7cf4c79a91c9fa350500dd07 (diff) |
defer creating a visibility tracker for a window until the window is mapped
Without this, the visibility tracker will report that the window is not visible at startup, and
this overrides the XML _visible property which denotes that the window should be made visible
Diffstat (limited to 'libs/gtkmm2ext')
-rw-r--r-- | libs/gtkmm2ext/visibility_tracker.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/gtkmm2ext/visibility_tracker.cc b/libs/gtkmm2ext/visibility_tracker.cc index 170036eac1..b29047eacb 100644 --- a/libs/gtkmm2ext/visibility_tracker.cc +++ b/libs/gtkmm2ext/visibility_tracker.cc @@ -27,8 +27,9 @@ bool VisibilityTracker::_use_window_manager_visibility = true; VisibilityTracker::VisibilityTracker (Gtk::Window& win) : _window (win) - , _visibility (GdkVisibilityState (0)) + , _visibility (GDK_VISIBILITY_FULLY_OBSCURED) { + std::cerr << " vis tracker for " << _window.get_title() << " created\n"; _window.add_events (Gdk::VISIBILITY_NOTIFY_MASK); _window.signal_visibility_notify_event().connect (sigc::mem_fun (*this, &VisibilityTracker::handle_visibility_notify_event)); } @@ -42,7 +43,9 @@ VisibilityTracker::set_use_window_manager_visibility (bool yn) bool VisibilityTracker::handle_visibility_notify_event (GdkEventVisibility* ev) { + std::cerr << _window.get_title() << " VISIBILITY CHANGE " << " from " << _visibility; _visibility = ev->state; + std::cerr << " to " << _visibility << std::endl; return false; } @@ -80,8 +83,10 @@ bool VisibilityTracker::partially_visible () const { if (_use_window_manager_visibility) { + std::cerr << _window.get_title() << " pvis from vis = " << _visibility << " mapped " << _window.is_mapped() << std::endl; return _window.is_mapped() && ((_visibility == GDK_VISIBILITY_PARTIAL) || (_visibility == GDK_VISIBILITY_UNOBSCURED)); } else { + std::cerr << _window.get_title() << " pvis from mapped " << _window.is_mapped() << std::endl; return _window.is_mapped(); } } |