diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-11-12 05:42:58 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-11-12 05:42:58 +0000 |
commit | 94f413a88fce91ef4dc9c698756fe1b5f76c428e (patch) | |
tree | ee93fa1cc9e2864cba24c1232aece5d4425c6409 /gtk2_ardour/region_layering_order_editor.cc | |
parent | 72d9f9df468981dc06536a51db8f92b79d429c58 (diff) |
try to get activation via kbd working again in region layering dialog (incomplete)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@6070 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/region_layering_order_editor.cc')
-rw-r--r-- | gtk2_ardour/region_layering_order_editor.cc | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/gtk2_ardour/region_layering_order_editor.cc b/gtk2_ardour/region_layering_order_editor.cc index 84ef12dd9d..bd846a1c19 100644 --- a/gtk2_ardour/region_layering_order_editor.cc +++ b/gtk2_ardour/region_layering_order_editor.cc @@ -2,9 +2,10 @@ #include <gtkmm/stock.h> #include <ardour/region.h> -#include "region_layering_order_editor.h" #include "i18n.h" +#include "keyboard.h" #include "public_editor.h" +#include "region_layering_order_editor.h" #include "utils.h" using namespace Gtk; @@ -54,7 +55,7 @@ RegionLayeringOrderEditor::RegionLayeringOrderEditor (PublicEditor& pe) table->set_name ("RegionLayeringOrderTable"); layering_order_display.set_name ("RegionLayeringOrderDisplay"); - layering_order_display.get_selection ()->signal_changed ().connect (mem_fun (*this, &RegionLayeringOrderEditor::row_clicked)); + layering_order_display.signal_row_activated ().connect (mem_fun (*this, &RegionLayeringOrderEditor::row_activated)); layering_order_display.grab_focus (); @@ -67,13 +68,15 @@ RegionLayeringOrderEditor::~RegionLayeringOrderEditor () } void -RegionLayeringOrderEditor::row_clicked () +RegionLayeringOrderEditor::row_activated (const TreeModel::Path& path, TreeViewColumn* column) { + cerr << "Row activated\n"; + if (in_row_change) { return; } - TreeModel::iterator iter = layering_order_display.get_selection()->get_selected(); + TreeModel::iterator iter = layering_order_model->get_iter (path); if (iter) { TreeModel::Row row = *iter; @@ -148,7 +151,19 @@ RegionLayeringOrderEditor::set_context (const string& a_name, Session* s, const bool RegionLayeringOrderEditor::on_key_press_event (GdkEventKey* ev) { + if (ev->keyval == GDK_Return) { + cerr << "grab magic key\n"; + Keyboard::magic_widget_grab_focus (); + } + bool result = key_press_focus_accelerator_handler (the_editor, ev); + cerr << "event handled: " << result << endl; + + if (ev->keyval == GDK_Return) { + cerr << "drop magic focus\n"; + Keyboard::magic_widget_drop_focus (); + } + if (!result) { result = ArdourDialog::on_key_press_event (ev); } |