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…
	
	Add table
		Add a link
		
	
		Reference in a new issue