in key editor, attach key press/release handlers before other handlers so that normal treeview navigation keys (backspace, up, down etc.) can still be bound
This commit is contained in:
parent
285b76dc08
commit
694c7254e1
@ -151,8 +151,12 @@ KeyEditor::page_change (GtkNotebookPage*, guint)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
KeyEditor::Tab::on_key_press_event (GdkEventKey* ev)
|
KeyEditor::Tab::key_press_event (GdkEventKey* ev)
|
||||||
{
|
{
|
||||||
|
if (view.get_selection()->count_selected_rows() != 1) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!ev->is_modifier) {
|
if (!ev->is_modifier) {
|
||||||
last_keyval = ev->keyval;
|
last_keyval = ev->keyval;
|
||||||
}
|
}
|
||||||
@ -166,8 +170,12 @@ KeyEditor::Tab::on_key_press_event (GdkEventKey* ev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
KeyEditor::Tab::on_key_release_event (GdkEventKey* ev)
|
KeyEditor::Tab::key_release_event (GdkEventKey* ev)
|
||||||
{
|
{
|
||||||
|
if (view.get_selection()->count_selected_rows() != 1) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (last_keyval == 0) {
|
if (last_keyval == 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -205,6 +213,8 @@ KeyEditor::Tab::Tab (KeyEditor& ke, string const & str, Bindings* b)
|
|||||||
view.set_name (X_("KeyEditorTree"));
|
view.set_name (X_("KeyEditorTree"));
|
||||||
|
|
||||||
view.signal_cursor_changed().connect (sigc::mem_fun (*this, &Tab::action_selected));
|
view.signal_cursor_changed().connect (sigc::mem_fun (*this, &Tab::action_selected));
|
||||||
|
view.signal_key_press_event().connect (sigc::mem_fun (*this, &Tab::key_press_event), false);
|
||||||
|
view.signal_key_release_event().connect (sigc::mem_fun (*this, &Tab::key_release_event), false);
|
||||||
|
|
||||||
view.get_column(0)->set_sort_column (columns.name);
|
view.get_column(0)->set_sort_column (columns.name);
|
||||||
view.get_column(1)->set_sort_column (columns.binding);
|
view.get_column(1)->set_sort_column (columns.binding);
|
||||||
@ -479,4 +489,3 @@ KeyEditor::search_string_updated (const std::string& filter)
|
|||||||
filter_string = boost::to_lower_copy(filter);
|
filter_string = boost::to_lower_copy(filter);
|
||||||
current_tab ()->filter->refilter ();
|
current_tab ()->filter->refilter ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,8 +89,8 @@ class KeyEditor : public ArdourWindow
|
|||||||
guint last_keyval;
|
guint last_keyval;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool on_key_press_event (GdkEventKey*);
|
bool key_press_event (GdkEventKey*);
|
||||||
bool on_key_release_event (GdkEventKey*);
|
bool key_release_event (GdkEventKey*);
|
||||||
Gtk::TreeModel::iterator find_action_path (Gtk::TreeModel::const_iterator begin, Gtk::TreeModel::const_iterator end, const std::string& path) const;
|
Gtk::TreeModel::iterator find_action_path (Gtk::TreeModel::const_iterator begin, Gtk::TreeModel::const_iterator end, const std::string& path) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user