summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-09-04 11:49:56 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-02-22 15:31:24 -0500
commitec65e351acea329de1d09b8ce518a023001dfdab (patch)
treeed622b2e6b7435d3a7d45de22d3c734699930ece
parenta47b3c4dc56c8c5c51dd46b45328c37b740d05ab (diff)
ensure that all callers of ARDOUR_UI_UTILS::relay_key_press() provide a window
-rw-r--r--gtk2_ardour/ardour_ui.cc2
-rw-r--r--gtk2_ardour/meterbridge.cc2
-rw-r--r--gtk2_ardour/monitor_section.cc2
-rw-r--r--gtk2_ardour/panner2d.cc2
-rw-r--r--gtk2_ardour/plugin_ui.cc4
-rw-r--r--gtk2_ardour/region_layering_order_editor.cc2
-rw-r--r--gtk2_ardour/step_entry.cc18
-rw-r--r--gtk2_ardour/utils.cc8
-rw-r--r--gtk2_ardour/utils.h2
9 files changed, 18 insertions, 24 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 6782442708..76bef4e1eb 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -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;
diff --git a/gtk2_ardour/meterbridge.cc b/gtk2_ardour/meterbridge.cc
index be7fc4c47d..aa2046a948 100644
--- a/gtk2_ardour/meterbridge.cc
+++ b/gtk2_ardour/meterbridge.cc
@@ -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
diff --git a/gtk2_ardour/monitor_section.cc b/gtk2_ardour/monitor_section.cc
index 2a7593c58c..f17f9feae8 100644
--- a/gtk2_ardour/monitor_section.cc
+++ b/gtk2_ardour/monitor_section.cc
@@ -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 ();
diff --git a/gtk2_ardour/panner2d.cc b/gtk2_ardour/panner2d.cc
index f576a4ea00..4212456f75 100644
--- a/gtk2_ardour/panner2d.cc
+++ b/gtk2_ardour/panner2d.cc
@@ -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
diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc
index 833055eff7..87c0202836 100644
--- a/gtk2_ardour/plugin_ui.cc
+++ b/gtk2_ardour/plugin_ui.cc
@@ -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);
}
diff --git a/gtk2_ardour/region_layering_order_editor.cc b/gtk2_ardour/region_layering_order_editor.cc
index a8ab1d6904..8c05d2f081 100644
--- a/gtk2_ardour/region_layering_order_editor.cc
+++ b/gtk2_ardour/region_layering_order_editor.cc
@@ -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) {
diff --git a/gtk2_ardour/step_entry.cc b/gtk2_ardour/step_entry.cc
index 61b5584adb..51ccd8b649 100644
--- a/gtk2_ardour/step_entry.cc
+++ b/gtk2_ardour/step_entry.cc
@@ -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 */
diff --git a/gtk2_ardour/utils.cc b/gtk2_ardour/utils.cc
index 557804948c..589ec54794 100644
--- a/gtk2_ardour/utils.cc
+++ b/gtk2_ardour/utils.cc
@@ -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
diff --git a/gtk2_ardour/utils.h b/gtk2_ardour/utils.h
index 1c30172685..949cb8c6d5 100644
--- a/gtk2_ardour/utils.h
+++ b/gtk2_ardour/utils.h
@@ -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);