Commit graph

178 commits

Author SHA1 Message Date
Chris Feng
1ce18afd05 Center floating windows by default
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 15:06:11 +08:00
Chris Feng
801185c7cc Fix buffer switch problems
* 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 11:54:38 +08:00
Chris Feng
b755296f54 Remove redundant code caused by the concurrency of events (contd, 2)
* Remove locks that are no longer required
* Also fix #20 (inactive workspace frame steals input focus)
2015-08-11 09:18:21 +08:00
Chris Feng
24b964bb4a Ignore repeated MappingNotify events
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 21:01:55 +08:00
Chris Feng
048994c794 Remove redundant code caused by the concurrency of events (continued)
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 14:23:37 +08:00
Chris Feng
2d4104a0ec Fix emacsclient bugs
`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-10 10:55:28 +08:00
Chris Feng
edc70eb661 Remove redundant code caused by the concurrency of events
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 18:05:13 +08:00
Chris Feng
36bb5793c2 Refresh when minibuffer grows (fix #10)
The expansion of echo area is not handled however.
2015-08-09 11:27:48 +08:00
Chris Feng
42f4ec6db5 Show moved window by default 2015-08-08 20:39:05 +08:00
Chris Feng
63402b0efc Correct layout refresh problems
* 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 20:12:07 +08:00
Chris Feng
52984898ec Fix some input focus issues
* 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 11:16:17 +08:00
Chris Feng
3b9d0dd921 Fixes for manage/unmanage window
* 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-08 08:29:57 +08:00
Chris Feng
14628a940c Fix race conditions when managing a window
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 21:52:34 +08:00
Chris Feng
84f0f0328b Fix input focus lost after closing window
Also insert some debug messages.
2015-08-07 20:22:12 +08:00
Chris Feng
2ad1a89db0 Various input fixes
* 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-07 12:41:15 +08:00
Chris Feng
1e36a22b3f Check buffer mode in exwm-reset
This should prevent users from misoperation.
2015-08-06 14:41:28 +08:00
Chris Feng
3fb90b9eaa Fix fullscreen issues
* 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-06 12:32:14 +08:00
Chris Feng
caf2feec63 Drop intro to EXIM 2015-08-05 20:53:17 +08:00
Chris Feng
3fc0cb2bf7 Various fixes
* 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 14:10:44 +08:00
Chris Feng
ee3ce55c48 Merge pull request #2 from KAMiKAZOW/patch-1
Fix typos
2015-08-05 09:02:02 +08:00
Markus S.
ea7c6c7035 Fix typos 2015-08-05 02:57:50 +02:00
Chris Feng
86764d27a3 Add basic RandR support
This implementation is analogous to that in i3-wm, which requires external
tools to properly configure RandR first.
2015-08-03 20:26:53 +08:00
Chris Feng
f4416a10e3 Fix potential naming conflicts
Buffers may share a same name (without the possible leading space) when created
in different workspaces.
2015-07-26 16:04:21 +08:00
Chris Feng
36e8361b9b Various fixes
Remove wrong shift modifiers.
Hide a Window when it's moved to another workspace.
2015-07-19 09:15:53 +08:00
Chris Feng
968d0b4882 Various fixes for workspace
Fixes for full screen, move window, etc.
2015-07-18 21:16:14 +08:00
Chris Feng
cf87bb55ed Add wiki link to README 2015-07-18 18:15:40 +08:00
Chris Feng
7892ed36f1 Improve move/resize
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-18 10:23:24 +08:00
Chris Feng
10a7fe8d65 First commit 2015-07-17 19:16:08 +08:00