[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/exwm 22ee3e6: Adjust default prefix keys; advice x-crea
From: |
Chris Feng |
Subject: |
[elpa] externals/exwm 22ee3e6: Adjust default prefix keys; advice x-create-frame |
Date: |
Wed, 23 Sep 2015 04:55:30 +0000 |
branch: externals/exwm
commit 22ee3e6c5ffdc73f231e7125f48827dc1d44237f
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
Adjust default prefix keys; advice x-create-frame
* exwm-input.el (exwm-input--on-KeyPress-line-mode, exwm-input-prefix-keys):
Allow users to disable 'C-c' prefixed keys; Add 'C-c' to / remove 'M-!'
from the default prefix keys.
* exwm-workspace.el (exwm-workspace--x-create-frame, exwm-workspace--init):
Advice `x-create-frame' to prevent it from hanging EXWM, making e.g.
speedbar working.
* exwm-floating.el (exwm-floating--set-floating): Remove the now unnecessary
request that sets override-redirect on floating frames.
---
exwm-floating.el | 5 -----
exwm-input.el | 3 +--
exwm-workspace.el | 14 ++++++++++++++
3 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/exwm-floating.el b/exwm-floating.el
index 36a658a..924f7cf 100644
--- a/exwm-floating.el
+++ b/exwm-floating.el
@@ -141,11 +141,6 @@
(setq x (/ (- display-width width) 2)
y (/ (- display-height height) 2))))))
(exwm--log "Floating geometry (corrected): %dx%d%+d%+d" width height x y)
- ;; Set OverrideRedirect on this frame
- (xcb:+request exwm--connection
- (make-instance 'xcb:ChangeWindowAttributes
- :window outer-id :value-mask xcb:CW:OverrideRedirect
- :override-redirect 1))
;; Set event mask
(xcb:+request exwm--connection
(make-instance 'xcb:ChangeWindowAttributes
diff --git a/exwm-input.el b/exwm-input.el
index eb28792..9645182 100644
--- a/exwm-input.el
+++ b/exwm-input.el
@@ -209,7 +209,7 @@ It's updated in several occasions, and only used by
`exwm-input--set-focus'.")
(defvar exwm-input--global-prefix-keys nil
"List of prefix keys of global key bindings.")
(defvar exwm-input-prefix-keys
- '(?\C-x ?\C-u ?\C-h ?\M-x ?\M-` ?\M-! ?\M-& ?\M-:)
+ '(?\C-c ?\C-x ?\C-u ?\C-h ?\M-x ?\M-` ?\M-& ?\M-:)
"List of prefix keys EXWM should forward to Emacs when in line-mode.")
(defvar exwm-input--simulation-keys nil "Simulation keys in line-mode.")
(defvar exwm-input--simulation-prefix-keys nil
@@ -259,7 +259,6 @@ It's updated in several occasions, and only used by
`exwm-input--set-focus'.")
(setq event (xcb:keysyms:keysym->event keysym state))
(or exwm-input--during-key-sequence
(setq minibuffer-window (active-minibuffer-window))
- (eq event ?\C-c) ;mode-specific key
(memq event exwm-input--global-prefix-keys)
(memq event exwm-input-prefix-keys)
(memq event exwm-input--simulation-prefix-keys)))
diff --git a/exwm-workspace.el b/exwm-workspace.el
index 03972b4..566ea53 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -263,6 +263,18 @@ The optional FORCE option is for internal use only."
(setq newname (format "%s<%d>" basename (cl-incf counter))))
(rename-buffer (concat (and hidden " ") newname))))
+(defun exwm-workspace--x-create-frame (orig-fun params)
+ "Set override-redirect on the frame created by `x-create-frame'."
+ (let ((frame (funcall orig-fun params)))
+ (xcb:+request exwm--connection
+ (make-instance 'xcb:ChangeWindowAttributes
+ :window (string-to-number
+ (frame-parameter frame 'outer-window-id))
+ :value-mask xcb:CW:OverrideRedirect
+ :override-redirect 1))
+ (xcb:flush exwm--connection)
+ frame))
+
(defun exwm-workspace--init ()
"Initialize workspace module."
(cl-assert (and (< 0 exwm-workspace-number) (>= 10 exwm-workspace-number)))
@@ -306,6 +318,8 @@ The optional FORCE option is for internal use only."
:window window-id :value-mask xcb:CW:EventMask
:event-mask xcb:EventMask:SubstructureRedirect))))
(xcb:flush exwm--connection)
+ ;; We have to advice `x-create-frame' or every call to it would hang EXWM
+ (advice-add 'x-create-frame :around #'exwm-workspace--x-create-frame)
;; We have to delay making the frame visible until the
;; override-redirect flag has been set.
(select-frame-set-input-focus (car exwm-workspace--list))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/exwm 22ee3e6: Adjust default prefix keys; advice x-create-frame,
Chris Feng <=