[Eclipse-cvs] CVS eclipse/lib
ihatchondo
ihatchondo at common-lisp.net
Sun Nov 4 22:27:19 UTC 2007
Update of /project/eclipse/cvsroot/eclipse/lib
In directory clnet:/tmp/cvs-serv15021
Modified Files:
netwm-manager.lisp
Log Message:
Update: according to 1.4 draft2, note that nothing has been done for the compositing manager selction owning, since this is a complete process to be handled rather than just a property ...
--- /project/eclipse/cvsroot/eclipse/lib/netwm-manager.lisp 2005/03/01 22:41:34 1.22
+++ /project/eclipse/cvsroot/eclipse/lib/netwm-manager.lisp 2007/11/04 22:27:19 1.23
@@ -1,9 +1,9 @@
;;; -*- Mode: Lisp; Package: EXTENDED-WINDOW-MANAGER-HINTS -*-
-;;; $Id: netwm-manager.lisp,v 1.22 2005/03/01 22:41:34 ihatchondo Exp $
+;;; $Id: netwm-manager.lisp,v 1.23 2007/11/04 22:27:19 ihatchondo Exp $
;;;
;;; This is the CLX support for the managing with gnome.
;;;
-;;; Copyright (C) 2002 Iban HATCHONDO
+;;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Iban HATCHONDO
;;; contact : hatchond at yahoo.fr
;;;
;;; This program is free software; you can redistribute it and/or
@@ -46,12 +46,12 @@
#:net-wm-icon-geometry #:net-wm-icon
#:net-wm-pid #:net-wm-handled-icons
#:net-wm-allowed-actions #:net-wm-strut-partial
- #:net-wm-user-time
+ #:net-wm-user-time #:net-wm-user-time-window
#:intern-atoms)
(:documentation
"This package implements the Extended Window Manager Hints
- (from Freedesktop.org). - version 1.3 (June 19, 2003) -
+ (from Freedesktop.org). - version 1.4 draft2 -
In order to use it, you should first call intern-atoms to be sure
all atoms are in the server."))
@@ -70,7 +70,7 @@
"_NET_ACTIVE_WINDOW" "_NET_WORKAREA"
"_NET_SUPPORTING_WM_CHECK" "_NET_VIRTUAL_ROOTS"
"_NET_DESKTOP_LAYOUT"
-
+
"_NET_RESTACK_WINDOW" "_NET_REQUEST_FRAME_EXTENTS"
"_NET_MOVERESIZE_WINDOW" "_NET_CLOSE_WINDOW"
"_NET_WM_MOVERESIZE"
@@ -84,24 +84,29 @@
"_NET_WM_ICON_GEOMETRY" "_NET_WM_ICON"
"_NET_WM_PID" "_NET_WM_HANDLED_ICONS"
"_NET_WM_USER_TIME" "_NET_FRAME_EXTENTS"
+ "_NET_WM_USER_TIME_WINDOW"
+ "_NET_WM_FULL_PLACEMENT"
;; "_NET_WM_MOVE_ACTIONS"
- "_NET_WM_WINDOW_TYPE_DESKTOP" "_NET_WM_STATE_MODAL"
- "_NET_WM_WINDOW_TYPE_DOCK" "_NET_WM_STATE_STICKY"
- "_NET_WM_WINDOW_TYPE_TOOLBAR" "_NET_WM_STATE_MAXIMIZED_VERT"
- "_NET_WM_WINDOW_TYPE_MENU" "_NET_WM_STATE_MAXIMIZED_HORZ"
- "_NET_WM_WINDOW_TYPE_UTILITY" "_NET_WM_STATE_SHADED"
- "_NET_WM_WINDOW_TYPE_SPLASH" "_NET_WM_STATE_SKIP_TASKBAR"
- "_NET_WM_WINDOW_TYPE_DIALOG" "_NET_WM_STATE_SKIP_PAGER"
- "_NET_WM_WINDOW_TYPE_NORMAL" "_NET_WM_STATE_HIDDEN"
- "_NET_WM_STATE_FULLSCREEN"
- "_NET_WM_STATE_ABOVE"
- "_NET_WM_STATE_BELOW"
- "_NET_WM_STATE_DEMANDS_ATTENTION"
-
+ "_NET_WM_WINDOW_TYPE_DESKTOP" "_NET_WM_STATE_MODAL"
+ "_NET_WM_WINDOW_TYPE_DOCK" "_NET_WM_STATE_STICKY"
+ "_NET_WM_WINDOW_TYPE_TOOLBAR" "_NET_WM_STATE_MAXIMIZED_VERT"
+ "_NET_WM_WINDOW_TYPE_MENU" "_NET_WM_STATE_MAXIMIZED_HORZ"
+ "_NET_WM_WINDOW_TYPE_UTILITY" "_NET_WM_STATE_SHADED"
+ "_NET_WM_WINDOW_TYPE_SPLASH" "_NET_WM_STATE_SKIP_TASKBAR"
+ "_NET_WM_WINDOW_TYPE_DIALOG" "_NET_WM_STATE_SKIP_PAGER"
+ "_NET_WM_WINDOW_TYPE_NORMAL" "_NET_WM_STATE_HIDDEN"
+ "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU" "_NET_WM_STATE_FULLSCREEN"
+ "_NET_WM_WINDOW_TYPE_POPUP_MENU" "_NET_WM_STATE_ABOVE"
+ "_NET_WM_WINDOW_TYPE_TOOLTIP" "_NET_WM_STATE_BELOW"
+ "_NET_WM_WINDOW_TYPE_NOTIFICATION" "_NET_WM_STATE_DEMANDS_ATTENTION"
+ "_NET_WM_WINDOW_TYPE_COMBO"
+ "_NET_WM_WINDOW_TYPE_DND"
+
"_NET_WM_ALLOWED_ACTIONS"
"_NET_WM_ACTION_MOVE"
"_NET_WM_ACTION_RESIZE"
+ "_NET_WM_ACTION_MINIMIZE"
"_NET_WM_ACTION_SHADE"
"_NET_WM_ACTION_STICK"
"_NET_WM_ACTION_MAXIMIZE_HORZ"
@@ -431,9 +436,9 @@
(defun net-wm-icon (window)
"Returns a vector of possible icons for the client. This is an vector
- of (unsigned-byte 32) ARGB with high byte being A, low byte being B.
- The first two cardinals are width, height. Data is in rows, left to right
- and top to bottom."
+ of (unsigned-byte 32) ARGB with high byte being A, low byte being B.
+ The first two cardinals are width, height. Data is in rows, left to right
+ and top to bottom."
(get-property window :_NET_WM_ICON :result-type 'vector))
;; _NET_WM_HANDLED_ICONS
@@ -478,6 +483,35 @@
(defsetf net-wm-user-time (window) (time)
`(change-property ,window :_NET_WM_USER_TIME (list ,time) :cardinal 32))
+;; _NET_WM_USER_TIME_WINDOW
+
+(defun net-wm-user-time-window (window &key window-id)
+ "This property contains the XID of a window on which the client sets
+ the _NET_WM_USER_TIME property. Clients should check whether the window
+ manager supports _NET_WM_USER_TIME_WINDOW and fall back to setting the
+ _NET_WM_USER_TIME property on the toplevel window if it doesn't.
+ Rationale: Storing the frequently changing _NET_WM_USER_TIME property
+ on the toplevel window itself causes every application that is interested
+ in any of the properties of that window to be woken up on every keypress,
+ which is particularly bad for laptops running on battery power.
+
+ - window (xlib:window): The window from which the property must be read.
+ - :window-id (boolean, default to nil): if t then the returned value is
+ an xlib:card29 window ID, otherwise an xilb:window is returned or nil if
+ the property is not set."
+ (car (get-window-property window :_NET_WM_USER_TIME_WINDOW (not window-id))))
+
+(defsetf net-wm-user-time-window (window &key window-id) (value)
+ "Sets the _NET_WM_USER_TIME property.
+ - window (xlib:window): The window from which the property must be read.
+ - value (or xlib:window xlib:card29): property value.
+ - :window-id (boolean, default to nil): indicates how the value must
+ be interpreted."
+ `(change-property ,window
+ :_NET_WM_USER_TIME_WINDOW
+ (list ,value) :window 32 :mode :replace
+ :transform (unless ,window-id #'xlib:window-id)))
+
;; _NET_FRAME_EXTENTS
(defun net-frame-extents (window)
More information about the Eclipse-cvs
mailing list