[pitivi] viewer: Fix unhover when mouse leaves the OverlayStack
- From: Alexandru Băluț <alexbalut src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] viewer: Fix unhover when mouse leaves the OverlayStack
- Date: Sun, 12 May 2019 04:25:09 +0000 (UTC)
commit 276bd2f79dc93eaf2554ca63e51adc9c261be156
Author: Alexandru Băluț <alexandru balut gmail com>
Date: Tue May 7 02:07:49 2019 +0200
viewer: Fix unhover when mouse leaves the OverlayStack
pitivi/viewer/move_scale_overlay.py | 25 ++++++++++++-------------
1 file changed, 12 insertions(+), 13 deletions(-)
---
diff --git a/pitivi/viewer/move_scale_overlay.py b/pitivi/viewer/move_scale_overlay.py
index 083df571..aa96887a 100644
--- a/pitivi/viewer/move_scale_overlay.py
+++ b/pitivi/viewer/move_scale_overlay.py
@@ -306,7 +306,6 @@ class MoveScaleOverlay(Overlay):
self.__clicked_handle = None
self.__click_diagonal_sign = None
- self.__box_hovered = False
self.__action_log = action_log
self.hovered_handle = None
@@ -456,7 +455,8 @@ class MoveScaleOverlay(Overlay):
self.click_source_position = self.__get_source_position()
self.__clicked_handle = None
- if self.hovered_handle or self.__box_hovered:
+ hovered = self._is_hovered()
+ if self.hovered_handle or hovered:
self.__action_log.begin("Video position change",
finalizing_action=CommitTimelineFinalizingAction(
self._source.get_timeline().get_parent()),
@@ -465,7 +465,7 @@ class MoveScaleOverlay(Overlay):
if self.hovered_handle:
self.hovered_handle.on_click()
self.__clicked_handle = self.hovered_handle
- elif self.__box_hovered:
+ elif hovered:
self._select()
self.stack.set_cursor("grabbing")
self.stack.selected_overlay = self
@@ -520,7 +520,8 @@ class MoveScaleOverlay(Overlay):
def on_hover(self, cursor_pos):
if not self.is_visible():
return
- # handles hover check
+
+ # Check if one of the handles is hovered.
self.hovered_handle = None
if self._is_selected():
for handle in self.handles.values():
@@ -532,21 +533,17 @@ class MoveScaleOverlay(Overlay):
self.queue_draw()
return True
- # box hover check
+ # Check if self is hovered
source = self.__get_normalized_source_position()
cursor = self.stack.get_normalized_cursor_position(cursor_pos)
-
- self.__box_hovered = False
if (source < cursor).all() and (cursor < source + self.__get_size()).all():
- self.__box_hovered = True
self.stack.set_cursor("grab")
self._hover()
else:
- self.__box_hovered = False
self.unhover()
self.queue_draw()
- return self.__box_hovered
+ return self._is_hovered()
def update_from_source(self):
self.__set_size(self.__get_source_size() / self.project_size)
@@ -555,7 +552,9 @@ class MoveScaleOverlay(Overlay):
self.queue_draw()
def do_draw(self, cr):
- if not self._is_selected() and not self._is_hovered():
+ selected = self._is_selected()
+ hovered = self._is_hovered()
+ if not selected and not hovered:
return
cr.save()
@@ -564,7 +563,7 @@ class MoveScaleOverlay(Overlay):
cr.set_source_rgba(0.0, 0.0, 0.0, 0.0)
cr.paint()
- if self.__box_hovered:
+ if hovered:
brightness = 0.65
else:
brightness = 0.3
@@ -579,6 +578,6 @@ class MoveScaleOverlay(Overlay):
cr.stroke()
cr.restore()
- if self._is_selected():
+ if selected:
for handle in self.handles.values():
handle.draw(cr)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]