From b8733d9f416dee87df43f2c8998ccc4371a69347 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 4 Dec 2013 13:01:31 +0530 Subject: [PATCH] Fix handling of mouse release events during selection --- src/calibre/gui2/tweak_book/editor/image.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/tweak_book/editor/image.py b/src/calibre/gui2/tweak_book/editor/image.py index c0b6e7b09c..6e5232978f 100644 --- a/src/calibre/gui2/tweak_book/editor/image.py +++ b/src/calibre/gui2/tweak_book/editor/image.py @@ -214,10 +214,16 @@ class Canvas(QWidget): def mouseReleaseEvent(self, ev): if ev.button() == Qt.LeftButton: - self.selection_state.reset(full=False) + self.selection_state.dragging = self.selection_state.last_drag_pos = None if self.selection_state.current_mode == 'select': - self.selection_state.current_mode = 'selected' - self.selection_state_changed.emit(True) + r = self.selection_state.rect + if r is None or max(r.width(), r.height()) < 3: + self.selection_state.reset() + else: + self.selection_state.current_mode = 'selected' + self.selection_state_changed.emit(self.has_selection) + elif self.selection_state.current_mode == 'selected' and self.selection_state.rect is not None and self.selection_state.rect.contains(ev.pos()): + self.setCursor(self.get_cursor()) self.update() @painter