Commit 3dc754b8 authored by Iban Hatchondo's avatar Iban Hatchondo
Browse files

We now (un)map the application window and the master window (if it exists)...

We now (un)map the application window and the master window (if it exists) when mapping/unmapping a desktop.
parent 062f740f
;;; -*- Mode: Lisp; Package: ECLIPSE-INTERNALS -*-
;;; $Id: input.lisp,v 1.20 2003/10/12 21:59:17 ihatchondo Exp $
;;; $Id: input.lisp,v 1.21 2003/11/13 11:12:27 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))
......
;;; -*- Mode: Lisp; Package: ECLIPSE-INTERNALS -*-
;;; $Id: virtual-screen.lisp,v 1.11 2003/11/13 11:12:28 ihatchondo Exp $
;;; $Id: virtual-screen.lisp,v 1.12 2003/11/19 10:29:08 ihatchondo Exp $
;;;
;;;Copyright (C) 2002 Iban HATCHONDO
;;; contact : hatchond@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*
......
;;; -*- Mode: Lisp; Package: ECLIPSE-INTERNALS -*-
;;; $Id: widgets.lisp,v 1.18 2003/11/01 09:41:49 ihatchondo Exp $
;;; $Id: widgets.lisp,v 1.19 2003/11/08 19:54:13 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)))
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment