}
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) {
last_keyval = ev->keyval;
}
}
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) {
return false;
}
{
data_model = TreeStore::create(columns);
populate ();
-
+
filter = TreeModelFilter::create(data_model);
filter->set_visible_func (sigc::mem_fun (*this, &Tab::visible_func));
view.set_name (X_("KeyEditorTree"));
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(1)->set_sort_column (columns.binding);
filter_string = boost::to_lower_copy(filter);
current_tab ()->filter->refilter ();
}
-
guint last_keyval;
protected:
- bool on_key_press_event (GdkEventKey*);
- bool on_key_release_event (GdkEventKey*);
+ bool key_press_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;
};