about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2018-11-03 Hide minibuffer upon receiving any eventAdrián Medraño Calvo2-2/+14
* exwm-input.el (exwm-input--event-hook): New variable. (exwm-input--on-ButtonPress, exwm-input--on-KeyPress): Run `exwm-input--event-hook'. * exwm-workspace.el (exwm-workspace--init, exwm-workspace--exit): Hide minibuffer upon noticing an event.
2018-11-03 Stop hiding the minibuffer when a message is being displayedAdrián Medraño Calvo1-1/+12
* exwm-workspace.el (exwm-workspace--echo-area-maybe-clear): New function that postpones hiding the minibuffer when it's displaying a message. (exwm-workspace--on-echo-area-dirty): Use it.
2018-10-24 Merge branch 'medranocalvo/fix-input-mode-after-fullscreen' into externals/exwmAdrián Medraño Calvo3-14/+12
2018-10-21 Restore keyboard grabbing after exiting fullscreenAdrián Medraño Calvo3-2/+8
Recover the difference between the input mode selected by the user and actual one, which might be transient. This was inadvertently removed in recent changes. * exwm-core.el (exwm--selected-input-mode): New variable. * exwm-input.el (exwm-input-grab-keyboard) (exwm-input-release-keyboard): Use it. * exwm-layout.el (exwm-layout-unset-fullscreen): Return to the selected input mode.
2018-10-21 Do away with `exwm-input--input-mode'Adrián Medraño Calvo2-13/+5
* exwm-input.el (exwm-input--update-mode-line): Remove. (exwm-input--on-ButtonPress, exwm-input--on-KeyPress) (exwm-input--update-mode-line, exwm-input-toggle-keyboard): Use `exwm--input-mode' variable directly.
2018-10-21 Fix single workspace invisible problem with XephyrChris Feng1-3/+5
* exwm-workspace.el (exwm-workspace-switch): On startup EXWM switches to workspace 0 by force so the rest code can not assume the frames before and after a switch different.
2018-10-14 Bump version to 0.20Chris Feng1-2/+2
2018-10-14 Merge branch 'medranocalvo/reduce-workspace-switch-flicker' into externals/exwmChris Feng1-1/+1
2018-10-14 Merge branch 'medranocalvo/fix-minibuffer-only-focus-jump' into externals/exwmChris Feng1-11/+1
2018-10-08 Reduce flicker when switching workspacesAdrián Medraño Calvo1-1/+1
* exwm-workspace.el (exwm-workspace-switch): Hide the old workspace after having shown the new one when switching to avoid flicker.
2018-10-08 Support binding mouse events in line-modeAdrián Medraño Calvo1-24/+61
* exwm-input.el (exwm-input--event-passthrough-p): Predicate checking whether an event should be forwarded to Emacs. (exwm-input--on-KeyPress-line-mode): Use it. * exwm-input.el (exwm-input--cache-event): Protect against translations swallow the event. * exwm-input.el (exwm-input--on-ButtonPress-line-mode) (exwm-input--on-ButtonPress-char-mode): New functions. (exwm-input--on-ButtonPress): Forward bound mouse events to Emacs when in line-mode.
2018-10-08 Fix focus jumps with minibuffer-only framesAdrián Medraño Calvo1-11/+1
* exwm-input.el (exwm-input--update-focus): Focus the minibuffer's frame, which is different than that of the `minibuffer-selected-window' on minibuffer-only frames. (exwm-input--on-minibuffer-setup, exwm-input--init) (exwm-input-exit): Remove unneeded function.
2018-10-08 Simplify input handlingAdrián Medraño Calvo3-26/+33
No functional change. * exwm-input.el (exwm-input--current-input-mode): New function indicating keyboard input mode. (exwm-input--on-KeyPress, exwm-input--update-mode-line): Use `exwm-input--current-input-mode'. (exwm-input-grab-keyboard, exwm-input-release-keyboard) (exwm-input--update-mode-line): Simplify. * exwh-core.el (exwm--on-KeyPress): Remove variable, use `exwm--keyboard-grabbed' and `exwm-input--current-input-mode' instead.
2018-09-16 Simplify debugging and fix dynamic-scoping `eval'Chris Feng2-15/+7
* exwm-core.el (exwm-debug): New global minor mode to replace `exwm-debug-on' and `exwm-debug-toggle'. * exwm-manage.el (exwm-manage--get-configurations): Use lexical-scoping `eval'.
2018-09-09 Merge branch 'medranocalvo/restack-after-map' into externals/exwmChris Feng1-0/+17
2018-09-09 Merge branch 'medranocalvo/xcb-logging' into externals/exwmChris Feng2-129/+25
2018-09-09 ; Minor fixes for Calvo's patch set.Chris Feng1-8/+5
2018-09-04 Restack X-Windows after being mapped to ensure EnterNotify events fireAdrián Medraño Calvo1-0/+17
* exwm-manage.el (exwm-manage--on-MapNotify, exwm-manage--init): Restack X windows after being mapped in order to ensure they receive an EnterNotify event (does not happen under XQuartz).
2018-09-04 Command for toggling debugging outputAdrián Medraño Calvo1-1/+12
* exwm-core.el (exwm-debug-toggle): New function for toggling debugging output. (exwm-mode-map): Use it.
2018-09-04 Substitute overlapping keybindingsAdrián Medraño Calvo1-2/+2
* exwm-core.el (exwm-mode-map): Change keybindings to avoid overlap.
2018-09-04 Use XELB's debugging facilitiesAdrián Medraño Calvo2-126/+14
* exwm-debug.el: Move to XELB as `xcb-debug'. * exwm-core.el (exwm--log): Use it. (exwm--log): Support switching debugging output at runtime.
2018-09-02 Explicitly specify frame for cursor warping conditionalJames Ferguson1-1/+1
2018-09-02 Fix cursor warping conditional for cursor left of frameJames Ferguson1-1/+3
2018-08-30 Refresh layout after activating/deactivating workspacesAdrián Medraño Calvo2-5/+7
* exwm-workspace.el (exwm-workspace--set-active): Refresh layout after activating or deactivating workspaces. * exwm-layout.el (exwm-layout--refresh-workspace): Hide X windows on inactive workspaces.
2018-08-19 Merge branch 'medranocalvo/fix-x-window-vanish' into externals/exwmChris Feng1-53/+72
2018-08-19 Merge branch 'medranocalvo/exwm-log-buffer' into externals/exwmChris Feng7-7/+202
2018-08-19 ; Comment layout algorithm.Adrián Medraño Calvo1-6/+12
2018-08-19 Consistently name helper windowsAdrián Medraño Calvo2-22/+27
* exwm.el (exwm--init-icccm-ewmh): Avoid naming the root window. (exwm--wmsn-acquire): Use the symbol name in the window name. * exwm-systemtray.el (exwm-systemtray--embedder-window): Rename `exwm-systemtray--embedder' consistency. (exwm-systemtray--init): Use symbol names in the window name.
2018-08-19 ; Unimportant tweaksChris Feng3-20/+14
2018-08-16 Split exwm-layout--refresh into three functionsAdrián Medraño Calvo1-46/+57
* exwm-layout.el (exwm-layout--refresh): Split in three functions for clarity. (exwm-layout--refresh-workspace, exwm-layout--refresh-other) (exwm-layout--refresh-floating): New functions.
2018-08-16 Don't assume order of `get-buffer-window-list' resultsAdrián Medraño Calvo1-2/+4
It only guarantees that the first result *if* the buffer appears on the selected window.
2018-08-16 Use more explicit argument for excluding minibuffersAdrián Medraño Calvo1-4/+4
* exwm-layout.el (exwm-layout--refresh): Use a more intuitive value for specifying exclusion of minibuffers.
2018-08-16 Consider windows of the frame being refreshed, not the selected one at the ↵Adrián Medraño Calvo1-1/+1
time exwm-layout--refresh runs * exwm-layout.el (exwm-layout--refresh): Consider windows of the frame being refreshed instead of the selected frame.
2018-08-13 Trace more functionsAdrián Medraño Calvo6-1/+72
2018-08-13 Commands for interacting with the log buffer remotelyAdrián Medraño Calvo2-0/+17
* exwm-debug.el (exwm-debug--clear, exwm-debug--mark): New functions.
2018-08-13 Print log output to an EXWM-specific messages bufferAdrián Medraño Calvo2-3/+116
Using `message' to log debugging information is cumbersome, as the output appears constantly in the minibuffer, obscuring prompts and other information. In the case of long messages, it might resize the minibuffer, which causes EXWM to perform additional actions due to the log output. This change reimplements EXWM debug logging using a separate buffer (*EXWM-DEBUG*). Basic functionality, like scrolling when point is at the end of the buffer is maintained. * exwm-core.el (exwm--log): Use `exwm-debug--message' instead of `message'. Prefix all messages with the name of the function. Make FORMAT-STRING argument optional. * exwm-debug.el: New file. (exwm-debug-buffer): New variable holding the buffer where debug messages are output to. (exwm-debug--message): New function printing a message to `exwm-debug-buffer'. (exwm-debug--backtrace): New function printing a backtrace.
2018-08-12 Avoid using `set-mouse-position' to warp pointerChris Feng1-3/+12
* exwm-workspace.el (exwm-workspace-switch): Warp pointer with the WarpPointer request.
2018-08-12 Exclude irrelevant X windows when refreshingChris Feng1-1/+2
* exwm-layout.el (exwm-layout--refresh): Only check X windows on the workspace being examined.
2018-08-05 When mapping an X window check if it's on an active workspaceChris Feng1-4/+7
* exwm-layout.el (exwm-layout--refresh): Avoid mapping X windows on inactive workspaces.
2018-07-29 Fix issues with destroying full screen X windowsChris Feng1-0/+4
* exwm-manage.el (exwm-manage--unmanage-window): Set the Emacs window of an full screen X window as non-dedicated before killing its buffer so as not to cause other side effects.
2018-07-18 Bump version to 0.19Chris Feng1-2/+2
2018-07-15 Fix XTerm crash on startupChris Feng1-10/+12
* exwm-input.el (exwm-input--set-focus): Applications like XTerm crashes on receiving WM_TAKE_FOCUS so only send it to X windows accepting it.
2018-07-15 ; Use `derived-mode-p'.Chris Feng6-26/+27
2018-07-15 Add support for automatic cursor warpingChris Feng1-0/+15
* exwm-workspace.el (exwm-workspace-warp-cursor): New user option. (exwm-workspace-switch): Automatically warp cursor after workspace switch.
2018-07-15 Shrink Emacs frames with X requestChris Feng1-11/+7
* exwm-manage.el (exwm-manage--on-ConfigureRequest): There's a problem in shrinking Emacs frames with `set-frame-width' and `set-frame-height'. Use `exwm--set-geometry' instead.
2018-07-15 Also send a WM_TAKE_FOCUS when setting focus with SetInputFocusChris Feng1-30/+21
* exwm-input.el (exwm-input--set-focus): Send an extra WM_TAKE_FOCUS event to workaround the key replay issue with Xorg 1.20 when keyboard is grabbed.
2018-07-15 Revert "Grab & Replay key events with XI2 and XTEST"Chris Feng1-222/+85
This reverts commit 0680be104f9394e39dd55b5c4e33b9b7e4e77926.
2018-06-18 Grab & Replay key events with XI2 and XTESTChris Feng1-85/+222
; A change has been made in Xorg server 1.20 that replaying a key ; event with keyboard grabbed would generate extra focus change and ; enter/leave events. This basically breaks line-mode for apps like ; Firefox. This commit reimplements the grab & replay functionality ; with XI2 and XTEST. * exwm-input.el (exwm-input--devices): New variable for caching slave keyboards. (exwm-input--update-devices): Update it and re-grab keys if necessary. (exwm-input--on-Hierarchy): Event listener for the Hierarchy event that would in turn call `exwm-input--update-devices' to update the cache. * exwm-input.el (exwm-input--on-KeyPress): Use XI2 KeyPress events. (exwm-input--on-KeyRelease): Event listener for the KeyRelease events. (exwm-input--grab-global-prefix-keys): Use XI2 and also select KeyRelease events. (exwm-input--on-KeyPress-line-mode): Use XI2 KeyPress events and replay key events with XTEST. (exwm-input--on-KeyPress-char-mode, exwm-input--grab-keyboard) (exwm-input--release-keyboard): Use XI2 KeyPress events. * exwm-input.el (exwm-input--init): Initialize the XI2 and XTEST extensions; add listeners for XI2 KeyPress, KeyRelease and Hierarchy events.
2018-05-27 Fix systemtray position when menu-bar / tool-bar is enabledChris Feng1-6/+2
* exwm-systemtray.el (exwm-systemtray--on-workspace-switch) (exwm-systemtray--on-randr-refresh): Take menu-bar / tool-bar into account when placing systemtray.
2018-05-20 Provide a fallback value for X window geometryChris Feng2-4/+10
* exwm-manage.el (exwm-manage--update-geometry): Ditto.