whoops, there were a few '>=' signs where there should have been '==' signs.
diff -ur gtetrinet-0.7.11/src/config.c gtetrinet-0.7.11-new/src/config.c
--- gtetrinet-0.7.11/src/config.c       2006-11-04 01:49:49.000000000 +1300
+++ gtetrinet-0.7.11-new/src/config.c   2009-12-31 18:29:29.000000000 +1300
@@ -62,6 +62,7 @@
     GDK_Right,
     GDK_Left,
     GDK_Up,
+    GDK_x,
     GDK_Control_R,
     GDK_Down,
     GDK_space,
@@ -72,7 +73,19 @@
     GDK_3,
     GDK_4,
     GDK_5,
-    GDK_6
+    GDK_6,
+    GDK_y,
+    GDK_h,
+    GDK_n,
+    GDK_u,
+    GDK_j,
+    GDK_m,
+    GDK_i,
+    GDK_k,
+    GDK_comma,
+    GDK_o,
+    GDK_l,
+    GDK_period,
 };
 
 guint keys[K_NUM];
@@ -268,6 +281,15 @@
     else
       keys[K_ROTRIGHT] = defaultkeys[K_ROTRIGHT];
 
+    p = gconf_client_get_string (gconf_client, 
"/apps/gtetrinet/keys/rotate_up", NULL);
+    if (p)
+    {
+      keys[K_ROTUP] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+      g_free (p);
+    }
+    else
+      keys[K_ROTUP] = defaultkeys[K_ROTUP];
+
     p = gconf_client_get_string (gconf_client, 
"/apps/gtetrinet/keys/rotate_left", NULL);
     if (p)
     {
@@ -368,6 +390,114 @@
       keys[K_SPECIAL6] = defaultkeys[K_SPECIAL6];
 
 
+    p = gconf_client_get_string (gconf_client, 
"/apps/gtetrinet/keys/leftwall0", NULL);
+    if (p)
+    {
+      keys[K_L0] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+      g_free (p);
+    }
+    else
+      keys[K_L0] = defaultkeys[K_L0];
+
+    p = gconf_client_get_string (gconf_client, 
"/apps/gtetrinet/keys/leftwall1", NULL);
+    if (p)
+    {
+      keys[K_L1] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+      g_free (p);
+    }
+    else
+      keys[K_L1] = defaultkeys[K_L1];
+
+    p = gconf_client_get_string (gconf_client, 
"/apps/gtetrinet/keys/leftwall2", NULL);
+    if (p)
+    {
+      keys[K_L2] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+      g_free (p);
+    }
+    else
+      keys[K_L2] = defaultkeys[K_L2];
+
+    p = gconf_client_get_string (gconf_client, 
"/apps/gtetrinet/keys/leftwall3", NULL);
+    if (p)
+    {
+      keys[K_L3] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+      g_free (p);
+    }
+    else
+      keys[K_L3] = defaultkeys[K_L3];
+
+    p = gconf_client_get_string (gconf_client, 
"/apps/gtetrinet/keys/leftwall4", NULL);
+    if (p)
+    {
+      keys[K_L4] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+      g_free (p);
+    }
+    else
+      keys[K_L4] = defaultkeys[K_L4];
+
+    p = gconf_client_get_string (gconf_client, 
"/apps/gtetrinet/keys/leftwall5", NULL);
+    if (p)
+    {
+      keys[K_L5] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+      g_free (p);
+    }
+    else
+      keys[K_L5] = defaultkeys[K_L5];
+
+    p = gconf_client_get_string (gconf_client, 
"/apps/gtetrinet/keys/rightwall0", NULL);
+    if (p)
+    {
+      keys[K_R0] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+      g_free (p);
+    }
+    else
+      keys[K_R0] = defaultkeys[K_R0];
+
+    p = gconf_client_get_string (gconf_client, 
"/apps/gtetrinet/keys/rightwall1", NULL);
+    if (p)
+    {
+      keys[K_R1] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+      g_free (p);
+    }
+    else
+      keys[K_R1] = defaultkeys[K_R1];
+
+    p = gconf_client_get_string (gconf_client, 
"/apps/gtetrinet/keys/rightwall2", NULL);
+    if (p)
+    {
+      keys[K_R2] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+      g_free (p);
+    }
+    else
+      keys[K_R2] = defaultkeys[K_R2];
+
+    p = gconf_client_get_string (gconf_client, 
"/apps/gtetrinet/keys/rightwall3", NULL);
+    if (p)
+    {
+      keys[K_R3] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+      g_free (p);
+    }
+    else
+      keys[K_R3] = defaultkeys[K_R3];
+
+    p = gconf_client_get_string (gconf_client, 
"/apps/gtetrinet/keys/rightwall4", NULL);
+    if (p)
+    {
+      keys[K_R4] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+      g_free (p);
+    }
+    else
+      keys[K_R4] = defaultkeys[K_R4];
+
+    p = gconf_client_get_string (gconf_client, 
"/apps/gtetrinet/keys/rightwall5", NULL);
+    if (p)
+    {
+      keys[K_R5] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+      g_free (p);
+    }
+    else
+      keys[K_R5] = defaultkeys[K_R5];
+
     /* Get the timestamp option. */
     timestampsenable = gconf_client_get_bool (gconf_client, 
"/apps/gtetrinet/partyline/enable_timestamps", NULL);
 
@@ -517,6 +647,18 @@
 }
 
 void
+keys_rotate_up_changed (GConfClient *client,
+                        guint cnxn_id,
+                        GConfEntry *entry)
+{
+
+  client = client;     /* Suppress compile warnings */
+  cnxn_id = cnxn_id;   /* Suppress compile warnings */
+
+  keys[K_ROTUP] = gdk_keyval_to_lower (gdk_keyval_from_name 
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
 keys_rotate_right_changed (GConfClient *client,
                            guint cnxn_id,
                            GConfEntry *entry)
@@ -625,6 +767,150 @@
 }
 
 void
+keys_leftwall0_changed (GConfClient *client,
+                       guint cnxn_id,
+                       GConfEntry *entry)
+{
+
+  client = client;
+  cnxn_id = cnxn_id;
+
+  keys[K_L0] = gdk_keyval_to_lower (gdk_keyval_from_name 
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_leftwall1_changed (GConfClient *client,
+                       guint cnxn_id,
+                       GConfEntry *entry)
+{
+
+  client = client;
+  cnxn_id = cnxn_id;
+
+  keys[K_L1] = gdk_keyval_to_lower (gdk_keyval_from_name 
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_leftwall2_changed (GConfClient *client,
+                       guint cnxn_id,
+                       GConfEntry *entry)
+{
+
+  client = client;
+  cnxn_id = cnxn_id;
+
+  keys[K_L2] = gdk_keyval_to_lower (gdk_keyval_from_name 
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_leftwall3_changed (GConfClient *client,
+                       guint cnxn_id,
+                       GConfEntry *entry)
+{
+
+  client = client;
+  cnxn_id = cnxn_id;
+
+  keys[K_L3] = gdk_keyval_to_lower (gdk_keyval_from_name 
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_leftwall4_changed (GConfClient *client,
+                       guint cnxn_id,
+                       GConfEntry *entry)
+{
+
+  client = client;
+  cnxn_id = cnxn_id;
+
+  keys[K_L4] = gdk_keyval_to_lower (gdk_keyval_from_name 
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_leftwall5_changed (GConfClient *client,
+                       guint cnxn_id,
+                       GConfEntry *entry)
+{
+
+  client = client;
+  cnxn_id = cnxn_id;
+
+  keys[K_L5] = gdk_keyval_to_lower (gdk_keyval_from_name 
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_rightwall0_changed (GConfClient *client,
+                       guint cnxn_id,
+                       GConfEntry *entry)
+{
+
+  client = client;
+  cnxn_id = cnxn_id;
+
+  keys[K_R0] = gdk_keyval_to_lower (gdk_keyval_from_name 
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_rightwall1_changed (GConfClient *client,
+                       guint cnxn_id,
+                       GConfEntry *entry)
+{
+
+  client = client;
+  cnxn_id = cnxn_id;
+
+  keys[K_R1] = gdk_keyval_to_lower (gdk_keyval_from_name 
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_rightwall2_changed (GConfClient *client,
+                       guint cnxn_id,
+                       GConfEntry *entry)
+{
+
+  client = client;
+  cnxn_id = cnxn_id;
+
+  keys[K_R2] = gdk_keyval_to_lower (gdk_keyval_from_name 
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_rightwall3_changed (GConfClient *client,
+                       guint cnxn_id,
+                       GConfEntry *entry)
+{
+
+  client = client;
+  cnxn_id = cnxn_id;
+
+  keys[K_R3] = gdk_keyval_to_lower (gdk_keyval_from_name 
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_rightwall4_changed (GConfClient *client,
+                       guint cnxn_id,
+                       GConfEntry *entry)
+{
+
+  client = client;
+  cnxn_id = cnxn_id;
+
+  keys[K_R4] = gdk_keyval_to_lower (gdk_keyval_from_name 
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_rightwall5_changed (GConfClient *client,
+                       guint cnxn_id,
+                       GConfEntry *entry)
+{
+
+  client = client;
+  cnxn_id = cnxn_id;
+
+  keys[K_R5] = gdk_keyval_to_lower (gdk_keyval_from_name 
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
 partyline_enable_timestamps_changed (GConfClient *client,
                                      guint cnxn_id,
                                      GConfEntry *entry)
diff -ur gtetrinet-0.7.11/src/config.h gtetrinet-0.7.11-new/src/config.h
--- gtetrinet-0.7.11/src/config.h       2005-03-19 10:19:17.000000000 +1300
+++ gtetrinet-0.7.11-new/src/config.h   2009-12-31 18:27:40.000000000 +1300
@@ -57,6 +57,11 @@
                           GConfEntry *entry);
 
 void
+keys_rotate_up_changed (GConfClient *client,
+                          guint cnxn_id,
+                          GConfEntry *entry);
+
+void
 keys_rotate_right_changed (GConfClient *client,
                            guint cnxn_id,
                            GConfEntry *entry);
@@ -102,6 +107,66 @@
                    GConfEntry *entry);
 
 void
+keys_leftwall0_changed (GConfClient *client,
+                   guint cnxn_id,
+                   GConfEntry *entry);
+
+void
+keys_leftwall1_changed (GConfClient *client,
+                   guint cnxn_id,
+                   GConfEntry *entry);
+
+void
+keys_leftwall2_changed (GConfClient *client,
+                   guint cnxn_id,
+                   GConfEntry *entry);
+
+void
+keys_leftwall3_changed (GConfClient *client,
+                   guint cnxn_id,
+                   GConfEntry *entry);
+
+void
+keys_leftwall4_changed (GConfClient *client,
+                   guint cnxn_id,
+                   GConfEntry *entry);
+
+void
+keys_leftwall5_changed (GConfClient *client,
+                   guint cnxn_id,
+                   GConfEntry *entry);
+
+void
+keys_rightwall0_changed (GConfClient *client,
+                   guint cnxn_id,
+                   GConfEntry *entry);
+
+void
+keys_rightwall1_changed (GConfClient *client,
+                   guint cnxn_id,
+                   GConfEntry *entry);
+
+void
+keys_rightwall2_changed (GConfClient *client,
+                   guint cnxn_id,
+                   GConfEntry *entry);
+
+void
+keys_rightwall3_changed (GConfClient *client,
+                   guint cnxn_id,
+                   GConfEntry *entry);
+
+void
+keys_rightwall4_changed (GConfClient *client,
+                   guint cnxn_id,
+                   GConfEntry *entry);
+
+void
+keys_rightwall5_changed (GConfClient *client,
+                   guint cnxn_id,
+                   GConfEntry *entry);
+
+void
 partyline_enable_timestamps_changed (GConfClient *client,
                                      guint cnxn_id,
                                      GConfEntry *entry);
@@ -118,8 +183,9 @@
 typedef enum
 {
   K_RIGHT, 
-  K_LEFT, 
+  K_LEFT,
   K_ROTRIGHT, 
+  K_ROTUP,
   K_ROTLEFT,
   K_DOWN,
   K_DROP,
@@ -131,6 +197,18 @@
   K_SPECIAL4,
   K_SPECIAL5,
   K_SPECIAL6,
+  K_L0,
+  K_L1,
+  K_L2,
+  K_L3,
+  K_L4,
+  K_L5,
+  K_R5,
+  K_R4,
+  K_R3,
+  K_R2,
+  K_R1,
+  K_R0,
 /* not a key but the number of configurable keys */
   K_NUM
 } GTetrinetKeys;
diff -ur gtetrinet-0.7.11/src/dialogs.c gtetrinet-0.7.11-new/src/dialogs.c
--- gtetrinet-0.7.11/src/dialogs.c      2006-11-04 01:49:49.000000000 +1300
+++ gtetrinet-0.7.11-new/src/dialogs.c  2009-12-31 18:02:02.000000000 +1300
@@ -538,6 +538,7 @@
     actions[K_LEFT]     = _("Move left");
     actions[K_DOWN]     = _("Move down");
     actions[K_ROTRIGHT] = _("Rotate right");
+    actions[K_ROTUP] = _("Rotate 180");
     actions[K_ROTLEFT]  = _("Rotate left");
     actions[K_DROP]     = _("Drop piece");
     actions[K_DISCARD]  = _("Discard special");
@@ -548,11 +549,24 @@
     actions[K_SPECIAL4] = _("Special to field 4");
     actions[K_SPECIAL5] = _("Special to field 5");
     actions[K_SPECIAL6] = _("Special to field 6");
+    actions[K_L0] = _("Move to left wall");
+    actions[K_L1] = _("Move 1 away from left wall");
+    actions[K_L2] = _("Move 2 away from left wall");
+    actions[K_L3] = _("Move 3 away from left wall");
+    actions[K_L4] = _("Move 4 away from left wall");
+    actions[K_L5] = _("Move 5 away from left wall");
+    actions[K_R0] = _("Move to right wall");
+    actions[K_R1] = _("Move 1 away from right wall");
+    actions[K_R2] = _("Move 2 away from right wall");
+    actions[K_R3] = _("Move 3 away from right wall");
+    actions[K_R4] = _("Move 4 away from right wall");
+    actions[K_R5] = _("Move 5 away from right wall");
   
     gconf_keys[K_RIGHT]    = g_strdup ("/apps/gtetrinet/keys/right");
     gconf_keys[K_LEFT]     = g_strdup ("/apps/gtetrinet/keys/left");
     gconf_keys[K_DOWN]     = g_strdup ("/apps/gtetrinet/keys/down");
     gconf_keys[K_ROTRIGHT] = g_strdup ("/apps/gtetrinet/keys/rotate_right");
+    gconf_keys[K_ROTUP] = g_strdup ("/apps/gtetrinet/keys/rotate_up");
     gconf_keys[K_ROTLEFT]  = g_strdup ("/apps/gtetrinet/keys/rotate_left");
     gconf_keys[K_DROP]     = g_strdup ("/apps/gtetrinet/keys/drop");
     gconf_keys[K_DISCARD]  = g_strdup ("/apps/gtetrinet/keys/discard");
@@ -563,6 +577,18 @@
     gconf_keys[K_SPECIAL4] = g_strdup ("/apps/gtetrinet/keys/special4");
     gconf_keys[K_SPECIAL5] = g_strdup ("/apps/gtetrinet/keys/special5");
     gconf_keys[K_SPECIAL6] = g_strdup ("/apps/gtetrinet/keys/special6");
+    gconf_keys[K_L0] = g_strdup ("/apps/gtetrinet/keys/leftwall0");
+    gconf_keys[K_L1] = g_strdup ("/apps/gtetrinet/keys/leftwall1");
+    gconf_keys[K_L2] = g_strdup ("/apps/gtetrinet/keys/leftwall2");
+    gconf_keys[K_L3] = g_strdup ("/apps/gtetrinet/keys/leftwall3");
+    gconf_keys[K_L4] = g_strdup ("/apps/gtetrinet/keys/leftwall4");
+    gconf_keys[K_L5] = g_strdup ("/apps/gtetrinet/keys/leftwall5");
+    gconf_keys[K_R0] = g_strdup ("/apps/gtetrinet/keys/rightwall0");
+    gconf_keys[K_R1] = g_strdup ("/apps/gtetrinet/keys/rightwall1");
+    gconf_keys[K_R2] = g_strdup ("/apps/gtetrinet/keys/rightwall2");
+    gconf_keys[K_R3] = g_strdup ("/apps/gtetrinet/keys/rightwall3");
+    gconf_keys[K_R4] = g_strdup ("/apps/gtetrinet/keys/rightwall4");
+    gconf_keys[K_R5] = g_strdup ("/apps/gtetrinet/keys/rightwall5");
 
     for (i = 0; i < K_NUM; i ++) {
         gtk_list_store_append (keys_store, &iter);
diff -ur gtetrinet-0.7.11/src/gtetrinet.c gtetrinet-0.7.11-new/src/gtetrinet.c
--- gtetrinet-0.7.11/src/gtetrinet.c    2005-03-19 10:19:18.000000000 +1300
+++ gtetrinet-0.7.11-new/src/gtetrinet.c        2009-12-31 18:14:27.000000000 
+1300
@@ -170,6 +170,10 @@
                              (GConfClientNotifyFunc) keys_rotate_left_changed,
                             NULL, NULL, NULL);
 
+    gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rotate_up",
+                             (GConfClientNotifyFunc) keys_rotate_up_changed,
+                            NULL, NULL, NULL);
+
     gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rotate_right",
                              (GConfClientNotifyFunc) keys_rotate_right_changed,
                             NULL, NULL, NULL);
@@ -210,6 +214,54 @@
                              (GConfClientNotifyFunc) keys_special6_changed,
                             NULL, NULL, NULL);
 
+    gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/leftwall0",
+                             (GConfClientNotifyFunc) keys_leftwall0_changed,
+                            NULL, NULL, NULL);
+
+    gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/leftwall1",
+                             (GConfClientNotifyFunc) keys_leftwall1_changed,
+                            NULL, NULL, NULL);
+
+    gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/leftwall2",
+                             (GConfClientNotifyFunc) keys_leftwall2_changed,
+                            NULL, NULL, NULL);
+
+    gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/leftwall3",
+                             (GConfClientNotifyFunc) keys_leftwall3_changed,
+                            NULL, NULL, NULL);
+
+    gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/leftwall4",
+                             (GConfClientNotifyFunc) keys_leftwall4_changed,
+                            NULL, NULL, NULL);
+
+    gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/leftwall5",
+                             (GConfClientNotifyFunc) keys_leftwall5_changed,
+                            NULL, NULL, NULL);
+
+    gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rightwall0",
+                             (GConfClientNotifyFunc) keys_rightwall0_changed,
+                            NULL, NULL, NULL);
+
+    gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rightwall1",
+                             (GConfClientNotifyFunc) keys_rightwall1_changed,
+                            NULL, NULL, NULL);
+
+    gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rightwall2",
+                             (GConfClientNotifyFunc) keys_rightwall2_changed,
+                            NULL, NULL, NULL);
+
+    gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rightwall3",
+                             (GConfClientNotifyFunc) keys_rightwall3_changed,
+                            NULL, NULL, NULL);
+
+    gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rightwall4",
+                             (GConfClientNotifyFunc) keys_rightwall4_changed,
+                            NULL, NULL, NULL);
+
+    gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rightwall5",
+                             (GConfClientNotifyFunc) keys_rightwall5_changed,
+                            NULL, NULL, NULL);
+
     gconf_client_notify_add (gconf_client, 
"/apps/gtetrinet/partyline/enable_timestamps",
                              (GConfClientNotifyFunc) 
partyline_enable_timestamps_changed,
                             NULL, NULL, NULL);
diff -ur gtetrinet-0.7.11/src/tetrinet.c gtetrinet-0.7.11-new/src/tetrinet.c
--- gtetrinet-0.7.11/src/tetrinet.c     2006-09-02 22:59:13.000000000 +1200
+++ gtetrinet-0.7.11-new/src/tetrinet.c 2009-12-31 19:01:07.000000000 +1300
@@ -1736,6 +1736,14 @@
         tetris_drawcurrentblock ();
         return TRUE;
     }
+    else if (gdk_keyval_to_lower (keyval) == keys[K_ROTUP]) {
+        if (!nextblocktimeout)
+            sound_playsound (S_ROTATE);
+        tetris_blockrotate (-1);
+        tetris_blockrotate (-1);
+        tetris_drawcurrentblock ();
+        return TRUE;
+    }
     else if (gdk_keyval_to_lower (keyval) == keys[K_ROTLEFT]) {
         if (!nextblocktimeout)
             sound_playsound (S_ROTATE);
@@ -1753,6 +1761,44 @@
         tetris_drawcurrentblock ();
         return TRUE;
     }
+    else if ((gdk_keyval_to_lower (keyval) == keys[K_L0]) ||
+             (gdk_keyval_to_lower (keyval) == keys[K_L1]) ||
+             (gdk_keyval_to_lower (keyval) == keys[K_L2]) ||
+             (gdk_keyval_to_lower (keyval) == keys[K_L3]) ||
+             (gdk_keyval_to_lower (keyval) == keys[K_L4]) ||
+             (gdk_keyval_to_lower (keyval) == keys[K_L5]) ||
+             (gdk_keyval_to_lower (keyval) == keys[K_R5]) ||
+             (gdk_keyval_to_lower (keyval) == keys[K_R4]) ||
+             (gdk_keyval_to_lower (keyval) == keys[K_R3]) ||
+             (gdk_keyval_to_lower (keyval) == keys[K_R2]) ||
+             (gdk_keyval_to_lower (keyval) == keys[K_R1]) ||
+             (gdk_keyval_to_lower (keyval) == keys[K_R0])){
+        int i, keypos, gkv;
+        gkv = gdk_keyval_to_lower (keyval);
+        for(i = K_L0; i <= K_R0; i++){
+            if(keys[i] == gkv){
+                keypos = i;
+            }
+        }
+        if(keypos <= K_L5){
+            for (i = 0; i < 12; i++){
+                tetris_blockmove (-1);
+            }
+            for (i = keypos; i > K_L0; i--){
+                tetris_blockmove (1);
+            }
+        }
+        else if(keypos > K_L5){
+            for (i = 0; i < 12; i++){
+                tetris_blockmove (1);
+            }
+            for (i = keypos; i < K_R0; i++){
+                tetris_blockmove (-1);
+            }
+        }
+        tetris_drawcurrentblock ();
+        return TRUE;
+    }
     else if (gdk_keyval_to_lower (keyval) == keys[K_DOWN]) {
         if (!downpressed) {
             tetrinet_timeout ();

Reply via email to