about summary refs log tree commit diff
path: root/exwm-cm.el (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2017-11-19 Free unused X resourcesChris Feng1-5/+11
* exwm-cm.el (exwm-cm--paint-tree): Make sure the clip can be destroyed even the X window is in full screen mode. (exwm-cm--paint-transparent, exwm-cm--paint-background): Free pixmaps after creating pictures.
2017-11-19 Correct the detection of emacsclientChris Feng1-5/+4
* exwm.el (exwm-enable): Use `daemonp' instead of `display-graphic-p'.
2017-11-09 Be more precise when choosing the init hookChris Feng1-2/+5
* exwm.el (exwm-enable): Run `exwm-init' in `after-make-frame-functions' only for emacsclient and `window-setup-hook' only for ordinary sessions.
2017-11-09 Update the workarounds for `unread-command-events'Chris Feng1-6/+2
* exwm-input.el (exwm-input--unread-event): Update the note. (exwm-input-send-next-key): Remove the workaround.
2017-11-05 Fix for "Selecting deleted buffer" exceptionRam Krishnan1-15/+7
2017-11-05 Filter out events relating to temp buffersChris Feng1-3/+6
* exwm-input.el (exwm-input--on-buffer-list-update): Filter out events relating to temp buffers by detecting if temp-buffer is present.
2017-10-09 Fix systemtray applications crash when restartingChris Feng1-0/+12
* exwm-systemtray.el (exwm-systemtray--exit): Reparent out the tray embedder to protect tray icons.
2017-09-10 Avoid comparing raw button eventsChris Feng1-26/+6
* exwm-input.el (exwm-input--move-keysym, exwm-input--move-mask) (exwm-input--resize-keysym, exwm-input--resize-mask): Removed. (exwm-input--on-ButtonPress): Compare using Emacs events rather than raw X11 events or it would fail with num-lock no. (exwm-input--init): No longer cache raw keysym/state for button events.
2017-08-31 Update systemtray when initializingChris Feng1-1/+4
* exwm-systemtray.el (exwm-systemtray--init): Systemtray is not placed correctly when there's a panel launched before EXWM.
2017-08-31 Avoid reusing dedicated windowChris Feng2-8/+2
* exwm-floating.el (exwm-floating--unset-floating): * exwm-manage.el (exwm-manage--on-MapRequest): Do not select a dedicated window for displaying a buffer.
2017-08-02 Bump version to 0,15Chris Feng1-1/+1
2017-07-16 Allow customizing workspace indexesChris Feng1-1/+5
* exwm-workspace.el (exwm-workspace-index-map): New variable for customizing workspace indexes. (exwm-workspace--update-switch-history): Use it.
2017-05-31 Allow switching to a workspace by selecting one X window on itChris Feng1-2/+12
* exwm-workspace.el (exwm-workspace-switch-to-buffer): Only allows it when `exwm-layout-show-all-buffers' is nil.
2017-05-30 Fix X display name comparisonChris Feng1-2/+5
* exwm-workspace--add-frame-as-workspace (exwm-workspace--add-frame-as-workspace): Manually compare X display names as there's no built-in function handles this correctly.
2017-05-07 Bump version to 0.14Chris Feng1-1/+1
2017-05-07 Force repositioning floating Emacs framesChris Feng1-8/+9
* exwm-floating.el (exwm-floating--set-floating): Ditto.
2017-04-23 ; Do not cache events for non-`exwm-mode' buffersChris Feng1-3/+5
2017-04-16 Avoid comparing X display namesChris Feng1-2/+2
* exwm-workspace.el (exwm-workspace--add-frame-as-workspace): An X display name set by XELB can be different from (but equivalent with) the one set by Emacs.
2017-04-10 Only add graphic frames to `exwm-manage--frame-outer-id-list'Chris Feng1-5/+7
* exwm-manage.el (exwm-manage--add-frame, exwm-manage--remove-frame): Add checks for graphic frames.
2017-03-05 Manually run `focus-in-hook' and `focus-out-hook'Chris Feng1-0/+19
; Since X windows are managed by EXWM, the current Emacs frame should always be considered focused logically. * exwm-workspace.el (exwm-workspace-switch): Manually run `focus-in-hook' and `focus-out-hook'. (exwm-workspace--handle-focus-in, exwm-workspace--handle-focus-out): New functions for overriding `handle-focus-in' and `handle-focus-out'. (exwm-workspace--init, exwm-workspace--exit): Override `handle-focus-in' and `handle-focus-out'
2017-03-05 ; Update the workaround for bug#23980Chris Feng1-1/+1
2017-02-24 ; Expose `exwm-input-line-mode-passthrough' as a public interface.Chris Feng2-5/+5
2017-02-24 Fix systemtray positionChris Feng2-3/+20
* exwm-workspace.el (exwm-workspace--update-workareas-hook): New hook run when workareas get updated. (exwm-workspace--update-workareas): Run the hook. * exwm-systemtray.el (exwm-systemtray--on-workspace-switch) (exwm-systemtray--on-randr-refresh): Take struts into account when calculating the position for systemtray. (exwm-systemtray--on-struts-update): Alias of `exwm-systemtray--on-randr-refresh'. (exwm-systemtray--init, exwm-systemtray--exit): Manipulate `exwm-workspace--update-workareas-hook'.
2017-02-22 Use let instead of setq when setting exwm-input--line-mode-passthroughSteven Allen1-10/+9
That way, exwm won't clobber user modifications to this variable.
2017-02-12 Bump version to 0.13Chris Feng1-1/+1
2017-02-10 Correct a renamed variableChris Feng1-2/+2
* exwm-core.el (exwm--kmacro-map): Correct `exwm-input--during-key-sequence' that was left out in 089afdc8.
2017-02-05 Add a menu entry to `exwm-mode-map'Chris Feng1-0/+1
* exwm-core.el (exwm-mode-menu): Add a menu entry for closing X windows.
2017-02-05 Fix checkdoc warningsChris Feng7-12/+13
2017-02-05 Update copyright year to 2017Chris Feng11-11/+11
2017-01-03 Prevent certain frame parameters from being saved/restoredChris Feng3-3/+16
* exwm-input.el (exwm-input--init): * exwm-randr.el (exwm-randr--init): * exwm-workspace.el (exwm-workspace--init): Add certain frame parameters into `frameset-filter-alist' to prevent them from being saved/restored which makes little sense and is problematic.
2016-12-26 Fix a bug with zero floating border widthChris Feng1-1/+2
* exwm-manage.el (exwm-manage--manage-window): Avoid setting ColorMap mask when creating an X window if floating border is zero.
2016-11-19 Bump version to 0.12Chris Feng1-2/+2
2016-11-13 Grab global prefix keys with num-lock mask set.Chris Feng1-1/+8
* exwm-input.el (exwm-input--update-global-prefix-keys): Grab global prefix keys with num-lock mask set, or those keys won't be activated when num-lock is enabled.
2016-10-06 Fix a possible deadlockChris Feng1-2/+9
* exwm-input.el (exwm-input--update-focus): Unlock before switching workspace. Also make sure the correct Emacs window is chosen for the target workspace.
2016-10-06 Avoid updating input focus when renaming buffersChris Feng1-3/+13
* exwm-workspace.el (exwm-workspace-switch-to-buffer) (exwm-workspace-rename-buffer): Do not update input focus.
2016-10-06 Fix problems with active minibufferChris Feng2-42/+47
* exwm-floating.el (exwm-floating--unset-floating): Never use the minibuffer window to display an `exwm-mode' buffer. * exwm-input.el (exwm-input--on-buffer-list-update) (exwm-input--update-focus): Allow updating input focus when the minibuffer is active. (exwm-input--update-focus): Handle the case when an auto-hiding minibuffer is active. (exwm-input--during-key-sequence): Renamed to `exwm-input--line-mode-passthrough'. (exwm-input--line-mode-passthrough): New variable for forcing all events to be passed to Emacs in line-mode. (exwm-input--on-KeyPress-line-mode, exwm-input-send-next-key): Use it. (exwm-input--finish-key-sequence, exwm-input--init, exwm-input--exit): Drop `exwm-input--finish-key-sequence'. (exwm-input--line-mode-cache): New variable for caching incomplete key sequences. (exwm-input--cache-event): New function for handling new key events. (exwm-input--on-KeyPress-line-mode, exwm-input--on-KeyPress-char-mode): Use it.
2016-10-01 Bump version to 0.11Chris Feng1-1/+1
2016-09-30 Use read-buffer-to-switch in exwm-workspace-switch-to-bufferFelix Lange1-1/+1
read-buffer-to-switch elides the current buffer from the list of completions and selects a sane default.
2016-09-25 Fix a frame resizing problem for Lucid buildChris Feng1-8/+29
* exwm-manage.el (exwm-manage--frame-outer-id-list): New variable for storing frame window-outer-id's. (exwm-manage--add-frame, exwm-manage--remove-frame): New functions for adding/removing ids to/from the variable. (exwm-manage--init): Add the functions to the corresponding hooks. (exwm-manage--on-ConfigureRequest): Check for frames and avoid handling them.
2016-09-25 Fix `exwm-manage--kill-buffer-query-function'Chris Feng1-17/+17
* exwm-manage.el (exwm-manage--kill-buffer-query-function): Check buffer-local variables for destroyed X windows; Avoid force killing clients that support WM_DELETE_WINDOW but not _NET_WM_PING; Use `y-or-n-p' instead for querying.
2016-09-23 Use X window bordersChris Feng5-36/+66
; This commit replaces the internal borders of Emacs frames with X ; window borders. This should make the flickering issue of floating X ; windows less serious. * exwm-floating.el (exwm-floating--border-pixel) (exwm-floating--border-colormap): New variables for storing border pixel and its colormap. (exwm-floating--set-floating): Do not set the internal border (and background color) of floating frames; do not take `exwm-floating-border-width' into account when calculating geometries; set the border of floating X window containers. (exwm-floating--unset-floating): No need to restore the position of X windows any more; hide the border of floating X window containers. (exwm-floating--init): Initialize the border pixel. * exwm-layout.el (exwm-layout-set-fullscreen) (exwm-layout-unset-fullscreen): Show/Hide container border respectively. * exwm-manage.el (exwm-manage--manage-window): Set the border pixel and colormap of X window containers. * exwm-workspace.el (exwm-workspace-move-window): Do not set the internal border and background color of floating frames. * exwm.el (exwm--on-ClientMessage): Simplify the code for calculating _NET_REQUEST_FRAME_EXTENTS.
2016-09-23 Remember the geometries of floating X windowsChris Feng2-9/+24
* exwm-floating.el (exwm-floating--stop-moveresize): * exwm-layout.el (exwm-layout-enlarge-window): Update the geometry after resizing.
2016-09-23 Redirect KeyPress events sent to system tray iconsChris Feng1-1/+33
* exwm-systemtray.el (exwm-systemtray--embed): Select KeyPress events on system tray icons. (exwm-systemtray--on-KeyPress): New function for redirecting KeyPress events. (exwm-systemtray--init): Attach the event listener. * exwm-systemtray.el (exwm-systemtray--init): Fix a typo.
2016-09-23 Allow selecting an X window from another workspaceChris Feng1-8/+2
* exwm-input.el (exwm-input--on-buffer-list-update): Filter out switch-frame events. (exwm-input--update-focus): Switch workspace to set input focus on an X window from another workspace.
2016-09-22 Add support for keyboard macroChris Feng2-1/+36
* exwm-core.el (exwm--kmacro-map): New keymap used when executing keyboard macros. (exwm-mode): Use `exwm--kmacro-map' to override the default keymap. * exwm-input.el (exwm-input--on-KeyPress-line-mode): Send extra key events when defining keyboard macros.
2016-09-22 Drop support for _NET_WM_STATE_MODALChris Feng1-15/+1
; Modal X windows are not necessarily floating. * exwm.el (exwm--on-ClientMessage, exwm--init-icccm-ewmh): Drop support for _NET_WM_STATE_MODAL.
2016-09-22 ; Remove dead codeChris Feng1-13/+11
2016-08-31 Force using visible buffers in `other-buffer'Chris Feng2-3/+4
* exwm-floating.el (exwm-floating--set-floating): * exwm-workspace.el (exwm-workspace-move-window): Buffers visible on other frames should be treated as invisible. One side effect is visible buffers on the current frame is also taken into account.
2016-08-30 Improve exwm-workspace-move-window behavior in specific caseVed Vyas1-4/+3
This is a small change that improves the behavior of `exwm-workspace-move-window` in the following situation: 0. `exwm-workspace-show-all-buffers` and `exwm-layout-show-all-buffers` are `nil`*. 1. On active workspace `i`, there is X window `a` in the selected Emacs window. 2. On workspace `j`, there is X window `b` in the selected Emacs window on that workspace frame. 3. While workspace `i` is active, use `exwm-workspace-move-window` to move `a` to workspace `j`. 4. Switch to workspace `j` and use `exwm-workspace-move-window` to move `a` back to workspace `i`. Expected behavior: X window `a` is once again shown in the selected Emacs window on workspace `i` and X window `b` is once again shown in the selected Emacs window on workspace `j`. What is observed: `a` is OK but the selected Emacs window on workspace `j` does not show `b`. However, `b` is the first candidate when doing a `switch-to-buffer` in that Emacs window on workspace `j`. I'm not sure if this is the correct and complete change required, but it is working well so far. *The expected behavior is observed with EXWM 0.10 if exwm-{workspace,layout}-show-all-buffers are non-nil.
2016-08-28 Bump version to 0.10Chris Feng1-1/+1