mirror of
https://github.com/emacs-exwm/exwm.git
synced 2024-11-23 13:07:59 +01:00
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:
parent
db6d26c662
commit
5a39c5c2fa
3 changed files with 18 additions and 1 deletions
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue