diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-12-10 02:03:45 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-12-10 02:03:45 +0000 |
commit | 00e1b1410c98e96a283ff4f4ab87dad2f8d1e5a2 (patch) | |
tree | 7f61f21f8ad09f84c13884b70b154ed2e0dde937 | |
parent | 24917e4c9e36ca5762ef6d1953c4df8753e4eaba (diff) |
fix reversion of keyboard focus from gain display editing widget in both mixer and editor windows
git-svn-id: svn://localhost/ardour2/branches/3.0@13628 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | gtk2_ardour/editor_canvas.cc | 3 | ||||
-rw-r--r-- | gtk2_ardour/gain_meter.cc | 15 | ||||
-rw-r--r-- | gtk2_ardour/mixer_ui.cc | 4 |
3 files changed, 21 insertions, 1 deletions
diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc index 3e7aad2a1b..c0656ba90a 100644 --- a/gtk2_ardour/editor_canvas.cc +++ b/gtk2_ardour/editor_canvas.cc @@ -106,6 +106,9 @@ Editor::initialize_canvas () track_canvas = new ArdourCanvas::CanvasAA (); } + track_canvas->set_can_default (true); + set_default (*track_canvas); + ArdourCanvas::init (); ardour_canvas_type_init (); diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc index 54519546d0..dbe873634c 100644 --- a/gtk2_ardour/gain_meter.cc +++ b/gtk2_ardour/gain_meter.cc @@ -427,7 +427,20 @@ GainMeterBase::gain_activated () } if (gain_display.has_focus()) { - PublicEditor::instance().reset_focus(); + Gtk::Widget* w = gain_display.get_toplevel(); + if (w) { + Gtk::Window* win = dynamic_cast<Gtk::Window*> (w); + + /* sigh. gtkmm doesn't wrap get_default_widget() */ + + if (win) { + GtkWidget* f = gtk_window_get_default_widget (win->gobj()); + if (f) { + gtk_widget_grab_focus (f); + return; + } + } + } } } diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index fc39115c33..10345428b1 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -97,6 +97,9 @@ Mixer_UI::Mixer_UI () Route::SyncOrderKeys.connect (*this, invalidator (*this), boost::bind (&Mixer_UI::sync_treeview_from_order_keys, this, _1), gui_context()); + scroller.set_can_default (true); + set_default (scroller); + scroller_base.set_flags (Gtk::CAN_FOCUS); scroller_base.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK); scroller_base.set_name ("MixerWindow"); @@ -1935,3 +1938,4 @@ Mixer_UI::toggle_midi_input_active (bool flip_others) _session->set_exclusive_input_active (rl, onoff, flip_others); } + |