[Eclipse-cvs] CVS eclipse

ihatchondo ihatchondo at common-lisp.net
Wed Apr 23 15:16:35 UTC 2008


Update of /project/eclipse/cvsroot/eclipse
In directory clnet:/tmp/cvs-serv26700

Modified Files:
	widgets.lisp 
Log Message:
Fix: improper variable usage in defsetf. So in order to avoid glitches set-.. created, and defsetf calls it.

--- /project/eclipse/cvsroot/eclipse/widgets.lisp	2007/11/02 09:33:08	1.51
+++ /project/eclipse/cvsroot/eclipse/widgets.lisp	2008/04/23 15:16:32	1.52
@@ -1,5 +1,5 @@
 ;;; -*- Mode: Lisp; Package: ECLIPSE-INTERNALS -*-
-;;; $Id: widgets.lisp,v 1.51 2007/11/02 09:33:08 ihatchondo Exp $
+;;; $Id: widgets.lisp,v 1.52 2008/04/23 15:16:32 ihatchondo Exp $
 ;;;
 ;;; ECLIPSE. The Common Lisp Window Manager.
 ;;; Copyright (C) 2000, 2001, 2002 Iban HATCHONDO
@@ -377,43 +377,46 @@
 
 (defsetf fullscreen-mode (application) (mode)
   "Mode may be (or :on :off). Put or remove application in or from fullscreen."
-  `(with-slots (window (fgeometry full-geometry) master icon) ,application
-     ;; reset appropriately _net_wm_state property.
-     (let ((prop (netwm:net-wm-state window)))
-       (if (eq ,mode :on)
-	   (pushnew :_net_wm_state_fullscreen prop)
-	   (setf prop (delete :_net_wm_state_fullscreen prop)))
-       (setf (netwm:net-wm-state window) prop))
-     (if (eq ,mode :on)
-	 ;; put in fullscreen mode.
-	 (with-event-mask (*root-window*)
-	   (multiple-value-bind (x y w h) (window-geometry window)
-	     (when master
-	       (with-slots (children (master-win window) frame-style) master
-		 (multiple-value-setq (x y) (window-position master-win))
-		 (setf (slot-value master 'old-frame-style) frame-style)
-		 (setf (decoration-frame-style master)
-		       (theme-default-style (lookup-theme "no-decoration")))))
-	     (setf (geometry fgeometry) (values x y w h))
-	     (if (xlib:query-extension *display* "XFree86-VidModeExtension")
-		 (let* ((scr (first (xlib:display-roots *display*)))
-			(ml (xlib:xfree86-vidmode-get-mode-line *display* scr)))
-		   (multiple-value-setq (x y) 
-		     (xlib:xfree86-vidmode-get-viewport *display* scr))
-		   (setf w (xlib:mode-info-hdisplay ml)
-			 h (xlib:mode-info-vdisplay ml)))
-		 (setf x 0 y 0 w (screen-width) h (screen-height)))
-	     (configure-window window :x x :y y :width w :height h))
-	   (focus-widget ,application 0))
-	 ;; revert: restore precedent geometry and decoration style.
-	 (with-event-mask (*root-window*)
-	   (setf (drawable-sizes window) (geometry-sizes fgeometry))
-	   (unless (window-not-decorable-p window)
-	     (setf (decoration-frame-style master)
-		   (slot-value master 'old-frame-style)))
-	   (multiple-value-bind (x y) (geometry-coordinates fgeometry)
-	     (with-slots (window) (or master ,application)
-	       (configure-window window :x x :y y)))))))
+  `(set-fullscreen-mode ,application ,mode))
+
+(defun set-fullscreen-mode (application mode)
+  (with-slots (window (fgeometry full-geometry) master icon) application
+    ;; reset appropriately _net_wm_state property.
+    (let ((prop (netwm:net-wm-state window)))
+      (if (eq mode :on)
+          (pushnew :_net_wm_state_fullscreen prop)
+          (setf prop (delete :_net_wm_state_fullscreen prop)))
+      (setf (netwm:net-wm-state window) prop))
+    (if (eq mode :on)
+        ;; put in fullscreen mode.
+        (with-event-mask (*root-window*)
+          (multiple-value-bind (x y w h) (window-geometry window)
+            (when master
+              (with-slots (children (master-win window) frame-style) master
+                (multiple-value-setq (x y) (window-position master-win))
+                (setf (slot-value master 'old-frame-style) frame-style)
+                (setf (decoration-frame-style master)
+                      (theme-default-style (lookup-theme "no-decoration")))))
+            (setf (geometry fgeometry) (values x y w h))
+            (if (xlib:query-extension *display* "XFree86-VidModeExtension")
+                (let* ((scr (first (xlib:display-roots *display*)))
+                       (ml (xlib:xfree86-vidmode-get-mode-line *display* scr)))
+                  (multiple-value-setq (x y) 
+                    (xlib:xfree86-vidmode-get-viewport *display* scr))
+                  (setf w (xlib:mode-info-hdisplay ml)
+                        h (xlib:mode-info-vdisplay ml)))
+                (setf x 0 y 0 w (screen-width) h (screen-height)))
+            (configure-window window :x x :y y :width w :height h))
+          (focus-widget application 0))
+        ;; revert: restore precedent geometry and decoration style.
+        (with-event-mask (*root-window*)
+          (setf (drawable-sizes window) (geometry-sizes fgeometry))
+          (unless (window-not-decorable-p window)
+            (setf (decoration-frame-style master)
+                  (slot-value master 'old-frame-style)))
+          (multiple-value-bind (x y) (geometry-coordinates fgeometry)
+            (with-slots (window) (or master application)
+              (configure-window window :x x :y y)))))))
 
 (defun application-leader (application)
   "Returns the \"leader\" of an application. The leader is computed 




More information about the Eclipse-cvs mailing list