[Eclipse-cvs] CVS update: eclipse/input.lisp eclipse/virtual-screen.lisp eclipse/widgets.lisp
Iban Hatchondo
ihatchondo at common-lisp.net
Mon Nov 24 13:12:02 UTC 2003
Update of /project/eclipse/cvsroot/eclipse
In directory common-lisp.net:/tmp/cvs-serv20635
Modified Files:
input.lisp virtual-screen.lisp widgets.lisp
Log Message:
We now (un)map the application window and the master window (if it exists) when mapping/unmapping a desktop.
Date: Mon Nov 24 08:12:02 2003
Author: ihatchondo
Index: eclipse/input.lisp
diff -u eclipse/input.lisp:1.21 eclipse/input.lisp:1.22
--- eclipse/input.lisp:1.21 Thu Nov 13 06:12:27 2003
+++ eclipse/input.lisp Mon Nov 24 08:12:01 2003
@@ -1,5 +1,5 @@
;;; -*- Mode: Lisp; Package: ECLIPSE-INTERNALS -*-
-;;; $Id: input.lisp,v 1.21 2003/11/13 11:12:27 ihatchondo Exp $
+;;; $Id: input.lisp,v 1.22 2003/11/24 13:12:01 ihatchondo Exp $
;;;
;;; ECLIPSE. The Common Lisp Window Manager.
;;; Copyright (C) 2000, 2001, 2002 Iban HATCHONDO
@@ -377,10 +377,19 @@
(unless (= cur-desk new-desk)
(when (shaded-p application) (shade application))
(setf (window-desktop-num window) new-desk)
- (if (or (= new-desk +any-desktop+) (= new-desk (current-desk)))
- (xlib:map-window (or master-window window))
- (with-event-mask (*root-window*)
- (xlib:unmap-window (or master-window window)))))))
+ (if (/= new-desk +any-desktop+ (current-desk))
+ (progn
+ (with-event-mask (*root-window*)
+ (xlib:unmap-window (or master-window window))
+ (when master
+ (with-event-mask (master-window)
+ (xlib:unmap-window window))))
+ (xlib:set-input-focus *display* :pointer-root :pointer-root))
+ (if master
+ (with-event-mask (master-window)
+ (xlib:map-window window)
+ (xlib:map-window master-window))
+ (xlib:map-window window))))))
(:_NET_CLOSE_WINDOW (close-widget application))
(:_NET_ACTIVE_WINDOW
(cond ((shaded-p application) (shade application))
Index: eclipse/virtual-screen.lisp
diff -u eclipse/virtual-screen.lisp:1.12 eclipse/virtual-screen.lisp:1.13
--- eclipse/virtual-screen.lisp:1.12 Wed Nov 19 05:29:08 2003
+++ eclipse/virtual-screen.lisp Mon Nov 24 08:12:01 2003
@@ -1,5 +1,5 @@
;;; -*- Mode: Lisp; Package: ECLIPSE-INTERNALS -*-
-;;; $Id: virtual-screen.lisp,v 1.12 2003/11/19 10:29:08 ihatchondo Exp $
+;;; $Id: virtual-screen.lisp,v 1.13 2003/11/24 13:12:01 ihatchondo Exp $
;;;
;;; Copyright (C) 2002 Iban HATCHONDO
;;; contact : hatchond at yahoo.fr
@@ -47,7 +47,11 @@
(with-slots (window master) widget
(when (and (eq (window-desktop-num window) scr-num)
(eq (car (wm-state window)) 1))
- (funcall fun (if master (widget-window master) window))))))
+ (let ((mwindow (when master (widget-window master))))
+ (funcall fun (or mwindow window))
+ (when mwindow
+ (with-event-mask (mwindow)
+ (funcall fun window))))))))
;;;; Public
@@ -106,8 +110,8 @@
(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:map-window new)
- (map-or-unmap-vscreen #'xlib:unmap-window cur)))
+ (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*
Index: eclipse/widgets.lisp
diff -u eclipse/widgets.lisp:1.19 eclipse/widgets.lisp:1.20
--- eclipse/widgets.lisp:1.19 Sat Nov 8 14:54:13 2003
+++ eclipse/widgets.lisp Mon Nov 24 08:12:02 2003
@@ -1,5 +1,5 @@
;;; -*- Mode: Lisp; Package: ECLIPSE-INTERNALS -*-
-;;; $Id: widgets.lisp,v 1.19 2003/11/08 19:54:13 ihatchondo Exp $
+;;; $Id: widgets.lisp,v 1.20 2003/11/24 13:12:02 ihatchondo Exp $
;;;
;;; ECLIPSE. The Common Lisp Window Manager.
;;; Copyright (C) 2000, 2001, 2002 Iban HATCHONDO
@@ -664,6 +664,8 @@
(when (shaded-p application)
(shade application))
(setf iconic-p t wants-focus-p t)
+ (when (eq (xlib:window-map-state window) :unmapped)
+ (setf (wm-state window) 3))
(xlib:unmap-window window)
(when master
(xlib:unmap-window (widget-window master)))
More information about the Eclipse-cvs
mailing list