diff --git a/examples/dokk/glwin.py b/examples/dokk/glwin.py
index 9c4dcedfbe3928a0ee37fa9ea45977985c1bc2ad..bb49f5d6859965b1bdc1c324904303694a3367c7 100644
--- a/examples/dokk/glwin.py
+++ b/examples/dokk/glwin.py
@@ -4,11 +4,16 @@ from PyQt4.QtGui import *
 from PyQt4.QtCore import *
 from PyQt4.QtOpenGL import *
 
+TRANS_VAL = 20
+
 class DokkGLCanvas(QGLWidget):
+    
   def __init__(self, format, parent=None):
     QGLWidget.__init__(self, format, parent)
     self.last_pos_=QPoint()
     self.setAutoFillBackground(False)
+    self.setAttribute(Qt.WA_KeyCompression,True)
+    
   def initializeGL(self):
     gfx.Scene().InitGL()
 
@@ -45,6 +50,32 @@ class DokkGLCanvas(QGLWidget):
                         False)
     self.update()
 
+  def wheelEvent(self, event):
+    self.OnTransform(gfx.INPUT_COMMAND_TRANSZ,0,gfx.TRANSFORM_VIEW,
+              0.1*(-event.delta()))
+
+
+  def OnTransform(self,com, indx, trg, val):
+    gfx.Scene().Apply(gfx.InputEvent(gfx.INPUT_DEVICE_MOUSE,
+                                     com, indx,trg,val*0.5),False)
+    self.update()
+    
+  def keyReleaseEvent(self, event):
+    if event.key() == Qt.Key_Left or event.key() == Qt.Key_A:
+      self.OnTransform(gfx.INPUT_COMMAND_TRANSX,0, gfx.TRANSFORM_VIEW, -TRANS_VAL)
+      
+    if event.key() == Qt.Key_Right or event.key() == Qt.Key_D:
+      self.OnTransform(gfx.INPUT_COMMAND_TRANSX,0, gfx.TRANSFORM_VIEW, TRANS_VAL)
+      
+    if event.key() == Qt.Key_Down or event.key() == Qt.Key_S:
+      self.OnTransform(gfx.INPUT_COMMAND_TRANSZ,0, gfx.TRANSFORM_VIEW, TRANS_VAL)
+      
+    if event.key() == Qt.Key_Up or event.key() == Qt.Key_W:
+      self.OnTransform(gfx.INPUT_COMMAND_TRANSZ,0, gfx.TRANSFORM_VIEW, -TRANS_VAL)
+      
+    if event.key() == Qt.Key_Escape:
+      QApplication.exit()
+    
 class DokkGLWin(gfx.GLWinBase):
     def _CreateFormat(self):
       fmt=QGLFormat()