From 07be5beee7941a193fd55b584e72dbd9c8bea6fb Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 7 Jul 2013 22:24:15 +0200 Subject: [PATCH] window delete/hide is managed by WMProxy (amend to cb6f16ac) --- gtk2_ardour/ardour_window.cc | 1 - gtk2_ardour/io_selector.cc | 3 +-- gtk2_ardour/location_ui.cc | 3 +-- gtk2_ardour/plugin_ui.cc | 1 - gtk2_ardour/port_insert_ui.cc | 2 +- gtk2_ardour/region_editor.cc | 1 - gtk2_ardour/return_ui.cc | 1 - gtk2_ardour/route_params_ui.cc | 5 ----- gtk2_ardour/send_ui.cc | 4 ---- gtk2_ardour/step_editor.cc | 2 +- gtk2_ardour/window_manager.cc | 15 +++++++++------ 11 files changed, 13 insertions(+), 25 deletions(-) diff --git a/gtk2_ardour/ardour_window.cc b/gtk2_ardour/ardour_window.cc index 3d33b14e60..ab9d72dd53 100644 --- a/gtk2_ardour/ardour_window.cc +++ b/gtk2_ardour/ardour_window.cc @@ -84,7 +84,6 @@ ArdourWindow::on_unmap () bool ArdourWindow::on_delete_event (GdkEventAny*) { - hide (); return false; } diff --git a/gtk2_ardour/io_selector.cc b/gtk2_ardour/io_selector.cc index 544963f666..31f8cfa1cb 100644 --- a/gtk2_ardour/io_selector.cc +++ b/gtk2_ardour/io_selector.cc @@ -235,8 +235,7 @@ bool IOSelectorWindow::wm_delete (GdkEventAny* /*event*/) { _selector.Finished (IOSelector::Accepted); - hide (); - return true; + return false; } diff --git a/gtk2_ardour/location_ui.cc b/gtk2_ardour/location_ui.cc index d30327ad78..92f11da019 100644 --- a/gtk2_ardour/location_ui.cc +++ b/gtk2_ardour/location_ui.cc @@ -1165,8 +1165,7 @@ LocationUIWindow::on_map () bool LocationUIWindow::on_delete_event (GdkEventAny*) { - hide (); - return true; + return false; } void diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc index 9a85b78454..d9741f5e39 100644 --- a/gtk2_ardour/plugin_ui.cc +++ b/gtk2_ardour/plugin_ui.cc @@ -148,7 +148,6 @@ PluginUIWindow::PluginUIWindow ( set_name ("PluginEditor"); add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK); - signal_delete_event().connect (sigc::bind (sigc::ptr_fun (just_hide_it), reinterpret_cast (this)), false); insert->DropReferences.connect (death_connection, invalidator (*this), boost::bind (&PluginUIWindow::plugin_going_away, this), gui_context()); gint h = _pluginui->get_preferred_height (); diff --git a/gtk2_ardour/port_insert_ui.cc b/gtk2_ardour/port_insert_ui.cc index 16beb75877..0511b357db 100644 --- a/gtk2_ardour/port_insert_ui.cc +++ b/gtk2_ardour/port_insert_ui.cc @@ -184,7 +184,7 @@ bool PortInsertWindow::wm_delete (GdkEventAny* /*event*/) { accept (); - return true; + return false; } void diff --git a/gtk2_ardour/region_editor.cc b/gtk2_ardour/region_editor.cc index 51e4deddc8..564938ad5c 100644 --- a/gtk2_ardour/region_editor.cc +++ b/gtk2_ardour/region_editor.cc @@ -161,7 +161,6 @@ RegionEditor::RegionEditor (Session* s, boost::shared_ptr r) set_name ("RegionEditorWindow"); add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK); - signal_delete_event().connect (sigc::bind (sigc::ptr_fun (just_hide_it), static_cast (this))); signal_response().connect (sigc::mem_fun (*this, &RegionEditor::handle_response)); set_title (string_compose (_("Region '%1'"), _region->name())); diff --git a/gtk2_ardour/return_ui.cc b/gtk2_ardour/return_ui.cc index 8120534b7d..592fff0a0e 100644 --- a/gtk2_ardour/return_ui.cc +++ b/gtk2_ardour/return_ui.cc @@ -111,7 +111,6 @@ ReturnUIWindow::ReturnUIWindow (boost::shared_ptr r, ARDOUR::Session* s) set_name ("ReturnUIWindow"); r->DropReferences.connect (going_away_connection, invalidator (*this), boost::bind (&ReturnUIWindow::return_going_away, this), gui_context()); - signal_delete_event().connect (sigc::bind (sigc::ptr_fun (just_hide_it), reinterpret_cast (this))); } ReturnUIWindow::~ReturnUIWindow () diff --git a/gtk2_ardour/route_params_ui.cc b/gtk2_ardour/route_params_ui.cc index 56ed380404..e9ddb54d41 100644 --- a/gtk2_ardour/route_params_ui.cc +++ b/gtk2_ardour/route_params_ui.cc @@ -146,11 +146,6 @@ RouteParams_UI::RouteParams_UI () add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::BUTTON_RELEASE_MASK); _plugin_selector = new PluginSelector (PluginManager::instance()); - _plugin_selector->signal_delete_event().connect (sigc::bind (ptr_fun (just_hide_it), - static_cast (_plugin_selector))); - - - signal_delete_event().connect(sigc::bind(ptr_fun(just_hide_it), static_cast(this))); } RouteParams_UI::~RouteParams_UI () diff --git a/gtk2_ardour/send_ui.cc b/gtk2_ardour/send_ui.cc index e9699f2cfe..4a16c57259 100644 --- a/gtk2_ardour/send_ui.cc +++ b/gtk2_ardour/send_ui.cc @@ -133,10 +133,6 @@ SendUIWindow::SendUIWindow (boost::shared_ptr s, Session* session) hpacker.show (); s->DropReferences.connect (going_away_connection, invalidator (*this), boost::bind (&SendUIWindow::send_going_away, this), gui_context()); - - signal_delete_event().connect (sigc::bind ( - sigc::ptr_fun (just_hide_it), - reinterpret_cast (this))); } SendUIWindow::~SendUIWindow () diff --git a/gtk2_ardour/step_editor.cc b/gtk2_ardour/step_editor.cc index a75f0f98e4..11ac6c3187 100644 --- a/gtk2_ardour/step_editor.cc +++ b/gtk2_ardour/step_editor.cc @@ -149,7 +149,7 @@ bool StepEditor::step_editor_hidden (GdkEventAny*) { step_editor_hide (); - return true; + return true; // XXX remember position ?! } void diff --git a/gtk2_ardour/window_manager.cc b/gtk2_ardour/window_manager.cc index d15028ac13..629e24419b 100644 --- a/gtk2_ardour/window_manager.cc +++ b/gtk2_ardour/window_manager.cc @@ -302,8 +302,10 @@ ProxyBase::get_state () const /* we have a window, so use current state */ _visible = vistracker->partially_visible (); - _window->get_position (_x_off, _y_off); - _window->get_size (_width, _height); + if (_visible) { + _window->get_position (_x_off, _y_off); + _window->get_size (_width, _height); + } } node->add_property (X_("visible"), _visible? X_("yes") : X_("no")); @@ -410,15 +412,16 @@ ProxyBase::hide () bool ProxyBase::handle_win_event (GdkEventAny *ev) { - save_pos_and_size(); - return 0; + hide(); + return true; } void ProxyBase::save_pos_and_size () { - _window->get_position (_x_off, _y_off); - _window->get_size (_width, _height); + Gtk::Window* win = get (false); + win->get_position (_x_off, _y_off); + win->get_size (_width, _height); } /*-----------------------*/