[PATCH] Normalize cursor key behavior at the Tcl level.

Marvin Humphrey marvin at rectangular.com
Wed Sep 28 04:57:13 CEST 2011


Take advantage of Tk's portability layer for normalizing cursor key values
instead of reproducing it ourselves at the C level.
---
 src/g_editor.c      |   10 ----------
 tcl/pd_bindings.tcl |    4 ++++
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/src/g_editor.c b/src/g_editor.c
index f494732..983f463 100644
--- a/src/g_editor.c
+++ b/src/g_editor.c
@@ -1699,16 +1699,6 @@ void canvas_key(t_canvas *x, t_symbol *s, int ac, t_atom *av)
         keyupsym = gensym("#keyup");
         keynamesym = gensym("#keyname");
     }
-#ifdef __APPLE__
-        if (keynum == 30)
-            keynum = 0, gotkeysym = gensym("Up");
-        else if (keynum == 31)
-            keynum = 0, gotkeysym = gensym("Down");
-        else if (keynum == 28)
-            keynum = 0, gotkeysym = gensym("Left");
-        else if (keynum == 29)
-            keynum = 0, gotkeysym = gensym("Right");
-#endif
     if (keynumsym->s_thing && down)
         pd_float(keynumsym->s_thing, (t_float)keynum);
     if (keyupsym->s_thing && !down)
diff --git a/tcl/pd_bindings.tcl b/tcl/pd_bindings.tcl
index 82ac350..cff0bbc 100644
--- a/tcl/pd_bindings.tcl
+++ b/tcl/pd_bindings.tcl
@@ -249,6 +249,10 @@ proc ::pd_bindings::sendkey {window state key iso shift} {
         "Tab"       { set iso ""; set key 9 }
         "Return"    { set iso ""; set key 10 }
         "Escape"    { set iso ""; set key 27 }
+        "Left"      { set iso ""; set key 28 }
+        "Right"     { set iso ""; set key 29 }
+        "Up"        { set iso ""; set key 30 }
+        "Down"      { set iso ""; set key 31 }
         "Space"     { set iso ""; set key 32 }
         "Delete"    { set iso ""; set key 127 }
         "KP_Delete" { set iso ""; set key 127 }
-- 
1.7.3.2






More information about the Pd-list mailing list