summaryrefslogtreecommitdiff
path: root/gtk2_ardour/region_layering_order_editor.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-11-12 05:42:58 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-11-12 05:42:58 +0000
commit94f413a88fce91ef4dc9c698756fe1b5f76c428e (patch)
treeee93fa1cc9e2864cba24c1232aece5d4425c6409 /gtk2_ardour/region_layering_order_editor.cc
parent72d9f9df468981dc06536a51db8f92b79d429c58 (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.cc23
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);
}