def record_callback(self, reply): global press_ctrl global press_shift check_valid_event(reply) data = reply.data while len(data): event, data = get_event_data(data) if event.type == X.KeyPress: keyname = get_keyname(event) if keyname not in ["Control_L", "Control_R"]: self.try_stop_timer(self.press_ctrl_timer) if keyname in ["Control_L", "Control_R"]: press_ctrl = True if not setting_config.get_trayicon_config("pause"): if not self.view.isVisible() or not self.view.in_translate_area(): self.press_ctrl_timer = Timer(self.press_ctrl_delay, self.emit_press_ctrl) self.press_ctrl_timer.start() elif keyname in ["Shift_L", "Shift_R"]: press_shift = True elif keyname in ["Escape"]: self.press_esc.emit() elif event.type == X.KeyRelease: keyname = get_keyname(event) if keyname in ["Control_L", "Control_R"]: press_ctrl = False self.release_ctrl.emit() elif keyname in ["Shift_L", "Shift_R"]: press_shift = False elif event.type == X.ButtonPress: if event.detail == 1: self.left_button_press.emit(event.root_x, event.root_y, event.time) elif event.detail == 3: self.right_button_press.emit(event.root_x, event.root_y, event.time) elif event.detail == 5: self.wheel_press.emit() elif event.type == X.ButtonRelease: if not self.view.isVisible() or not self.view.in_translate_area(): if not setting_config.get_trayicon_config("pause"): if not setting_config.get_trayicon_config("key_trigger_select") or press_shift: selection_content = commands.getoutput("xsel -p -o") delete_selection() if len(selection_content) > 1 and not selection_content.isspace(): self.translate_selection.emit(event.root_x, event.root_y, selection_content) # Delete clipboard selection if user selection in visible area to avoid next time to translate those selection content. elif self.view.isVisible() and self.view.in_translate_area(): delete_selection() elif event.type == X.MotionNotify: self.try_stop_timer(self.stop_timer) if not setting_config.get_trayicon_config("pause"): self.stop_timer = Timer(self.stop_delay, lambda : self.emit_cursor_stop(event.root_x, event.root_y)) self.stop_timer.start()
def handle_event(self, event): if self.timer and self.timer.is_alive(): self.timer.cancel() if event.type == X.KeyPress: keyname = get_keyname(event) if keyname in ["Super_L"]: self.superFlag=True self.timer=Timer(self.superDelay,self.emit_show_window) self.timer.start() for i in range(len(confList)): if keyname ==confList[i].key[0]: if i==0 and self.superFlag==True: self.press_key1.emit() elif i==1 and self.superFlag==True: self.press_key2.emit() elif i==2 and self.superFlag==True: self.press_key3.emit() elif i==3 and self.superFlag==True: self.press_key4.emit() elif i==4 and self.superFlag==True: self.press_key5.emit() elif i==5 and self.superFlag==True: self.press_key6.emit() elif i==6 and self.superFlag==True: self.press_key7.emit() elif i==7 and self.superFlag==True: self.press_key8.emit() elif i==8 and self.superFlag==True: self.press_key9.emit() elif i==9 and self.superFlag==True: self.press_key10.emit() elif event.type == X.KeyRelease: keyname = get_keyname(event) if keyname in ["Super_L"]: self.superFlag=False if self.timer and self.timer.is_alive(): self.timer.cancel() if self.windowFlag==True: self.close_window.emit()
def handle_event(self, event): if event.type == X.KeyPress: keyname = get_keyname(event) self.try_stop_timer(self.press_alt_timer) self.try_stop_timer(self.press_ctrl_timer) if is_alt_key(keyname): self.press_alt_flag = True if not setting_config.get_trayicon_config("pause"): if not self.is_view_visible( ) or not self.is_cursor_in_view_area(): self.press_alt_timer = Timer(self.press_alt_delay, self.emit_press_alt) self.press_alt_timer.start() elif is_ctrl_key(keyname): self.press_ctrl_flag = True if not setting_config.get_trayicon_config("pause"): if not self.is_view_visible( ) or not self.is_cursor_in_view_area(): self.press_ctrl_timer = Timer(self.press_ctrl_delay, self.emit_press_ctrl) self.press_ctrl_timer.start() elif keyname in ["Escape"]: self.press_esc.emit() elif event.type == X.KeyRelease: keyname = get_keyname(event) if is_alt_key(keyname): self.press_alt_flag = False self.release_alt.emit() elif is_ctrl_key(keyname): self.press_ctrl_flag = False self.release_ctrl.emit() elif event.type == X.ButtonPress: if event.detail == 1: self.left_button_press.emit(event.root_x, event.root_y, event.time) # Set hover flag when press. self.hover_flag = False if self.double_click_timeout: self.double_click_flag = False self.double_click_timeout = False self.double_click_counter = 0 self.double_reset_timer = Timer(self.double_click_delay, self.reset_double_click) self.double_reset_timer.start() elif event.detail == 3: self.right_button_press.emit(event.root_x, event.root_y, event.time) elif event.detail == 5: self.wheel_press.emit() elif event.type == X.ButtonRelease: self.double_click_counter += 1 if self.double_click_counter == 2: if self.double_reset_timer != None: self.try_stop_timer(self.double_reset_timer) self.double_click_flag = True self.double_click_timeout = True # import time if not self.is_view_visible() or not self.is_cursor_in_view_area(): # print "1", time.time() # Trigger selection handle if mouse hover or double click. if self.hover_flag or self.double_click_flag: if not setting_config.get_trayicon_config("pause"): if not setting_config.get_trayicon_config( "key_trigger_select") or self.press_ctrl_flag: self.translate_selection_area() # Delete clipboard selection if user selection in visible area to avoid next time to translate those selection content. elif self.is_view_visible() and self.is_cursor_in_view_area(): # print "2", time.time() delete_selection() self.hover_flag = False elif event.type == X.MotionNotify: # Set hover flag to prove selection action. self.hover_flag = True self.try_stop_timer(self.stop_timer) if not setting_config.get_trayicon_config("pause"): self.stop_timer = Timer( self.stop_delay, lambda: self.emit_cursor_stop(event.root_x, event.root_y)) self.stop_timer.start()
def handle_event(self, event): # print "*****************" if event.type == X.KeyPress: keyname = get_keyname(event) if not is_alt_key(keyname): self.try_stop_timer(self.press_alt_timer) elif not is_ctrl_key(keyname): self.try_stop_timer(self.press_ctrl_timer) if is_alt_key(keyname): self.press_alt_flag = True if not setting_config.get_trayicon_config("pause"): print "Press alt", not self.is_view_visible() or not self.is_cursor_in_view_area() if not self.is_view_visible() or not self.is_cursor_in_view_area(): self.press_alt_timer = Timer(self.press_alt_delay, lambda : self.press_alt.emit()) self.press_alt_timer.start() elif is_ctrl_key(keyname): self.press_ctrl_flag = True if not setting_config.get_trayicon_config("pause"): print "Press ctrl", not self.is_view_visible() or not self.is_cursor_in_view_area() if not self.is_view_visible() or not self.is_cursor_in_view_area(): self.press_ctrl_timer = Timer(self.press_ctrl_delay, lambda : self.press_ctrl.emit()) self.press_ctrl_timer.start() elif keyname in ["Escape"]: self.press_esc.emit() elif event.type == X.KeyRelease: keyname = get_keyname(event) if is_alt_key(keyname): self.press_alt_flag = False self.release_alt.emit() elif is_ctrl_key(keyname): self.press_ctrl_flag = False self.release_ctrl.emit() elif event.type == X.ButtonPress: if event.detail == 1: self.left_button_press.emit(event.root_x, event.root_y, event.time) elif event.detail == 3: self.right_button_press.emit(event.root_x, event.root_y, event.time) elif event.detail == 5: self.wheel_press.emit() elif event.type == X.ButtonRelease: print "Button release", not self.is_view_visible() or not self.is_cursor_in_view_area() if not self.is_view_visible() or not self.is_cursor_in_view_area(): if not setting_config.get_trayicon_config("pause"): if not setting_config.get_trayicon_config("key_trigger_select") or self.press_ctrl_flag: selection_content = commands.getoutput("xsel -p -o") delete_selection() if len(selection_content) > 1 and not selection_content.isspace(): self.translate_selection.emit(event.root_x, event.root_y, selection_content) # Delete clipboard selection if user selection in visible area to avoid next time to translate those selection content. elif self.is_view_visible() and self.is_cursor_in_view_area(): delete_selection() elif event.type == X.MotionNotify: self.try_stop_timer(self.stop_timer) if not setting_config.get_trayicon_config("pause"): self.stop_timer = Timer(self.stop_delay, lambda : self.emit_cursor_stop(event.root_x, event.root_y)) self.stop_timer.start()
def handle_event(self, event): if event.type == X.KeyPress: keyname = get_keyname(event) self.try_stop_timer(self.press_alt_timer) self.try_stop_timer(self.press_ctrl_timer) if is_alt_key(keyname): self.press_alt_flag = True if not setting_config.get_trayicon_config("pause"): if not self.is_view_visible() or not self.is_cursor_in_view_area(): self.press_alt_timer = Timer(self.press_alt_delay, self.emit_press_alt) self.press_alt_timer.start() elif is_ctrl_key(keyname): self.press_ctrl_flag = True if not setting_config.get_trayicon_config("pause"): if not self.is_view_visible() or not self.is_cursor_in_view_area(): self.press_ctrl_timer = Timer(self.press_ctrl_delay, self.emit_press_ctrl) self.press_ctrl_timer.start() elif keyname in ["Escape"]: self.press_esc.emit() elif event.type == X.KeyRelease: keyname = get_keyname(event) if is_alt_key(keyname): self.press_alt_flag = False self.release_alt.emit() elif is_ctrl_key(keyname): self.press_ctrl_flag = False self.release_ctrl.emit() elif event.type == X.ButtonPress: if event.detail == 1: self.left_button_press.emit(event.root_x, event.root_y, event.time) # Set hover flag when press. self.hover_flag = False if self.double_click_timeout: self.double_click_flag = False self.double_click_timeout = False self.double_click_counter = 0 self.double_reset_timer = Timer(self.double_click_delay, self.reset_double_click) self.double_reset_timer.start() elif event.detail == 3: self.right_button_press.emit(event.root_x, event.root_y, event.time) elif event.detail == 5: self.wheel_press.emit() elif event.type == X.ButtonRelease: self.double_click_counter += 1 if self.double_click_counter == 2: if self.double_reset_timer != None: self.try_stop_timer(self.double_reset_timer) self.double_click_flag = True self.double_click_timeout = True # import time if not self.is_view_visible() or not self.is_cursor_in_view_area(): # print "1", time.time() # Trigger selection handle if mouse hover or double click. if self.hover_flag or self.double_click_flag: if not setting_config.get_trayicon_config("pause"): if not setting_config.get_trayicon_config("key_trigger_select") or self.press_ctrl_flag: self.translate_selection_area() # Delete clipboard selection if user selection in visible area to avoid next time to translate those selection content. elif self.is_view_visible() and self.is_cursor_in_view_area(): # print "2", time.time() delete_selection() self.hover_flag = False elif event.type == X.MotionNotify: # Set hover flag to prove selection action. self.hover_flag = True self.try_stop_timer(self.stop_timer) if not setting_config.get_trayicon_config("pause"): self.stop_timer = Timer(self.stop_delay, lambda : self.emit_cursor_stop(event.root_x, event.root_y)) self.stop_timer.start()