summaryrefslogtreecommitdiff
path: root/gtk2_ardour/utils.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-07-07 22:12:21 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-02-22 15:31:21 -0500
commit9010262bed21611f2db652d16f63e4af4380259d (patch)
treeb112724d2b26eb3b66b5e1c5571dbf6c5509cc24 /gtk2_ardour/utils.cc
parent85eee3b09dd53f6f5d1803f2b585270ab535e16f (diff)
first compilable version of tabbable design.
I would have loved to split this apart, but there are just so many interrelated changes, it makes little sense and would be a huge effort that would break future git bisect use because so many intermediate commits would not compile
Diffstat (limited to 'gtk2_ardour/utils.cc')
-rw-r--r--gtk2_ardour/utils.cc33
1 files changed, 11 insertions, 22 deletions
diff --git a/gtk2_ardour/utils.cc b/gtk2_ardour/utils.cc
index 60498b9fac..3c7945993a 100644
--- a/gtk2_ardour/utils.cc
+++ b/gtk2_ardour/utils.cc
@@ -297,39 +297,28 @@ ARDOUR_UI_UTILS::gdk_color_to_rgba (Gdk::Color const& c)
bool
ARDOUR_UI_UTILS::relay_key_press (GdkEventKey* ev, Gtk::Window* win)
{
-
- if (!key_press_focus_accelerator_handler (*win, ev)) {
- if (!PublicEditor::_instance) {
- /* early key press in pre-main-window-dialogs, no editor yet */
- return false;
- }
- PublicEditor& ed (PublicEditor::instance());
- return ed.on_key_press_event(ev);
- } else {
- return true;
+ switch (ev->type) {
+ case GDK_KEY_PRESS:
+ return ARDOUR_UI::instance()->key_press_handler (ev, win);
+ default:
+ return ARDOUR_UI::instance()->key_release_handler (ev, win);
}
}
bool
-ARDOUR_UI_UTILS::forward_key_press (GdkEventKey* ev)
+ARDOUR_UI_UTILS::emulate_key_event (unsigned int keyval)
{
- return PublicEditor::instance().on_key_press_event(ev);
-}
-
-bool
-ARDOUR_UI_UTILS::emulate_key_event (Gtk::Widget* w, unsigned int keyval)
-{
- GdkDisplay *display = gtk_widget_get_display (GTK_WIDGET(w->gobj()));
+ GdkDisplay *display = gtk_widget_get_display (GTK_WIDGET(ARDOUR_UI::instance()->main_window().gobj()));
GdkKeymap *keymap = gdk_keymap_get_for_display (display);
GdkKeymapKey *keymapkey = NULL;
gint n_keys;
-
+
if (!gdk_keymap_get_entries_for_keyval(keymap, keyval, &keymapkey, &n_keys)) return false;
if (n_keys !=1) { g_free(keymapkey); return false;}
GdkEventKey ev;
ev.type = GDK_KEY_PRESS;
- ev.window = gtk_widget_get_window(GTK_WIDGET(w->gobj()));
+ ev.window = ARDOUR_UI::instance()->main_window().get_window()->gobj();
ev.send_event = FALSE;
ev.time = 0;
ev.state = 0;
@@ -340,9 +329,9 @@ ARDOUR_UI_UTILS::emulate_key_event (Gtk::Widget* w, unsigned int keyval)
ev.group = keymapkey[0].group;
g_free(keymapkey);
- forward_key_press(&ev);
+ relay_key_press(&ev);
ev.type = GDK_KEY_RELEASE;
- return forward_key_press(&ev);
+ return relay_key_press(&ev);
}
static string