Commit a5047140 authored by Iban Hatchondo's avatar Iban Hatchondo
Browse files

Removed useless property-manager-window from the root object.

Instead standard-property-holder class is defined in widgets.lisp.
parent 56b23755
;;; -*- Mode: Lisp; Package: ECLIPSE-INTERNALS -*-
;;; $Id: eclipse.lisp,v 1.16 2004/01/12 12:56:11 ihatchondo Exp $
;;; $Id: eclipse.lisp,v 1.17 2004/01/15 15:35:34 ihatchondo Exp $
;;;
;;; ECLIPSE. The Common Lisp Window Manager.
;;; Copyright (C) 2002 Iban HATCHONDO
......@@ -123,6 +123,7 @@
:data (list managing-since
(xlib:find-atom display +xa-wm+)
(xlib:window-id manager)))
(make-instance 'standard-property-holder :window manager)
manager))
(defun init-gnome-compliance (display window manager)
......@@ -160,11 +161,11 @@
;; Specific for X display
(setf (xlib:display-error-handler display) #'default-handler
(xlib:display-after-function display) #'xlib:display-force-output)
(setf *root* (make-instance 'root :window root-window :manager manager)
(setf *root* (make-instance 'root :window root-window)
*root-window* root-window
(root-default-cursor *root*) (get-x-cursor *display* :xc_left_ptr)
(root-sm-conn *root*)
(connect-to-session-manager display-specification sm-client-id))
(root-sm-conn *root*) (connect-to-session-manager
display-specification sm-client-id))
;; init all gnome properties on root.
(init-gnome-compliance display root-window manager)
(ppm:initialize colormap)
......
;;; -*- Mode: Lisp; Package: ECLIPSE-INTERNALS -*-
;;; $Id: input.lisp,v 1.31 2004/01/20 21:38:11 ihatchondo Exp $
;;; $Id: input.lisp,v 1.32 2004/02/12 23:30:22 ihatchondo Exp $
;;;
;;; ECLIPSE. The Common Lisp Window Manager.
;;; Copyright (C) 2000, 2001, 2002 Iban HATCHONDO
......@@ -46,14 +46,6 @@
(register-all-mouse-strokes)))
(:pointer nil))))
(defmethod event-process ((event selection-clear) null-widget)
;; handle the selection clear to stop window managing (see ICCCM 2.8).
(declare (ignorable null-widget))
(with-slots (event-window selection) event
(and (xlib:window-equal event-window (root-manager *root*))
(string= selection +xa-wm+)
(error 'exit-eclipse))))
(defmethod event-process ((ev configure-request) (widget base-widget))
(declare (ignorable widget))
(with-slots (window value-mask x y width height above-sibling stack-mode) ev
......@@ -82,6 +74,12 @@
;; Specialized ones.
(defmethod event-process ((e selection-clear) (w standard-property-holder))
;; handle the selection clear to stop window managing (see ICCCM 2.8).
(declare (ignorable w))
(when (string= (event-selection e) +xa-wm+)
(error 'exit-eclipse)))
;;; Events for the root window
(defmethod event-process ((event map-request) (root root))
......
;;; -*- Mode: Lisp; Package: User -*-
;;; $Id: package.lisp,v 1.14 2004/01/15 15:35:34 ihatchondo Exp $
;;; $Id: package.lisp,v 1.15 2004/02/12 23:30:22 ihatchondo Exp $
;;;
;;; This file is part of Eclipse.
;;; Copyright (C) 2002 Iban HATCHONDO
......@@ -280,7 +280,6 @@
"ROOT-DECORATION-THEME" ;generic function
"ROOT-DEFAULT-CURSOR" ;generic function
"ROOT-DESKTOP" ;generic function
"ROOT-MANAGER" ;generic function
"ROOT-MOVE-STATUS" ;generic function
"ROOT-RESIZE-STATUS" ;generic function
"SET-FOCUS" ;generic function
......
;;; -*- Mode: Lisp; Package: ECLIPSE-INTERNALS -*-
;;; $Id: widgets.lisp,v 1.33 2004/01/23 15:38:16 ihatchondo Exp $
;;; $Id: widgets.lisp,v 1.34 2004/02/12 23:30:22 ihatchondo Exp $
;;;
;;; ECLIPSE. The Common Lisp Window Manager.
;;; Copyright (C) 2000, 2001, 2002 Iban HATCHONDO
......@@ -74,11 +74,6 @@
(:documentation "Returns T if one of the state :win_state_fixed_position
:_net_wm_state_sticky is set for the widget."))
(defgeneric root-manager (widget)
(:documentation
"Returns the root-window child that is the place holder for indicating that
a netwm manager is present."))
(defgeneric repaint (widget theme-name focus)
(:documentation
"This method is dedicated to widget repaint such as every buttons, icons,
......@@ -104,16 +99,12 @@
(define-null-method close-widget widget)
(define-null-method focus-widget widget timestamp)
(define-null-method repaint widget theme-name focus)
(define-null-method root-manager widget)
(define-null-method shaded-p widget)
(define-null-method widget-position-fix-p widget))
(defmethod remove-widget ((widget base-widget))
(remhash (widget-window widget) *widget-table*))
(defmethod root-manager ((widget base-widget))
(root-manager (lookup-widget (xlib:drawable-root (widget-window widget)))))
(defmethod put-on-top ((widget base-widget))
(setf (xlib:window-priority (widget-window widget)) :above))
......@@ -130,6 +121,8 @@
(declaim (inline lookup-widget))
(defclass standard-property-holder (base-widget) ())
;;;; The ROOT
(defclass root (base-widget)
......@@ -138,7 +131,6 @@
(default-cursor :initform nil :accessor root-default-cursor)
(current-active-widget :initform nil)
(decoration-theme :initform nil :accessor root-decoration-theme)
(properties-manager-window :initarg :manager :reader root-manager)
(menu1 :initform nil)
(menu2 :initform nil)
(menu3 :initform nil)
......
;;; -*- Mode: Lisp; Package: ECLIPSE-INTERNALS -*-
;;; $Id: wm.lisp,v 1.36 2004/02/13 18:23:16 ihatchondo Exp $
;;; $Id: wm.lisp,v 1.37 2004/02/16 11:01:24 ihatchondo Exp $
;;;
;;; ECLIPSE. The Common Lisp Window Manager.
;;; Copyright (C) 2000, 2001, 2002 Iban HATCHONDO
......@@ -823,7 +823,8 @@
(close-sm-connection *root* :exit-p nil))
(xlib:display-finish-output *display*)
(setf (xlib:window-event-mask *root-window*) '())
(xlib:destroy-window (root-manager *root*))
(let ((win (netwm:net-supporting-wm-check *root-window*)))
(xlib:destroy-window win))
(xlib:display-finish-output *display*)
(return))))
(exit-eclipse (c)
......
Markdown is supported
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