about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2015-08-27 Re-enable complete refresh of keyboard mappingChris Feng1-12/+5
Since the performance of `xcb:keysyms:update-keyboard-mapping` is no longer an problem, we allow every possible refresh of keyboard mapping again.
2015-08-27 Fix window size calculationsChris Feng2-5/+6
* When sending the synthetic ConfigureNotify event, make sure we are dealing with the correct Emacs window * When managing a floating window, ensure it can be easily pick up by the user
2015-08-26 Fix `exwm-workspace-rename-buffer`Chris Feng1-10/+11
Ensure buffer names are unique.
2015-08-26 Correct several EWMH propertiesChris Feng5-52/+58
The following EWMH properties on the root window are corrected in this commit: _NET_VIRTUAL_ROOTS, _NET_WORKAREA and _NET_DESKTOP_VIEWPORT.
2015-08-26 Replay KeyPress events instead of fake them in line-modeChris Feng1-53/+24
X windows in line-mode receive KeyPress events faked with SendEvent requests previously. This causes many problems including: * Some applications (e.g. xterm) ignore synthetic events completely * KeyPress and KeyRelease evnets arrive disorderly This commit makes EXWM exploiting AllowEvents requests (in ReplayKeyboard mode) to forward KeyPress events to X windows instead.
2015-08-25 Merge pull request #42 from pipcet/ewmh-fullscreenChris Feng4-6/+60
Avoid using the "no window manager" code in Emacs
2015-08-24 Avoid using the "no window manager" code in EmacsPhilip4-6/+60
* exwm.el (exwm--on-ClientMessage): Handle fullscreen requests for frames. (exwm-init): Initialize workspaces after unlocking events. * exwm-workspace.el (exwm-workspace--init): Create frames as invisible, then make them visible only once their OverrideRedirect property has been set. * exwm-randr.el (exwm-randr--refresh): New frame parameter `exwm-geometry'. * exwm-layout.el (exwm-layout--set-frame-fullscreen): New function. The Emacs code is buggy, see https://github.com/ch11ng/exwm/issues/39 https://github.com/ch11ng/exwm/pull/42
2015-08-24 Only manage windows mapped as the direct children of root window (close #38)Chris Feng1-3/+8
Sometimes Emacs create child windows of virtual roots. This commit ensures EXWM will not manage them.
2015-08-17 Merge branch 'pipcet-move-window-fix'Chris Feng1-4/+6
2015-08-17 Merge branch 'move-window-fix' of https://github.com/pipcet/exwm into ↵Chris Feng1-4/+6
pipcet-move-window-fix
2015-08-17 Merge branch 'pipcet-robustness'Chris Feng3-43/+45
2015-08-17 Improve code robustness.Philip3-43/+45
* exwm-layout.el (exwm-layout-unset-fullscreen) (exwm-layout-set-fullscreen): Use `user-error' rather than `cl-assert'. * exwm-input.el (exwm-input--set-focus): Silently accept unknown ids. (exwm-input--grab-keyboard) (exwm-input--release-keyboard): Silently ignore calls for windows that have no buffer. * exwm-manage.el (exwm-manage--kill-client): Don't throw error when trying to kill a vanished window.
2015-08-17 fix buffer renamingPhilip1-2/+4
per https://github.com/ch11ng/exwm/pull/30
2015-08-16 Fix bug when moving a window to the current workspacePhilip1-2/+2
* exwm-workspace.el (exwm-workspace-move-window): Run reparenting code when moving a window to the current workspace.
2015-08-16 Provide hooks run when the floating state of a window changes (close #28)Chris Feng1-2/+9
2015-08-14 Honor `value-mask` field in ConfigureRequest eventChris Feng1-10/+10
Some applications (e.g. JNLP) don't set correct values for fields not mentioned in `value-mask`. This commit corrects this bug together with another Java AWT specific problem.
2015-08-13 Fix input focus stealingChris Feng1-8/+10
This was fixed in b755296 but broken by 04e4269.
2015-08-13 Fix multi-screen bugsChris Feng6-30/+54
* RandR module is now made optional; users can enable it with `exwm-randr-enable`. * Correct the calculation of sizes/coordinates at various places. * Input focus is now tracked with (Emacs) window instead of buffer since the latter can be ambiguous in multi-screen settings.
2015-08-13 Minor fixes for emacsclientChris Feng2-5/+5
2015-08-12 Improve input focus switch mechanismChris Feng5-81/+62
This commit should fix most input focus bugs (especially those related to floating windows). The actual settings of input focus are delayed to exclude redundant event. Dead code since this commit is removed. This commit also fixes a bug for non-floating windows converted form floating state. The workaround for `ido-mode` is also improved to properly handle `exwm-mode` buffers.
2015-08-11 Center floating windows by defaultChris Feng3-2/+26
This commit makes a floating window centered to its leading window if it has a valid WM_TRANSIENT_FOR property set. Other it's placed at the center of the screen.
2015-08-11 Fix buffer switch problemsChris Feng2-1/+31
* Prevent switching to floating windows or windows on other workspaces * Provide a workaround for `ido-mode` (can be enabled with `(exwm-enable-ido-workaround)`)
2015-08-11 Remove redundant code caused by the concurrency of events (contd, 2)Chris Feng4-61/+45
* Remove locks that are no longer required * Also fix #20 (inactive workspace frame steals input focus)
2015-08-10 Ignore repeated `MappingNotify` eventsChris Feng1-7/+18
For some reason, `MappingNotify` events are generated quite frequently and greatly impact the performance. This commit disables the complete refresh of keyboard mapping.
2015-08-10 Remove redundant code caused by the concurrency of events (continued)Chris Feng4-37/+34
Remove `exwm--with-current-id`, which was introduced to as a wrapper to `with-current-buffer` to do extra checks. Note that in functions run as hooks, the validation of window ID is still required as they are not synchronized with events.
2015-08-10 Fix emacsclient bugsChris Feng4-33/+49
`emacsclient` started with `-c` or `-t` argument create a new frame that shall not be used to manage X windows. Also fix some related input focus issues (with some remaining unfixed). Close #17.
2015-08-09 Remove redundant code caused by the concurrency of eventsChris Feng1-10/+1
With the introduction of ch11ng/xelb@6a7bccc, many weird behaviors should disappear. These include by not limit to * race conditions when managing a window (a workaround is provided in @14628a9) * race conditions when unmanaging a window This commit removes some corresponding code.
2015-08-09 Refresh when minibuffer grows (fix #10)Chris Feng1-1/+12
The expansion of echo area is not handled however.
2015-08-08 Show moved window by defaultChris Feng1-8/+13
2015-08-08 Correct layout refresh problemsChris Feng2-16/+21
* Relax the conditions to refresh layout; this may introduce some overheads though * Fix the problem when `*scratch*` buffer is killed; close #12 * Enhance `exwm-reset` by forcing layout refresh in it. This should allow users to overcome some layout bugs
2015-08-08 Fix some input focus issuesChris Feng2-5/+11
* Fix input focus lost after moving window to another workspace * Enhance `exwm-reset` to provide user a way to reset input focus when it's lost unexpectedly
2015-08-08 Fixes for manage/unmanage windowChris Feng2-4/+13
* Make sure `exwm-manage--manage-window-queue` is cleaned * Improve input focus handling after unmanaging a window * Remove a redundant call to `exwm-layout--show`
2015-08-07 Fix race conditions when managing a windowChris Feng1-1/+13
Since it takes some time for EXWM to create a buffer for a window (to do some checking for example), the window may send several MapRequest events before it's mapped. This commit should fix such issue.
2015-08-07 Fix input focus lost after closing windowChris Feng4-12/+34
Also insert some debug messages.
2015-08-07 Various input fixesChris Feng3-27/+29
* Fix `exwm-reset` * Make input mode buffer local * Allow window to stay in `char-mode` while setting input focus to other window or switching to other workspace
2015-08-06 Check buffer mode in exwm-resetChris Feng2-8/+5
This should prevent users from misoperation.
2015-08-06 Fix fullscreen issuesChris Feng3-6/+16
* Correct ConfigureNotify events sent to fullscreen windows. * Exit fullscreen mode before switching workspace. * Temporarily treat `xcb:Atom:_NET_WM_STATE_ABOVE` as `xcb:Atom:_NET_WM_STATE_FULLSCREEN` since a) "plugin-container" (Flash Player) seems only set this, and b) it's not normally used by applications. This makes fullscreen videos working in e.g. iceweasel.
2015-08-05 Drop intro to EXIMChris Feng1-3/+0
2015-08-05 Various fixesChris Feng2-11/+14
* Prevent marking the end of a key sequence with a single `C-u'. * Enable `C-u' prefix for key simulation since it's not possible for users to define simulation keys starting with `C-u'. * Make Emacs idle only after the visual parts are updated to prevent from disturbing users. * Should use '?\s' instead of '? '.
2015-08-05 Merge pull request #2 from KAMiKAZOW/patch-1Chris Feng1-3/+3
Fix typos
2015-08-05 Fix typosMarkus S.1-3/+3
2015-08-03 Add basic RandR supportChris Feng3-28/+184
This implementation is analogous to that in i3-wm, which requires external tools to properly configure RandR first.
2015-07-26 Fix potential naming conflictsChris Feng1-4/+17
Buffers may share a same name (without the possible leading space) when created in different workspaces.
2015-07-19 Various fixesChris Feng2-12/+4
Remove wrong shift modifiers. Hide a Window when it's moved to another workspace.
2015-07-18 Various fixes for workspaceChris Feng3-6/+11
Fixes for full screen, move window, etc.
2015-07-18 Add wiki link to READMEChris Feng1-1/+2
2015-07-18 Improve move/resizeChris Feng1-100/+83
The type of move/resize is consistent during one complete operation. So there is no need to judge it on every mouse motion.
2015-07-17 First commitChris Feng8-0/+3031