Allow user to hide floating X windows

* exwm-core.el (exwm-mode-map): Add a new key to hide floating X windows.
* exwm-floating.el (exwm-floating-hide): New command to hide a floating X
window.

* exwm-workspace.el: Fix a compile warning.
This commit is contained in:
Chris Feng 2016-02-25 12:41:35 +08:00
parent db6d26c662
commit 5a39c5c2fa
3 changed files with 18 additions and 1 deletions

View file

@ -121,6 +121,7 @@
(defvar exwm-mode-map (defvar exwm-mode-map
(let ((map (make-sparse-keymap))) (let ((map (make-sparse-keymap)))
(define-key map "\C-c\C-f" #'exwm-layout-set-fullscreen) (define-key map "\C-c\C-f" #'exwm-layout-set-fullscreen)
(define-key map "\C-c\C-h" #'exwm-floating-hide)
(define-key map "\C-c\C-k" #'exwm-input-release-keyboard) (define-key map "\C-c\C-k" #'exwm-input-release-keyboard)
(define-key map "\C-c\C-m" #'exwm-workspace-move-window) (define-key map "\C-c\C-m" #'exwm-workspace-move-window)
(define-key map "\C-c\C-q" #'exwm-input-send-next-key) (define-key map "\C-c\C-q" #'exwm-input-send-next-key)

View file

@ -284,6 +284,22 @@
(exwm-floating--unset-floating exwm--id) (exwm-floating--unset-floating exwm--id)
(exwm-floating--set-floating exwm--id)))) (exwm-floating--set-floating exwm--id))))
;;;###autoload
(defun exwm-floating-hide ()
"Hide the current floating X window (which would show again when selected)."
(interactive)
(when (and (eq major-mode 'exwm-mode)
exwm--floating-frame)
;; Put this floating X window at bottom.
(xcb:+request exwm--connection
(make-instance 'xcb:ConfigureWindow
:window exwm--container
:value-mask xcb:ConfigWindow:StackMode
:stack-mode xcb:StackMode:Below))
;; FIXME: Should it be put into iconic state?
(xcb:flush exwm--connection)
(select-frame-set-input-focus exwm-workspace--current)))
(define-obsolete-function-alias 'exwm-floating-hide-mode-line (define-obsolete-function-alias 'exwm-floating-hide-mode-line
'exwm-layout-hide-mode-line "25.1" "Hide mode-line of a floating frame.") 'exwm-layout-hide-mode-line "25.1" "Hide mode-line of a floating frame.")
(define-obsolete-function-alias 'exwm-floating-show-mode-line (define-obsolete-function-alias 'exwm-floating-show-mode-line

View file

@ -232,7 +232,7 @@ The optional FORCE option is for internal use only."
(defvar exwm-floating-border-width) (defvar exwm-floating-border-width)
(defvar exwm-floating-border-color) (defvar exwm-floating-border-color)
(declare-function exwm-layout--show "exwm-layout.el" (id)) (declare-function exwm-layout--show "exwm-layout.el" (id &optional window))
(declare-function exwm-layout--hide "exwm-layout.el" (id)) (declare-function exwm-layout--hide "exwm-layout.el" (id))
(declare-function exwm-layout--refresh "exwm-layout.el") (declare-function exwm-layout--refresh "exwm-layout.el")