about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2017-11-24 Another fix for input focus issuesChris Feng2-18/+19
* exwm-core.el (exwm--defer): * exwm-input.el (exwm-input--update-focus-defer): Avoid unnecessarily long delay. * exwm-input.el (exwm-input--on-FocusIn): Filter out FocusIn events generated as a result of grab/ungrab or when the keyboard is grabbed.
2017-11-24 Fix possible wrong context when killing buffersChris Feng1-5/+6
* exwm-manage.el (exwm-manage--unmanage-window): Make sure to use the correct context to read/set buffer-local variables when killing buffers.
2017-11-19 Fix various input focus issuesChris Feng5-31/+39
* exwm-input.el (exwm-input--on-buffer-list-update): Cancel the frame redirection introduced by 421c0512f7. * exwm-input.el (exwm-input--on-buffer-list-update): Only ignore temp buffers just switched from. * exwm-input.el (exwm-input--update-focus-commit): New function for ensuring the input focus lock can always be released. (exwm-input--update-focus-defer, exwm-input--update-focus): Use it. * exwm-input.el (exwm-input--update-focus): No need to select frames; only transfer X input focus. * exwm-core.el (exwm--defer): New macro for correcting the use of `run-with-idle-timer' by taking `current-idle-time' into account. * exwm-input.el (exwm-input--update-focus-defer) (exwm-input--update-focus): * exwm-layout.el (exwm-layout--on-minibuffer-setup) (exwm-layout--on-echo-area-change): * exwm-manage.el (exwm-manage--unmanage-window) (exwm-workspace--prompt-delete): * exwm-workspace.el (exwm-workspace-switch) (exwm-workspace--add-frame-as-workspace): Use it.
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-19 Merge branch 'kriyative/bugfix-selecting-deleted-buffer-error' into ↵Chris Feng1-15/+7
externals/exwm
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 Merge branch 'Stebalien/expose-line-mode-passthrough' into externals/exwmChris Feng2-14/+13
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-10-01 Merge branch 'fjl/read-buffer-to-switch' into externals/exwmChris 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.