Skip to content

Commit 7dc467d

Browse files
csd4ni3leruvanos
authored andcommitted
Add UIFocusMixin do_post_render None widget handling (#2605)
- Adds a None check to do_post_render, so it doesnt crash when trying to access the widget's rect if the widget is None
1 parent 9eaa542 commit 7dc467d

File tree

1 file changed

+34
-33
lines changed

1 file changed

+34
-33
lines changed

arcade/gui/experimental/focus.py

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -290,39 +290,40 @@ def do_post_render(self, surface: Surface):
290290
surface.limit(None)
291291

292292
widget = self._get_focused_widget()
293-
arcade.draw_rect_outline(
294-
rect=widget.rect,
295-
color=arcade.color.WHITE,
296-
border_width=2,
297-
)
298-
299-
if self._debug:
300-
# debugging
301-
if isinstance(widget, Focusable):
302-
if widget.neighbor_up:
303-
self._draw_indicator(
304-
widget.rect.top_center,
305-
widget.neighbor_up.rect.bottom_center,
306-
color=arcade.color.RED,
307-
)
308-
if widget.neighbor_down:
309-
self._draw_indicator(
310-
widget.rect.bottom_center,
311-
widget.neighbor_down.rect.top_center,
312-
color=arcade.color.GREEN,
313-
)
314-
if widget.neighbor_left:
315-
self._draw_indicator(
316-
widget.rect.center_left,
317-
widget.neighbor_left.rect.center_right,
318-
color=arcade.color.BLUE,
319-
)
320-
if widget.neighbor_right:
321-
self._draw_indicator(
322-
widget.rect.center_right,
323-
widget.neighbor_right.rect.center_left,
324-
color=arcade.color.ORANGE,
325-
)
293+
if widget:
294+
arcade.draw_rect_outline(
295+
rect=widget.rect,
296+
color=arcade.color.WHITE,
297+
border_width=2,
298+
)
299+
300+
if self._debug:
301+
# debugging
302+
if isinstance(widget, Focusable):
303+
if widget.neighbor_up:
304+
self._draw_indicator(
305+
widget.rect.top_center,
306+
widget.neighbor_up.rect.bottom_center,
307+
color=arcade.color.RED,
308+
)
309+
if widget.neighbor_down:
310+
self._draw_indicator(
311+
widget.rect.bottom_center,
312+
widget.neighbor_down.rect.top_center,
313+
color=arcade.color.GREEN,
314+
)
315+
if widget.neighbor_left:
316+
self._draw_indicator(
317+
widget.rect.center_left,
318+
widget.neighbor_left.rect.center_right,
319+
color=arcade.color.BLUE,
320+
)
321+
if widget.neighbor_right:
322+
self._draw_indicator(
323+
widget.rect.center_right,
324+
widget.neighbor_right.rect.center_left,
325+
color=arcade.color.ORANGE,
326+
)
326327

327328
def _draw_indicator(self, start: Vec2, end: Vec2, color=arcade.color.WHITE):
328329
arcade.draw_line(start.x, start.y, end.x, end.y, color, 2)

0 commit comments

Comments
 (0)