def handle_button_press(self, widget, event): ''' Internal function to handle button press. ''' # Get input focus. self.grab_focus() # Hide right menu immediately. self.right_menu.hide() # Select all when double click left button. if is_double_click(event): self.double_click_flag = True self.select_all() # Show right menu when click right button. elif is_right_button(event): if self.right_menu_visible_flag: (wx, wy) = self.window.get_root_origin() (cx, cy, modifier) = self.window.get_pointer() self.right_menu.show((cx + wx, cy + wy)) # Change cursor when click left button. elif is_left_button(event): self.left_click_flag = True self.left_click_coordindate = (event.x, event.y) xy = map(int, self.left_click_coordindate) insert = self.xy_to_iter(*xy) self.buffer.move_mark_by_name("insert", insert) self.buffer.move_mark_by_name("selection_bound", insert) self.drag_start_index = self.get_index_at_event(widget, event) self.queue_draw()
def click_item(self, event): cell = self.get_cell_with_event(event) if cell != None: (click_row, click_column, offset_x, offset_y) = cell if self.left_button_press: if click_row == None: self.unselect_all() else: if self.enable_drag_drop and click_row in self.select_rows: self.start_drag = True # Record press_in_select_rows, disable select rows if mouse not move after release button. self.press_in_select_rows = click_row else: self.start_drag = False self.start_select_row = click_row self.set_select_rows([click_row]) self.visible_items[click_row].button_press(click_column, offset_x, offset_y) if is_double_click(event): self.double_click_row = copy.deepcopy(click_row) elif is_single_click(event): self.single_click_row = copy.deepcopy(click_row)