summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-12-10 02:03:45 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-12-10 02:03:45 +0000
commit00e1b1410c98e96a283ff4f4ab87dad2f8d1e5a2 (patch)
tree7f61f21f8ad09f84c13884b70b154ed2e0dde937
parent24917e4c9e36ca5762ef6d1953c4df8753e4eaba (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.cc3
-rw-r--r--gtk2_ardour/gain_meter.cc15
-rw-r--r--gtk2_ardour/mixer_ui.cc4
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);
}
+