Commit graph

36 commits

Author SHA1 Message Date
Julien Danjou
53f58aa1a6 keybinding: move to key
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-18 11:33:52 +01:00
Julien Danjou
67a9f0d302 keybinding: add support for release event
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-16 12:00:51 +01:00
Julien Danjou
cfac43ecdf event: regrab keys on keyboard mapping change (FS#365)
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-31 19:22:24 +01:00
Julien Danjou
8d1120d096 keybinding: store in globalconf
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-31 17:08:32 +01:00
Julien Danjou
85c7bf07c9 luaa: merge tostring() with DO_LUA_NEW
Also use the same format as standard Lua for tostring output.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-26 16:15:49 +01:00
Julien Danjou
737a70f60c remove a bunch of useless #include-s
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-24 20:57:29 +02:00
Julien Danjou
031726c9b9 xutil: use token for keys
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-01 11:09:57 +02:00
Julien Danjou
3b895d84ed mouse: rework mouse buttons API, support release events
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:53 +02:00
Nathan Weizenbaum
0953d5f870 keybinding: only warn when a keysym really couldn't be found.
Signed-off-by: Nathan Weizenbaum <nex342@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-18 11:14:00 +02:00
Julien Danjou
b37110efd9 keybinding: allow individual non-alphabetic characters to be used in bindings
Don't just use XStringToKeysym to get keysyms, because then stuff like ";" doesn't work.
If XStringToKeysym fails and the string is of length 1, use it as the keysym.

Signed-off-by: Nathan Weizenbaum <nex342@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-18 10:06:47 +02:00
Julien Danjou
d1d9d3bb52 keybinding: ignore LOCK
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-10 17:02:07 +02:00
Julien Danjou
fd8ad9d17c keybinding: ignore Mod5 when getting keysym
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-10 16:31:12 +02:00
Julien Danjou
8e4873b3aa build: ignore lvalue
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-02 16:52:50 +02:00
Julien Danjou
ad7e0ab9ec keybinding: documentation fix
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-02 16:37:12 +02:00
Julien Danjou
f098790224 keybinding: register fct with dedicated fct
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-17 11:58:09 +02:00
Julien Danjou
df79115dd1 zaphod: restore support
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-15 00:31:32 +02:00
Julien Danjou
13edc48587 keybinding: ignore shift when getting keysym
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-13 11:37:08 +02:00
Julien Danjou
530f27e4a1 keybinding: honor modifier state correctly (FS#264)
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-13 10:30:24 +02:00
Arnaud Fontaine
b655f6348c xutil: rename xutil functions according to the rest of code. 2008-08-11 18:05:35 +02:00
Julien Danjou
f5f0663bf1 fix ARRAY_TYPE decl
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-24 16:25:11 +02:00
Pierre Habouzit
5798ef0594 Hide keybidings_t away, subsequent simplifications 2/2
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 08:12:22 +02:00
Pierre Habouzit
3a7dd8c715 Hide keybindings away 1/2
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 08:12:22 +02:00
Julien Danjou
45b0a2df80 lua: replace .new() by __call meth
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 14:11:54 +02:00
Pierre Habouzit
cde80ab49a Move CLEANMASK to xutil.h, remove useless #Includes
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-26 22:47:56 +02:00
Julien Danjou
013b2afe62 remove useless #include
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 18:10:45 +02:00
Pierre Habouzit
d45590fbcc 0 may be a valid function, LUA_REFNIL is what we want.
Also don't forget to unref the function on deletion.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 14:23:59 +02:00
Pierre Habouzit
5a07ee4946 Put keybindings in binary searchable arrays.
This patch sorts keybindings in arrays by keycode or keysym to speed up look
up using binary searches. This is a preliminary work to enable more powerful
keybindings stuff, where keybindings can be cascaded or why not, attached to
specific clients.

Interstingly enough, this patch saves 100ko of initial memory (Heap) usage here.

The underlying idea is that we should be able to define keybindings_t as
trees of keybindings_t which would then define key sequences.

The OO approach kind of make sense in fact, since you create a base
keybinding (e.g. reacting on Mod4-w) and then you will probably (with
appropriate apis) be able to populate new submaps from that point more or
less dynamically.

And if you have two keybindings on Mod4-w, then adding them will replace the
previous one. This means that you can fake per-client bindings with e.g.:

  k_default = keybindings.new({"Mod4"}, "w", something);
  k_mplayer = keybindings.new({"Mod4"}, "w", something_else);
  k_default:add()

and in your focus hook:

  if /* code for testing if it's mplayer */ then
      k_mplayer:add()
  else
      k_default:add()
  end

This would not work before, it does now.

It will take way more sense with submaps of course.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-25 11:04:56 +02:00
Pierre Habouzit
8c717622fd Put keybindings in arrays.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-25 11:04:56 +02:00
Pierre Habouzit
ea646e7077 Make refcounting safer.
put *item to NULL on unref, as we cannot know if the pointer is valid
after an unref, so just segfault rather than hide a problem.

Also return *item on ref() it allow short versions like:
  foo_list_push(&list, foo_ref(&elem));
which is kind of readable _and_ handy.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 14:22:44 +02:00
Julien Danjou
92f369e3aa lua: userdata_new is now macro
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 18:31:35 +02:00
Julien Danjou
6e36717163 lua: _gc are now macros
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-16 11:31:38 +02:00
Michael Gehring
276f5f8849 [doxygen] Add \lvalue and convert existing doc.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-11 07:36:34 +02:00
Michael Gehring
1ca55927f0 [doxygen] Convert Lua documentation
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 20:12:51 +02:00
Julien Danjou
98119d5d3f [lua] Check for object validity
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 18:27:10 +02:00
Julien Danjou
0a44e90cb6 [lua] Fix garbage collectors
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 18:17:47 +02:00
Julien Danjou
b6e31563d0 [lua] Add new keybinding interface
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-28 12:15:00 +02:00