gri3-wm/include
Michael Stapelberg c738b2e454 Don’t use SYNC key bindings for Mode_switch but re-grab keys
Before this commit, i3 used key bindings in SYNC mode for bindings
like Mode_switch + <a> and replayed the key if the current state
did not include Mode_switch. This had some problems:

1) The WM needed to acknowledge much more key presses than you
   actually had bindings for, thus making the system a bit laggy
   sometimes.
2) Users of layouts who constantly type in the third level (like
   russian layouts) did not get their cyrillic symbols correctly
   (they were not replayed right), neither did the keybindings
   work in both modes.

So, the current implementation uses the following approach: XKB
provides an event which contains the current state (including
the current level). i3 signs up for this event and upon receival,
it re-maps the bindings using Mode_switch (enables them when the
level goes to the third level and disables them as soon as the
level goes back to normal). This fixes both problems.
2010-03-14 22:40:58 +01:00
..
i3 ipc: change message type of events (first bit set high) 2010-03-13 15:04:23 +01:00
click.h Move handler for clicking to its own file 2009-09-22 18:07:25 +02:00
client.h Implement screen-spanning fullscreen-mode (command: 'fg') 2010-03-08 11:15:31 +01:00
commands.h Implement assignments of workspaces to screens, big cleanup of workspace code 2009-08-08 19:51:51 +02:00
config.h Don’t use SYNC key bindings for Mode_switch but re-grab keys 2010-03-14 22:40:58 +01:00
container.h Make containers containing exactly one window behave like default containers 2009-12-22 23:40:06 +01:00
data.h ipc: implement GET_WORKSPACES message type 2010-03-11 15:58:39 +01:00
debug.h Add vim hints, copyright notice to each file, add LICENSE, retab! everything 2009-02-14 02:33:31 +01:00
ewmh.h ewmh: implement support for _NET_WORKAREA (rdesktop can use that) 2009-12-31 17:48:41 +01:00
floating.h Implement proportional floating-resize. 2010-03-13 13:22:39 +01:00
handlers.h Don’t use SYNC key bindings for Mode_switch but re-grab keys 2010-03-14 22:40:58 +01:00
i3.h Don’t use SYNC key bindings for Mode_switch but re-grab keys 2010-03-14 22:40:58 +01:00
ipc.h ipc: implement events, cleanup the code a bit 2010-03-12 21:05:05 +01:00
layout.h huge change: implement RandR instead of Xinerama 2010-03-02 12:47:21 +01:00
log.h add log.c/log.h which contain all the log related macros and functions 2009-12-19 22:40:23 +01:00
manage.h Restore geometry of all windows before exiting/restarting (Thanks Sasha) 2010-03-02 15:25:08 +01:00
queue.h Move stuff to include/ and src/ 2009-02-13 19:09:25 +01:00
randr.h Re-add old Xinerama code for the poor nvidia users 2010-03-09 21:25:54 +01:00
resize.h Implement resize command 2009-09-26 17:18:50 +02:00
sighandler.h Use doxygen compatible comments 2010-01-03 21:53:42 +01:00
table.h Bugfix: Containers could lose their snap state (Thanks Atsutane) 2010-01-01 22:40:50 +01:00
util.h Move update_if_necessary to util.c, will be necessary later 2010-02-28 18:39:11 +01:00
workspace.h Update function names, variable names and documentation for the RandR changes 2010-03-05 16:18:41 +01:00
xcb.h add xcb_set_window_rect which configures a window according to a Rect 2010-02-28 20:35:30 +01:00
xinerama.h Re-add old Xinerama code for the poor nvidia users 2010-03-09 21:25:54 +01:00