Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 5e910cc

Browse filesBrowse files
authored
Improve hover color behavior for selectors (#799)
* Improve hover color behavior * black
1 parent 5ae4052 commit 5e910cc
Copy full SHA for 5e910cc

File tree

1 file changed

+22
-5
lines changed
Filter options

1 file changed

+22
-5
lines changed

‎fastplotlib/graphics/selectors/_base_selector.py

Copy file name to clipboardExpand all lines: fastplotlib/graphics/selectors/_base_selector.py
+22-5Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,13 @@ def __init__(
136136

137137
self._hover_responsive: Tuple[WorldObject, ...] = hover_responsive
138138

139+
# Original color of object that we change the colors of
140+
self._original_colors = {}
141+
142+
# Colors as they are changed by the hover events, so they can be restored after a move action
143+
self._hover_colors = {}
144+
139145
if hover_responsive is not None:
140-
self._original_colors = dict()
141146
for wo in self._hover_responsive:
142147
self._original_colors[wo] = wo.material.color
143148

@@ -325,6 +330,11 @@ def _move_end(self, ev):
325330
self._move_info = None
326331
self._moving = False
327332

333+
# Reset hover state
334+
for wo, color in self._hover_colors.items():
335+
wo.material.color = color
336+
self._hover_colors.clear()
337+
328338
# restore the initial controller state
329339
# if it was disabled, keep it disabled
330340
if self._initial_controller_state is not None:
@@ -378,6 +388,7 @@ def _move_to_pointer(self, ev):
378388
self._move_info = None
379389

380390
def _pointer_enter(self, ev):
391+
381392
if self._hover_responsive is None:
382393
return
383394

@@ -388,17 +399,23 @@ def _pointer_enter(self, ev):
388399
if wo in self._edges:
389400
self._edge_hovered = True
390401

391-
wo.material.color = "magenta"
402+
if self._moving:
403+
self._hover_colors[wo] = "magenta"
404+
else:
405+
wo.material.color = "magenta"
392406

393407
def _pointer_leave(self, ev):
394408
if self._hover_responsive is None:
395409
return
396410

411+
self._edge_hovered = False
412+
397413
# reset colors
398414
for wo in self._hover_responsive:
399-
wo.material.color = self._original_colors[wo]
400-
401-
self._edge_hovered = False
415+
if self._moving:
416+
self._hover_colors[wo] = self._original_colors[wo]
417+
else:
418+
wo.material.color = self._original_colors[wo]
402419

403420
def _toggle_arrow_key_moveable(self, ev):
404421
self.arrow_key_events_enabled = not self.arrow_key_events_enabled

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.