Update of /project/eclipse/cvsroot/eclipse In directory common-lisp.net:/tmp/cvs-serv18618
Modified Files: virtual-screen.lisp Log Message: surround the map-or-unmap calls in change-vscreen with a with-server-grabbed to improve a bit performances.
Date: Mon Nov 24 11:42:59 2003 Author: ihatchondo
Index: eclipse/virtual-screen.lisp diff -u eclipse/virtual-screen.lisp:1.13 eclipse/virtual-screen.lisp:1.14 --- eclipse/virtual-screen.lisp:1.13 Mon Nov 24 08:12:01 2003 +++ eclipse/virtual-screen.lisp Mon Nov 24 11:42:59 2003 @@ -1,5 +1,5 @@ ;;; -*- Mode: Lisp; Package: ECLIPSE-INTERNALS -*- -;;; $Id: virtual-screen.lisp,v 1.13 2003/11/24 13:12:01 ihatchondo Exp $ +;;; $Id: virtual-screen.lisp,v 1.14 2003/11/24 16:42:59 ihatchondo Exp $ ;;; ;;; Copyright (C) 2002 Iban HATCHONDO ;;; contact : hatchond@yahoo.fr @@ -42,6 +42,8 @@ (member :_net_wm_window_type_dock netwm-type)))))))
(defun map-or-unmap-vscreen (fun scr-num) + (declare (optimize (speed 3) (safety 0))) + (declare (type function fun)) (loop for widget being each hash-value in *widget-table* when (application-p widget) do (with-slots (window master) widget @@ -109,9 +111,10 @@ (when (application-p widget) (setf (application-wants-focus-p widget) t)))) (xlib:set-input-focus *display* :pointer-root :pointer-root) - (with-pointer-grabbed (window nil) - (map-or-unmap-vscreen #'xlib:unmap-window cur) - (map-or-unmap-vscreen #'xlib:map-window new))) + (xlib:with-server-grabbed (*display*) + (with-pointer-grabbed (window nil) + (map-or-unmap-vscreen #'xlib:unmap-window cur) + (map-or-unmap-vscreen #'xlib:map-window new)))) (setf (gnome:win-workspace window) new (netwm:net-current-desktop window) new) (when *change-desktop-message-active-p*