[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