summaryrefslogtreecommitdiff
path: root/Core/windowing/repaint.lisp
diff options
context:
space:
mode:
authorDaniel Kochmański <daniel@turtleware.eu>2023-03-30 15:25:42 +0200
committerDaniel Kochmański <daniel@turtleware.eu>2023-04-04 10:57:47 +0200
commit3fe4fb302d361857a785205a753a78ad7d7b9b30 (patch)
tree5a94a7b38b3fdfe571eb735dd2715bbe2df44a58 /Core/windowing/repaint.lisp
parent437d74b97e6f4320b0216c73e0af60e126e390ce (diff)
core: sheet-native-region*: more robust implementation
Don't panic if the mirror is lost, simply return the sheet-region. This sometimes happen when we work with menus.
Diffstat (limited to 'Core/windowing/repaint.lisp')
-rw-r--r--Core/windowing/repaint.lisp8
1 files changed, 5 insertions, 3 deletions
diff --git a/Core/windowing/repaint.lisp b/Core/windowing/repaint.lisp
index f09a2644..1978d438 100644
--- a/Core/windowing/repaint.lisp
+++ b/Core/windowing/repaint.lisp
@@ -62,9 +62,11 @@
(sheet-native-region* parent)))
(sheet-region sheet)))
(:method ((sheet basic-sheet))
- (region-intersection
- (transform-region (sheet-native-transformation sheet) (sheet-region sheet))
- (sheet-native-region* (sheet-parent sheet)))))
+ (if-let ((parent (sheet-parent sheet)))
+ (region-intersection
+ (transform-region (sheet-native-transformation sheet) (sheet-region sheet))
+ (sheet-native-region* (sheet-parent sheet)))
+ (sheet-region sheet))))
(defun sheet-visible-region (sheet)
(if (sheet-direct-mirror sheet)