diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2015-07-07 22:12:21 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-02-22 15:31:21 -0500 |
commit | 9010262bed21611f2db652d16f63e4af4380259d (patch) | |
tree | b112724d2b26eb3b66b5e1c5571dbf6c5509cc24 /gtk2_ardour/utils.cc | |
parent | 85eee3b09dd53f6f5d1803f2b585270ab535e16f (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.cc | 33 |
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 |