mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-27 08:57:41 +01:00
allow keybindings manager to bind arrow keys, using hack from utils.cc that was already in place
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3328 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
15d6871c02
commit
f844b2c2ab
4 changed files with 46 additions and 33 deletions
|
|
@ -184,7 +184,6 @@ Editor::update_route_visibility ()
|
|||
|
||||
for (i = rows.begin(); i != rows.end(); ++i) {
|
||||
TimeAxisView *tv = (*i)[route_display_columns.tv];
|
||||
bool v = (*i)[route_display_columns.visible];
|
||||
(*i)[route_display_columns.visible] = tv->marked_for_display ();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
#include "actions.h"
|
||||
#include "keyboard.h"
|
||||
#include "keyeditor.h"
|
||||
#include "utils.h"
|
||||
|
||||
#include "i18n.h"
|
||||
|
||||
|
|
@ -167,6 +168,8 @@ KeyEditor::on_key_release_event (GdkEventKey* ev)
|
|||
goto out;
|
||||
}
|
||||
|
||||
possibly_translate_keyval_to_make_legal_accelerator (ev->keyval);
|
||||
|
||||
bool result = AccelMap::change_entry (path,
|
||||
ev->keyval,
|
||||
(ModifierType) ev->state,
|
||||
|
|
|
|||
|
|
@ -466,39 +466,10 @@ key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey* ev)
|
|||
it does allow.
|
||||
*/
|
||||
|
||||
int fakekey = GDK_VoidSymbol;
|
||||
int ret = false;
|
||||
uint32_t fakekey = ev->keyval;
|
||||
|
||||
switch (ev->keyval) {
|
||||
case GDK_Tab:
|
||||
case GDK_ISO_Left_Tab:
|
||||
fakekey = GDK_nabla;
|
||||
break;
|
||||
|
||||
case GDK_Up:
|
||||
fakekey = GDK_uparrow;
|
||||
break;
|
||||
|
||||
case GDK_Down:
|
||||
fakekey = GDK_downarrow;
|
||||
break;
|
||||
|
||||
case GDK_Right:
|
||||
fakekey = GDK_rightarrow;
|
||||
break;
|
||||
|
||||
case GDK_Left:
|
||||
fakekey = GDK_leftarrow;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (fakekey != GDK_VoidSymbol) {
|
||||
ret = gtk_accel_groups_activate(G_OBJECT(win), fakekey, GdkModifierType(ev->state));
|
||||
|
||||
if (ret) {
|
||||
if (possibly_translate_keyval_to_make_legal_accelerator (fakekey)) {
|
||||
if (gtk_accel_groups_activate(G_OBJECT(win), fakekey, GdkModifierType(ev->state))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -724,3 +695,42 @@ reset_dpi ()
|
|||
DPIReset();//Emit Signal
|
||||
}
|
||||
|
||||
bool
|
||||
possibly_translate_keyval_to_make_legal_accelerator (uint32_t& keyval)
|
||||
{
|
||||
int fakekey = GDK_VoidSymbol;
|
||||
|
||||
switch (keyval) {
|
||||
case GDK_Tab:
|
||||
case GDK_ISO_Left_Tab:
|
||||
fakekey = GDK_nabla;
|
||||
break;
|
||||
|
||||
case GDK_Up:
|
||||
fakekey = GDK_uparrow;
|
||||
break;
|
||||
|
||||
case GDK_Down:
|
||||
fakekey = GDK_downarrow;
|
||||
break;
|
||||
|
||||
case GDK_Right:
|
||||
fakekey = GDK_rightarrow;
|
||||
break;
|
||||
|
||||
case GDK_Left:
|
||||
fakekey = GDK_leftarrow;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (fakekey != GDK_VoidSymbol) {
|
||||
keyval = fakekey;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@ bool canvas_item_visible (ArdourCanvas::Item* item);
|
|||
void set_color (Gdk::Color&, int);
|
||||
|
||||
bool key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey* ev);
|
||||
bool possibly_translate_keyval_to_make_legal_accelerator (uint32_t& keyval);
|
||||
|
||||
Glib::RefPtr<Gdk::Pixbuf> get_xpm (std::string);
|
||||
Glib::RefPtr<Gdk::Pixbuf> get_icon (const char*);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue