diff options
author | Daniel Kochmański <daniel@turtleware.eu> | 2023-03-30 15:25:42 +0200 |
---|---|---|
committer | Daniel Kochmański <daniel@turtleware.eu> | 2023-04-04 10:57:47 +0200 |
commit | 3fe4fb302d361857a785205a753a78ad7d7b9b30 (patch) | |
tree | 5a94a7b38b3fdfe571eb735dd2715bbe2df44a58 /Core/windowing/repaint.lisp | |
parent | 437d74b97e6f4320b0216c73e0af60e126e390ce (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.lisp | 8 |
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) |