[mcclim-cvs] CVS mcclim/Backends/CLX
gbaumann
gbaumann at common-lisp.net
Sat Aug 1 22:15:32 UTC 2009
Update of /project/mcclim/cvsroot/mcclim/Backends/CLX
In directory cl-net:/tmp/cvs-serv16195
Modified Files:
frame-manager.lisp
Log Message:
(ADOPT-FRAME :AFTER CLX-FRAME-MANAGER APPLICATION-FRAME)
If the frame happens to have a non-null calling-frame slot, tell
the window manager. That way pop up dialogs are recognized as such
allowing the window manager to apply what ever special handling it
does to pop up windows.
--- /project/mcclim/cvsroot/mcclim/Backends/CLX/frame-manager.lisp 2009/01/28 19:27:22 1.23
+++ /project/mcclim/cvsroot/mcclim/Backends/CLX/frame-manager.lisp 2009/08/01 22:15:32 1.24
@@ -117,6 +117,14 @@
(setf (xlib:window-event-mask mirror)
(logior (xlib:window-event-mask mirror)
(xlib:make-event-mask :structure-notify)))
+ ;; Care for calling-frame, be careful not to trip on missing bits
+ (let* ((calling-frame (frame-calling-frame frame))
+ (tls (and calling-frame (frame-top-level-sheet calling-frame)))
+ (calling-mirror (and tls (sheet-mirror tls))))
+ (when calling-mirror
+ (setf (xlib:transient-for mirror)
+ calling-mirror)))
+ ;;
(when (sheet-enabled-p sheet)
(xlib:map-window mirror) ))))
More information about the Mcclim-cvs
mailing list