Commit Graph

2712 Commits

Author SHA1 Message Date
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 4d7a7694ae Calling destructor on splice is wrong, take doesn't want it e.g.
Also fix one assert.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-25 11:04:56 +02:00
Pierre Habouzit d3b030aa2c More ignores.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-25 10:52:53 +02:00
Pierre Habouzit 4c288c006b 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 10:52:28 +02:00
Pierre Habouzit 8c1aec2e96 Put keybindings in arrays.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-25 09:45:08 +02:00
Pierre Habouzit 3a1c9e0cfb Calling destructor on splice is wrong, take doesn't want it e.g.
Also fix one assert.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-25 09:45:08 +02:00
Julien Danjou 5d3d45f0cf awful: rename menu to prompt
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-25 09:07:57 +02:00
Julien Danjou 4a318e99fb awful: add more documentation
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-25 09:03:29 +02:00
Michael Gehring 08762261c6 cmake: cleanup paths variables/fix AWESOME_CONF_PATH 2008-06-25 04:00:19 +02:00
Michael Gehring a786d51a3c cmake: make building luadoc an option 2008-06-25 03:01:22 +02:00
Félix C. Morency 0c82372362 set cmake policy 2.6 if supported 2008-06-25 02:32:18 +02:00
Félix C. Morency 9b462ae4f0 added sysconfdir support 2008-06-25 02:03:55 +02:00
Félix C. Morency db8c1ffbf2 make cpack use destdir instead 2008-06-25 01:56:48 +02:00
Pierre Habouzit b19aace542 Fix draw_align_fromstr calls.
Note that it's undefined to have side effects on an argument and pass this
argument again to another function.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-24 22:40:34 +02:00
Julien Danjou 7b3983bfa0 "recent version" has no mean
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 22:30:46 +02:00
Julien Danjou 0aff415f37 version: add GdkPixBuf version
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 21:01:24 +02:00
Julien Danjou a055634d4e draw: use len param in draw_align_fromstr()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 20:34:02 +02:00
Julien Danjou 6ff843e65e doc: fix README with cmake and -DWITH_ switches
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 20:28:57 +02:00
Julien Danjou 7e104aef8c build: use GdkPixBuf by default
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 20:28:45 +02:00
Julien Danjou eb13ebcbf7 version: print compilation options
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 20:25:42 +02:00
Julien Danjou 678c9e3334 event: spurious printf removal
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 19:58:24 +02:00
Julien Danjou ec414ae39b systray: set orientation
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 19:56:10 +02:00
Julien Danjou 104df8912b systray: set handler before ewmh/systray init
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 19:55:14 +02:00
Julien Danjou 4ebdbdd649 systray: fix stack and send event
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 19:54:54 +02:00
MATSUU Takuto 2b917037ed cmake 2.4 has no LIMIT syntax in file command
cmake 2.4 http://www.cmake.org/HTML/CMake-2.4.html
  FILE(READ filename variable)

cmake 2.6 http://www.cmake.org/HTML/cmake-2.6.html
  file(READ filename variable [LIMIT numBytes] [OFFSET offset] [HEX])
2008-06-24 18:52:35 +02:00
Michael Gehring c19fde1f01 cmake: only awesome-client needs to link readline 2008-06-24 18:15:20 +02:00
Michael Gehring 9d9bb48094 cmake: awesome-client depends on generated sources 2008-06-24 18:15:20 +02:00
Julien Danjou f27fd17fd4 systray: send event with NO_EVENT mask
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 17:54:39 +02:00
Julien Danjou b1eb046aec systray: raise on manage
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 17:44:30 +02:00
Julien Danjou f8f882d948 systray: fix scan() and stop managing XEMBED
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 17:39:22 +02:00
Julien Danjou 38c48cf374 lua: remap on restart
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 17:39:06 +02:00
Julien Danjou 7b3029c722 systray: fix message
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 17:38:44 +02:00
Julien Danjou d271d17c29 layout: remove useless check
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 14:40:38 +02:00
Pierre Habouzit f84e66ddc6 Avoid lists of tag/client pairs, use an array per tag.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 14:30:13 +02:00
Julien Danjou 1f4e55e432 client: rename hide API
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 13:44:15 +02:00
Julien Danjou 333d76d14e client: fix raising of systray windows
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 09:01:32 +02:00
Michael Gehring 388dbb01c1 build: implement make dist using git-archive
Instead of jumping through hoops to get the ignore list
right just use git-archive to get a clean source tarball.
2008-06-24 08:58:04 +02:00
Pierre Habouzit 02fdfcc01e fix typo
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-24 08:58:04 +02:00
Michael Gehring cb848e6b1a mouse: move/resize return if grabbing the pointer fails. 2008-06-24 08:58:04 +02:00
Julien Danjou 55646db9cc build: fix hostname search
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 21:15:58 +02:00
Julien Danjou c1e1083e63 titlebar: fix position init
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 20:37:31 +02:00
Julien Danjou 242c0b5a91 doc: fix README
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 18:57:49 +02:00
Pierre Habouzit 17744fc81d Be more on the safe side.
it's useless to escape anything if text_len is 0, also some clients seem
to have a NULL name, so use NONULL(p->priv).

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 18:55:29 +02:00
Julien Danjou 0b93318836 build: fix argument generation
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 18:53:45 +02:00
Michael Gehring 18883e94fc awesomerc.5.txt don't include the api documentation 2008-06-23 18:43:05 +02:00
Michael Gehring 27bc445664 cmake: use luadoc for functions exported from C
Documenting half of the Lua API in the awesomerc manpage and the other
half with luadoc, doesn't make much sense. I modified the output of
gendoc.lua to something that looks like lua with luadoc markup. That
file can then be processed by luadoc and we have all Lua documentation in
one place.

And yes, we're now pulling custom doxygen tags out of C source code to
generate annotated lua source code we never use, which is then mangled
again by luadoc to spit out a set of html files.
2008-06-23 18:43:05 +02:00
Michael Gehring c3272d19a3 cmake: build/install luadoc for awful and tabulous 2008-06-23 18:43:04 +02:00
Felix C. Morency e62ce757de cmake: fixed out-of-source build
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 18:31:42 +02:00
Felix C. Morency 7bf0500479 cmake: fixed source package generation, again
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 18:31:38 +02:00