From a147320f8b16029e212f99dbae77de6c883271ea Mon Sep 17 00:00:00 2001 From: Philippe Brochard Date: Sat, 5 Apr 2014 01:33:57 +0200 Subject: [PATCH] Add a menu binding to retrieve existing windows not already managed by CLFSWM --- src/clfswm-internal.lisp | 4 +++- src/clfswm-util.lisp | 3 +++ src/menu-def.lisp | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/clfswm-internal.lisp b/src/clfswm-internal.lisp index dc6f150..ca8b176 100644 --- a/src/clfswm-internal.lisp +++ b/src/clfswm-internal.lisp @@ -1665,7 +1665,9 @@ managed." (all-frame-windows (get-all-frame-windows))) (dolist (win (xlib:query-tree (xlib:screen-root screen))) (unless (or (child-member win all-windows) - (child-member win all-frame-windows)) + (child-member win all-frame-windows) + (child-equal-p win *no-focus-window*) + (child-equal-p win *sm-window*)) (let ((map-state (xlib:window-map-state win)) (wm-state (window-state win))) (unless (or (eql (xlib:window-override-redirect win) :on) diff --git a/src/clfswm-util.lisp b/src/clfswm-util.lisp index f5cefac..e525829 100644 --- a/src/clfswm-util.lisp +++ b/src/clfswm-util.lisp @@ -457,6 +457,9 @@ Write (defparameter *contrib-dir* \"/usr/local/lib/clfswm/\") in ~A.~%" (show-all-children t))) +(defun retrieve-existing-window () + "Retrieve existing windows not already managed by CLFSWM." + (process-existing-windows *screen*)) diff --git a/src/menu-def.lisp b/src/menu-def.lisp index 005e128..997d8ea 100644 --- a/src/menu-def.lisp +++ b/src/menu-def.lisp @@ -87,6 +87,7 @@ (add-menu-key 'child-menu "n" 'ensure-unique-number) (add-menu-key 'child-menu "Delete" 'delete-current-child) (add-menu-key 'child-menu "X" 'remove-current-child) +(add-menu-key 'child-menu "R" 'retrieve-existing-window) (add-menu-key 'child-menu "h" 'hide-current-child) (add-menu-key 'child-menu "u" 'unhide-a-child) (add-menu-key 'child-menu "f" 'unhide-a-child-from-all-frames) -- 2.11.4.GIT