mirror of
https://github.com/emacs-exwm/exwm.git
synced 2024-11-27 14:57:59 +01:00
Minor fixes
* exwm-core.el (exwm-mode-menu, exwm-mode-map): Add workspace attach/detach commands. * exwm-workspace.el (exwm-workspace--add-frame-as-workspace): Cleanup containers. * exwm-workspace.el (exwm-workspace--update-ewmh-props): Create the frame in size 1x1 (Lucid build does no support zero sized frames). * exwm-workspace.el (exwm-workspace--post-init): Reset the 'fullscreen' frame parameter for emacsclient.
This commit is contained in:
parent
6571bb5761
commit
f48b8eafb0
2 changed files with 24 additions and 4 deletions
|
@ -199,6 +199,12 @@
|
|||
["Swap workspaces" exwm-workspace-swap]
|
||||
["Move X window to" exwm-workspace-move-window :keys "C-c C-m"]
|
||||
["Move X window from" exwm-workspace-switch-to-buffer]
|
||||
["Attach minibuffer" exwm-workspace-attach-minibuffer
|
||||
(and (exwm-workspace--minibuffer-own-frame-p)
|
||||
(not (exwm-workspace--minibuffer-attached-p)))]
|
||||
["Detach minibuffer" exwm-workspace-detach-minibuffer
|
||||
(and (exwm-workspace--minibuffer-own-frame-p)
|
||||
(exwm-workspace--minibuffer-attached-p))]
|
||||
["Switch workspace" exwm-workspace-switch]
|
||||
;; Place this entry at bottom to avoid selecting others by accident.
|
||||
("Switch to" :filter
|
||||
|
|
|
@ -1164,6 +1164,17 @@ Please check `exwm-workspace--minibuffer-own-frame-p' first."
|
|||
;; If the current workspace is deleted, switch to next one.
|
||||
(when (eq frame exwm-workspace--current)
|
||||
(exwm-workspace-switch nextw)))
|
||||
;; Reparent out the frame.
|
||||
(xcb:+request exwm--connection
|
||||
(make-instance 'xcb:ReparentWindow
|
||||
:window (frame-parameter frame 'exwm-outer-id)
|
||||
:parent exwm--root
|
||||
:x 0
|
||||
:y 0))
|
||||
;; Destroy the containers.
|
||||
(xcb:+request exwm--connection
|
||||
(make-instance 'xcb:DestroyWindow
|
||||
:window (frame-parameter frame 'exwm-workspace)))
|
||||
;; Update EWMH properties.
|
||||
(exwm-workspace--update-ewmh-props)
|
||||
;; Update switch history.
|
||||
|
@ -1234,7 +1245,7 @@ applied to all subsequently created X frames."
|
|||
(setq exwm-workspace--minibuffer
|
||||
(make-frame '((window-system . x) (minibuffer . only)
|
||||
(left . 10000) (right . 10000)
|
||||
(width . 0) (height . 0)
|
||||
(width . 1) (height . 1)
|
||||
(internal-border-width . 0)
|
||||
(client . nil))))
|
||||
;; Remove/hide existing frames.
|
||||
|
@ -1351,9 +1362,12 @@ applied to all subsequently created X frames."
|
|||
|
||||
(defun exwm-workspace--post-init ()
|
||||
"The second stage in the initialization of the workspace module."
|
||||
;; Make the workspaces fullscreen.
|
||||
(dolist (i exwm-workspace--list)
|
||||
(set-frame-parameter i 'fullscreen 'fullboth))
|
||||
(when exwm-workspace--client
|
||||
;; Reset the 'fullscreen' frame parameter to make emacsclinet frames
|
||||
;; fullscreen (even without the RandR module enabled).
|
||||
(dolist (i exwm-workspace--list)
|
||||
(set-frame-parameter i 'fullscreen nil)
|
||||
(set-frame-parameter i 'fullscreen 'fullboth)))
|
||||
;; Wait until all workspace frames are resized.
|
||||
(with-timeout (1)
|
||||
(while (< exwm-workspace--fullscreen-frame-count (exwm-workspace--count))
|
||||
|
|
Loading…
Reference in a new issue