def button_action(self, pointer, button, pressed, _deviceid=-1, *args): if button <= 3: #we should be using CGEventCreateMouseEvent #instead we clear previous clicks when a "higher" button is pressed... oh well args = [] for i in range(button): args.append(i == (button - 1) and pressed) log("CG.CGPostMouseEvent(%s, %s, %s, %s)", pointer[:2], 1, button, args) CG.CGPostMouseEvent(pointer[:2], 1, button, *args) else: if not pressed: #we don't simulate press/unpress #so just ignore unpressed events return wheel = (button - 2) // 2 direction = 1 - (((button - 2) % 2) * 2) args = [] for i in range(wheel): if i != (wheel - 1): args.append(0) else: args.append(direction) log("CG.CGPostScrollWheelEvent(%s, %s)", wheel, args) CG.CGPostScrollWheelEvent(wheel, *args)
def _process_button_action(self, proto, packet): wid, button, pressed, pointer, modifiers = packet[1:6] log("process_button_action(%s, %s)", proto, packet) self._update_modifiers(proto, wid, modifiers) self._process_mouse_common(proto, wid, pointer) pointer = self._adjust_pointer(pointer) if button <= 3: #we should be using CGEventCreateMouseEvent #instead we clear previous clicks when a "higher" button is pressed... oh well args = [] for i in range(button): args.append(i == (button - 1) and pressed) log("CG.CGPostMouseEvent(%s, %s, %s, %s)", pointer, 1, button, args) CG.CGPostMouseEvent(pointer, 1, button, *args) else: if not pressed: #we don't simulate press/unpress #so just ignore unpressed events return wheel = (button - 2) // 2 direction = 1 - (((button - 2) % 2) * 2) args = [] for i in range(wheel): if i != (wheel - 1): args.append(0) else: args.append(direction) log("CG.CGPostScrollWheelEvent(%s, %s)", wheel, args) CG.CGPostScrollWheelEvent(wheel, *args)
def button_action(self, pointer, button, pressed, _deviceid=-1, *_args): if button <= 3: #we should be using CGEventCreateMouseEvent #instead we clear previous clicks when a "higher" button is pressed... oh well event = [pointer[:2], 1, button] for i in range(button): event.append(i == (button - 1) and pressed) r = CG.CGPostMouseEvent(*event) log("CG.CGPostMouseEvent%s=%s", event, r) return if not pressed: #we don't simulate press/unpress #so just ignore unpressed events return wheel = (button - 2) // 2 direction = 1 - (((button - 2) % 2) * 2) event = [wheel] for i in range(wheel): if i != (wheel - 1): event.append(0) else: event.append(direction) r = CG.CGPostScrollWheelEvent(*event) log("CG.CGPostScrollWheelEvent%s=%s", event, r)