summaryrefslogtreecommitdiff
path: root/gtk2_ardour/window_manager.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-07-07 17:44:00 +0200
committerRobin Gareus <robin@gareus.org>2013-07-07 19:29:50 +0200
commita22e20133d0b5c1678fb41416f74283a93ab208f (patch)
tree99953f87a621b11d14b29c9925b0d82c6ca509ab /gtk2_ardour/window_manager.cc
parentcb6f16ac2df2db18e4a87aa2617625a3195d45c9 (diff)
make window-manager session-aware
Diffstat (limited to 'gtk2_ardour/window_manager.cc')
-rw-r--r--gtk2_ardour/window_manager.cc19
1 files changed, 15 insertions, 4 deletions
diff --git a/gtk2_ardour/window_manager.cc b/gtk2_ardour/window_manager.cc
index 730668d7e4..d15028ac13 100644
--- a/gtk2_ardour/window_manager.cc
+++ b/gtk2_ardour/window_manager.cc
@@ -52,6 +52,10 @@ Manager::Manager ()
{
}
+Manager::~Manager ()
+{
+}
+
void
Manager::register_window (ProxyBase* info)
{
@@ -120,11 +124,9 @@ Manager::add_state (XMLNode& root) const
void
Manager::set_session (ARDOUR::Session* s)
{
+ SessionHandlePtr::set_session (s);
for (Windows::const_iterator i = _windows.begin(); i != _windows.end(); ++i) {
- ARDOUR::SessionHandlePtr* sp = (*i)->session_handle ();
- if (sp) {
- sp->set_session (s);
- }
+ (*i)->set_session(s);
}
}
@@ -358,6 +360,7 @@ ProxyBase::setup ()
if (_x_off != -1 && _y_off != -1) {
_window->move (_x_off, _y_off);
}
+ set_session(_session);
}
void
@@ -404,6 +407,13 @@ ProxyBase::hide ()
}
}
+bool
+ProxyBase::handle_win_event (GdkEventAny *ev)
+{
+ save_pos_and_size();
+ return 0;
+}
+
void
ProxyBase::save_pos_and_size ()
{
@@ -422,6 +432,7 @@ ProxyTemporary::~ProxyTemporary ()
{
}
+
ARDOUR::SessionHandlePtr*
ProxyTemporary::session_handle()
{