def paste_xlib(self): window = self.display.get_input_focus().focus window.grab_keyboard(False, X.GrabModeAsync, X.GrabModeAsync, X.CurrentTime) self.display.flush() key_press = event.KeyPress(detail=shared.keycode, time=X.CurrentTime, root=self.root, window=window, child=X.NONE, root_x=0, root_y=0, event_x=0, event_y=0, state=X.ControlMask, same_screen=1) key_release = event.KeyRelease(detail=shared.keycode, time=X.CurrentTime, root=self.root, window=window, child=X.NONE, root_x=0, root_y=0, event_x=0, event_y=0, state=X.ControlMask, same_screen=1) window.send_event(key_press) window.send_event(key_release) self.display.ungrab_keyboard(X.CurrentTime) self.display.flush()
def send_key(self, key, state, mask): if state is KeyState.PRESSED: ev = xevent.KeyPress(time=X.CurrentTime, root=self.root, window=self.xwindow, same_screen=True, child=X.NONE, root_x=0, root_y=0, event_x=0, event_y=0, state=mask, detail=key.ec + self.translate.min_keycode) self.xwindow.send_event(ev) elif state is KeyState.RELEASED: ev = xevent.KeyRelease(time=X.CurrentTime, root=self.root, window=self.xwindow, same_screen=True, child=X.NONE, root_x=0, root_y=0, event_x=0, event_y=0, state=mask, detail=key.ec + self.translate.min_keycode) self.xwindow.send_event(ev) else: raise TypeError('Unsupported state') self.disp.flush()
def release_button(self, keycode): #Search for the focused window self.wnd = self.disp.get_input_focus().focus if (self.wnd) == None: print 'Error assigning the focused window! Existing...' os._exit(0) self.keyevtrelease = event.KeyRelease( type=X.KeyRelease, display=self.disp, detail=keycode, time=X.CurrentTime, root=self.root, window=self.wnd, child=X.NONE, root_x=1, root_y=1, event_x=1, event_y=1, state=0, same_screen=1, ) self.disp.send_event(self.wnd, self.keyevtrelease, propagate=True) self.disp.flush()
def _send_key_release(self, keycode, state): key_release = event.KeyRelease(detail=keycode, time=X.CurrentTime, root=self.static_root, window=self.static_window, child=X.NONE, root_x=0, root_y=0, event_x=0, event_y=0, state=state, same_screen=1) self.static_window.send_event(key_release)
def __sendKeyReleaseEvent(self, keyCode, modifiers, theWindow=None): if theWindow is None: focus = self.localDisplay.get_input_focus().focus else: focus = theWindow keyEvent = event.KeyRelease(detail=keyCode, time=X.CurrentTime, root=self.rootWindow, window=focus, child=X.NONE, root_x=1, root_y=1, event_x=1, event_y=1, state=modifiers, same_screen=1) focus.send_event(keyEvent)