ensure that all callers of ARDOUR_UI_UTILS::relay_key_press() provide a window

This commit is contained in:
Paul Davis 2015-09-04 11:49:56 -04:00
parent a47b3c4dc5
commit ec65e351ac
9 changed files with 18 additions and 24 deletions

View File

@ -5185,7 +5185,7 @@ ARDOUR_UI::key_event_handler (GdkEventKey* ev, Gtk::Window* event_window)
DEBUG_TRACE (DEBUG::Accelerators, string_compose ("main window key event, bindings = %1, global = %2\n", bindings, &global_bindings));
} else if (event_window != 0) {
} else {
window = event_window;

View File

@ -256,7 +256,7 @@ Meterbridge::on_key_press_event (GdkEventKey* ev)
if (gtk_window_propagate_key_event (GTK_WINDOW(gobj()), ev)) {
return true;
}
return relay_key_press (ev);
return relay_key_press (ev, this);
}
bool

View File

@ -467,7 +467,7 @@ MonitorSection::MonitorSection (Session* s)
_tearoff->tearoff_window().set_type_hint (Gdk::WINDOW_TYPE_HINT_NORMAL);
}
_tearoff->tearoff_window().set_title (X_("Monitor"));
_tearoff->tearoff_window().signal_key_press_event().connect (sigc::bind (sigc::ptr_fun (relay_key_press), (Gtk::Window*) 0), false);
_tearoff->tearoff_window().signal_key_press_event().connect (sigc::bind (sigc::ptr_fun (relay_key_press), (Gtk::Window*) &_tearoff->tearoff_window()), false);
update_output_display ();
update_processor_box ();

View File

@ -1013,7 +1013,7 @@ Panner2dWindow::set_width ()
bool
Panner2dWindow::on_key_press_event (GdkEventKey* event)
{
return relay_key_press (event, 0);
return relay_key_press (event, this);
}
bool

View File

@ -369,12 +369,12 @@ PluginUIWindow::on_key_press_event (GdkEventKey* event)
if (_pluginui) {
_pluginui->grab_focus();
if (_pluginui->non_gtk_gui()) {
/* pass editor window as the window for the event
/* pass main window as the window for the event
to be handled in, not this one, because there are
no widgets in this window that we want to have
key focus.
*/
return relay_key_press (event, 0);
return relay_key_press (event, &ARDOUR_UI::instance()->main_window());
} else {
return relay_key_press (event, this);
}

View File

@ -222,7 +222,7 @@ RegionLayeringOrderEditor::on_key_press_event (GdkEventKey* ev)
}
if (!handled) {
handled = relay_key_press (ev, 0);
handled = relay_key_press (ev, this);
}
if (!handled) {

View File

@ -496,26 +496,18 @@ StepEntry::on_key_press_event (GdkEventKey* ev)
forward to main window
*/
if (!gtk_window_propagate_key_event (GTK_WINDOW(gobj()), ev)) {
KeyboardKey k (ev->state, ev->keyval);
if (bindings->activate (k, Bindings::Press)) {
return true;
}
if (gtk_window_propagate_key_event (GTK_WINDOW(gobj()), ev)) {
return true;
}
return relay_key_press (ev);
return relay_key_press (ev, this);
}
bool
StepEntry::on_key_release_event (GdkEventKey* ev)
{
if (!gtk_window_propagate_key_event (GTK_WINDOW(gobj()), ev)) {
KeyboardKey k (ev->state, ev->keyval);
if (bindings->activate (k, Bindings::Release)) {
return true;
}
if (gtk_window_propagate_key_event (GTK_WINDOW(gobj()), ev)) {
return true;
}
/* don't forward releases */

View File

@ -311,9 +311,11 @@ ARDOUR_UI_UTILS::emulate_key_event (unsigned int keyval)
if (!gdk_keymap_get_entries_for_keyval(keymap, keyval, &keymapkey, &n_keys)) return false;
if (n_keys !=1) { g_free(keymapkey); return false;}
Gtk::Window& main_window (ARDOUR_UI::instance()->main_window());
GdkEventKey ev;
ev.type = GDK_KEY_PRESS;
ev.window = ARDOUR_UI::instance()->main_window().get_window()->gobj();
ev.window = main_window.get_window()->gobj();
ev.send_event = FALSE;
ev.time = 0;
ev.state = 0;
@ -324,9 +326,9 @@ ARDOUR_UI_UTILS::emulate_key_event (unsigned int keyval)
ev.group = keymapkey[0].group;
g_free(keymapkey);
relay_key_press(&ev);
relay_key_press (&ev, &main_window);
ev.type = GDK_KEY_RELEASE;
return relay_key_press(&ev);
return relay_key_press(&ev, &main_window);
}
string

View File

@ -67,7 +67,7 @@ void set_color_from_rgba (Gdk::Color&, uint32_t);
uint32_t gdk_color_to_rgba (Gdk::Color const&);
uint32_t contrasting_text_color (uint32_t c);
bool relay_key_press (GdkEventKey* ev, Gtk::Window* win = 0);
bool relay_key_press (GdkEventKey* ev, Gtk::Window* win);
bool key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey* ev);
bool emulate_key_event (unsigned int);