summaryrefslogtreecommitdiff
path: root/gtk2_ardour/virtual_keyboard_window.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-10-24 05:13:56 +0200
committerRobin Gareus <robin@gareus.org>2019-10-24 05:13:56 +0200
commitaaae93cae3a3587a4f2f05ee28e00d4e16989a3f (patch)
tree25f9846718e34ac73db3098889cbee66120c7d9c /gtk2_ardour/virtual_keyboard_window.cc
parent406bd1bf071816062ebcf7847c789b4adce9a479 (diff)
Return key-focus to piano-keyboard
Diffstat (limited to 'gtk2_ardour/virtual_keyboard_window.cc')
-rw-r--r--gtk2_ardour/virtual_keyboard_window.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/gtk2_ardour/virtual_keyboard_window.cc b/gtk2_ardour/virtual_keyboard_window.cc
index 54a3456d26..61b6759fad 100644
--- a/gtk2_ardour/virtual_keyboard_window.cc
+++ b/gtk2_ardour/virtual_keyboard_window.cc
@@ -82,6 +82,8 @@ VirtualKeyboardWindow::VirtualKeyboardWindow ()
_highlight_key_range.set_active (false);
_show_note_label.set_active (true);
+ _send_panic.set_can_focus (false);
+
_pitchbend = boost::shared_ptr<VKBDControl> (new VKBDControl ("PB", 8192, 16383));
_pitch_slider = manage (new VSliderController (&_pitch_adjustment, _pitchbend, 0, PX_SCALE (15)));
_pitch_slider_tooltip = new Gtkmm2ext::PersistentTooltip (_pitch_slider);
@@ -105,6 +107,7 @@ VirtualKeyboardWindow::VirtualKeyboardWindow ()
set_tooltip (_send_panic, "Send MIDI Panic message for current channel");
_pitch_slider_tooltip->set_tip ("Pitchbend: 8192");
+ _pitch_slider->set_can_focus (false);
/* config */
Table* cfg_tbl = manage (new Table);
@@ -361,6 +364,13 @@ VirtualKeyboardWindow::set_state (const XMLNode& root)
update_octave_key ();
}
+bool
+VirtualKeyboardWindow::on_focus_in_event (GdkEventFocus *ev)
+{
+ _pianomm->grab_focus ();
+ return ArdourWindow::on_focus_in_event(ev);
+}
+
void
VirtualKeyboardWindow::on_unmap ()
{
@@ -371,6 +381,7 @@ VirtualKeyboardWindow::on_unmap ()
bool
VirtualKeyboardWindow::on_key_press_event (GdkEventKey* ev)
{
+ _pianomm->grab_focus ();
return ARDOUR_UI_UTILS::relay_key_press (ev, this);
}
@@ -411,12 +422,14 @@ void
VirtualKeyboardWindow::update_octave_key ()
{
piano_keyboard_set_octave (_piano, _piano_octave_key.get_value_as_int ());
+ _pianomm->grab_focus ();
}
void
VirtualKeyboardWindow::update_octave_range ()
{
piano_keyboard_set_octave_range (_piano, _piano_octave_range.get_value_as_int ());
+ _pianomm->grab_focus ();
}
bool
@@ -524,6 +537,7 @@ VirtualKeyboardWindow::update_sensitivity ()
bool c = _yaxis_velocity.get_active ();
_piano_min_velocity.set_sensitive (c);
_piano_max_velocity.set_sensitive (c);
+ _pianomm->grab_focus ();
}
void