[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