@@ -55,6 +55,8 @@ def reparent_qt_to_x11(window, parent):
5555
5656
5757class XEmbedForwarding ():
58+ # nothimg to ignore at this time (use qt.key definitions)
59+ ignore = []
5860
5961 def __init__ (self , window , forward ):
6062
@@ -68,47 +70,26 @@ def __init__(self, window, forward):
6870 d = display .Display ()
6971 self .fw = drawable .Window (d .display , forward , 0 )
7072
71- self .forward = forward
7273 self .window = window
73- self .d = d
7474 window .keyPressTrap = self .catch_keypress
7575 window .keyReleaseTrap = self .catch_keyrelease
7676
7777 def catch_keypress (self , e ):
78- print (e .nativeScanCode ())
79- print (e .nativeVirtualKey ())
80- print (e .text ())
81- self .forward (e , e .nativeScanCode ())
78+ #print(e.key())
79+ self .forward (e , e .nativeScanCode (),True )
8280
8381 def catch_keyrelease (self , e ):
84- return
85-
86- # ks = gtk.keysyms
87- # ignore = [ ks.Tab, ks.Page_Up, ks.Page_Down
88- # , ks.KP_Page_Up, ks.KP_Page_Down
89- # , ks.Left, ks.Right, ks.Up, ks.Down
90- # , ks.KP_Left, ks.KP_Right, ks.KP_Up, ks.KP_Down
91- # , ks.bracketleft, ks.bracketright
92- # ]
93-
94- def gtk2xlib (e , fw , g , type = None ):
95- if type is None : type = e .type
96- if type == gdk .KEY_PRESS :
82+ self .forward (e , e .nativeScanCode (),False )
83+
84+ def build_event (self , e , keycode , g , type = None ):
85+ if type :
9786 klass = event .KeyPress
98- elif type == gdk . KEY_RELEASE :
87+ elif type == False :
9988 klass = event .KeyRelease
10089 else :
10190 return
102- kw = dict (window = fw , detail = e .hardware_keycode ,
103- state = e .state & 0xff ,
104- child = X .NONE , root = g ._data ['root' ],
105- root_x = g ._data ['x' ], root_y = g ._data ['y' ],
106- event_x = 0 , event_y = 0 , same_screen = 1 )
107- return klass (time = e .time , ** kw )
108-
109- def build_event (self , e , keycode , g ):
110- klass = event .KeyPress
11191 time_lie = 264209133 # can't get XWIN event time from qtvcp events
92+
11293 kw = dict (window = self .fw , # window id to forward to
11394 detail = keycode , # keysys code
11495 state = 0 , # shift/cntrl/ etc modifier state anded together
@@ -120,12 +101,12 @@ def build_event(self, e, keycode, g):
120101 same_screen = 1 ) # not from our screen
121102 return klass (time = time_lie , ** kw )
122103
123- def forward (self , e , keycode ):
124- # if e.keyval in ignore:
125- # return
104+ def forward (self , e , keycode , type ):
105+ if e in self . ignore :
106+ return
126107
127108 g = self .fw .get_geometry ()
128- fe = self .build_event (e , keycode , g )
109+ fe = self .build_event (e , keycode , g , type )
129110 if not fe : return
130111
131112 self .fw .send_event (fe )
0 commit comments