ensure that all callers of ARDOUR_UI_UTILS::relay_key_press() provide a window
This commit is contained in:
parent
a47b3c4dc5
commit
ec65e351ac
|
@ -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));
|
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;
|
window = event_window;
|
||||||
|
|
||||||
|
|
|
@ -256,7 +256,7 @@ Meterbridge::on_key_press_event (GdkEventKey* ev)
|
||||||
if (gtk_window_propagate_key_event (GTK_WINDOW(gobj()), ev)) {
|
if (gtk_window_propagate_key_event (GTK_WINDOW(gobj()), ev)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return relay_key_press (ev);
|
return relay_key_press (ev, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
|
|
@ -467,7 +467,7 @@ MonitorSection::MonitorSection (Session* s)
|
||||||
_tearoff->tearoff_window().set_type_hint (Gdk::WINDOW_TYPE_HINT_NORMAL);
|
_tearoff->tearoff_window().set_type_hint (Gdk::WINDOW_TYPE_HINT_NORMAL);
|
||||||
}
|
}
|
||||||
_tearoff->tearoff_window().set_title (X_("Monitor"));
|
_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_output_display ();
|
||||||
update_processor_box ();
|
update_processor_box ();
|
||||||
|
|
|
@ -1013,7 +1013,7 @@ Panner2dWindow::set_width ()
|
||||||
bool
|
bool
|
||||||
Panner2dWindow::on_key_press_event (GdkEventKey* event)
|
Panner2dWindow::on_key_press_event (GdkEventKey* event)
|
||||||
{
|
{
|
||||||
return relay_key_press (event, 0);
|
return relay_key_press (event, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
|
|
@ -369,12 +369,12 @@ PluginUIWindow::on_key_press_event (GdkEventKey* event)
|
||||||
if (_pluginui) {
|
if (_pluginui) {
|
||||||
_pluginui->grab_focus();
|
_pluginui->grab_focus();
|
||||||
if (_pluginui->non_gtk_gui()) {
|
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
|
to be handled in, not this one, because there are
|
||||||
no widgets in this window that we want to have
|
no widgets in this window that we want to have
|
||||||
key focus.
|
key focus.
|
||||||
*/
|
*/
|
||||||
return relay_key_press (event, 0);
|
return relay_key_press (event, &ARDOUR_UI::instance()->main_window());
|
||||||
} else {
|
} else {
|
||||||
return relay_key_press (event, this);
|
return relay_key_press (event, this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -222,7 +222,7 @@ RegionLayeringOrderEditor::on_key_press_event (GdkEventKey* ev)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!handled) {
|
if (!handled) {
|
||||||
handled = relay_key_press (ev, 0);
|
handled = relay_key_press (ev, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!handled) {
|
if (!handled) {
|
||||||
|
|
|
@ -496,26 +496,18 @@ StepEntry::on_key_press_event (GdkEventKey* ev)
|
||||||
forward to main window
|
forward to main window
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!gtk_window_propagate_key_event (GTK_WINDOW(gobj()), ev)) {
|
if (gtk_window_propagate_key_event (GTK_WINDOW(gobj()), ev)) {
|
||||||
KeyboardKey k (ev->state, ev->keyval);
|
return true;
|
||||||
|
|
||||||
if (bindings->activate (k, Bindings::Press)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return relay_key_press (ev);
|
return relay_key_press (ev, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
StepEntry::on_key_release_event (GdkEventKey* ev)
|
StepEntry::on_key_release_event (GdkEventKey* ev)
|
||||||
{
|
{
|
||||||
if (!gtk_window_propagate_key_event (GTK_WINDOW(gobj()), ev)) {
|
if (gtk_window_propagate_key_event (GTK_WINDOW(gobj()), ev)) {
|
||||||
KeyboardKey k (ev->state, ev->keyval);
|
return true;
|
||||||
|
|
||||||
if (bindings->activate (k, Bindings::Release)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* don't forward releases */
|
/* don't forward releases */
|
||||||
|
|
|
@ -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 (!gdk_keymap_get_entries_for_keyval(keymap, keyval, &keymapkey, &n_keys)) return false;
|
||||||
if (n_keys !=1) { g_free(keymapkey); return false;}
|
if (n_keys !=1) { g_free(keymapkey); return false;}
|
||||||
|
|
||||||
|
Gtk::Window& main_window (ARDOUR_UI::instance()->main_window());
|
||||||
|
|
||||||
GdkEventKey ev;
|
GdkEventKey ev;
|
||||||
ev.type = GDK_KEY_PRESS;
|
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.send_event = FALSE;
|
||||||
ev.time = 0;
|
ev.time = 0;
|
||||||
ev.state = 0;
|
ev.state = 0;
|
||||||
|
@ -324,9 +326,9 @@ ARDOUR_UI_UTILS::emulate_key_event (unsigned int keyval)
|
||||||
ev.group = keymapkey[0].group;
|
ev.group = keymapkey[0].group;
|
||||||
g_free(keymapkey);
|
g_free(keymapkey);
|
||||||
|
|
||||||
relay_key_press(&ev);
|
relay_key_press (&ev, &main_window);
|
||||||
ev.type = GDK_KEY_RELEASE;
|
ev.type = GDK_KEY_RELEASE;
|
||||||
return relay_key_press(&ev);
|
return relay_key_press(&ev, &main_window);
|
||||||
}
|
}
|
||||||
|
|
||||||
string
|
string
|
||||||
|
|
|
@ -67,7 +67,7 @@ void set_color_from_rgba (Gdk::Color&, uint32_t);
|
||||||
uint32_t gdk_color_to_rgba (Gdk::Color const&);
|
uint32_t gdk_color_to_rgba (Gdk::Color const&);
|
||||||
uint32_t contrasting_text_color (uint32_t c);
|
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 key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey* ev);
|
||||||
bool emulate_key_event (unsigned int);
|
bool emulate_key_event (unsigned int);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user