Julien Danjou
6ec76c3b97
client: honor size hints is now by client
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-25 15:42:07 +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
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
Pierre Habouzit
14f4e02e66
Replace tag_t lists with arrays.
...
This improves lots of code efficiency (we *know* how many tags we have
now, YA'RLY).
Also fix a \todo in client.c: since knowing the number of tags is cheap,
ignore props that don't match it.
Use many p_alloca for things that depends on the number of tags (no sane
user will have *thousands* of tags. This saves a few more mallocs.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 17:37:19 +02:00
Julien Danjou
c67c237bba
client: move floating_placement_set()
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 11:41:16 +02:00
Michael Gehring
1c570feff7
client: add hassizehints
2008-06-18 18:48:38 +02:00
Julien Danjou
32a73f9ae6
titlebar: add support for border, refactorize code
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 11:22:54 +02:00
Julien Danjou
26738c4dab
xshape: remove, nothing prove it's really useful
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-17 15:06:05 +02:00
Julien Danjou
514320a576
systray: support running without any systray widget
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-17 13:33:17 +02:00
Pierre Habouzit
9ea15fd224
And migrate the rest of the loop to the libev.
...
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-17 00:30:53 +02:00
Julien Danjou
eade93c4c8
widget: stop deleting data, destructor does
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-15 21:18:54 +02:00
Julien Danjou
7d7e5b960a
placement: rename FloatingPlacement to floating_placement_t
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-15 10:55:07 +02:00
Julien Danjou
f418cb0c2e
systray: attach systray to external window, not statusbar
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-15 10:33:10 +02:00
Julien Danjou
70dbe7bc4d
systray: add support for multiple physical screens
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-14 23:23:00 +02:00
Julien Danjou
f169c4d8d9
widget: add support for destructor
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-14 22:38:40 +02:00
Julien Danjou
e5e379656a
systray: import widget
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-14 18:12:16 +02:00
Julien Danjou
1142c382f7
mouse: make button bindings objects
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-13 15:35:47 +02:00
Julien Danjou
03516eee22
structs: remove titlebar's buttons
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-13 14:50:54 +02:00
Julien Danjou
008cf2b340
ewmh: add modal windows support and a modal layout
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-13 14:41:42 +02:00
Julien Danjou
4573147196
[hooks] Rename newclient to `manage', add unmanage hook
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 19:03:10 +02:00
Julien Danjou
13a96b6edd
[keygrab] Add keygrabbing infrastructure
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 17:22:36 +02:00
Julien Danjou
1049393840
Revert "Replace tags by workspaces"
...
This reverts commit 00f966ea04
.
Revert "[focus] Fix bogus arguments"
This reverts commit 816b5d16bc
.
Revert "[mouse] Fix bug with floating"
This reverts commit 89daa72790
.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-09 21:56:03 +02:00
Julien Danjou
ac1517bacb
[client] Add support for hide/unhide
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-09 18:24:12 +02:00
Julien Danjou
00f966ea04
Replace tags by workspaces
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-09 16:30:46 +02:00
Michael Gehring
8ab1831ed6
[mouse] Use different cursors for vert./horiz. resize
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-08 09:28:11 +02:00
Julien Danjou
6d89565c8e
[mouse] Use different cursors for corners
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-07 16:38:33 +02:00
Julien Danjou
4c41361d6c
[lua] Add object as argument to mouse click function
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 19:21:21 +02:00
Julien Danjou
fa08ec5316
[screen] Rename Padding to padding_t
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 15:30:47 +02:00
Julien Danjou
aecc3c0e45
[titlebar] Store titlebar inside client
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 11:50:21 +02:00
Julien Danjou
1e08a992b8
[titlebar] Rewrote titlebar based on widgets
...
This is the new titlebar handling code, based on widgets.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-03 18:41:54 +02:00
Julien Danjou
807c5bf208
[widget] Remove useless drawing args
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-03 16:08:33 +02:00
Julien Danjou
59aa2b2da7
[statusbar] Add a flag to know if user specified width
...
That fix dynamic position switching.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-03 11:47:05 +02:00
Julien Danjou
34cd5504a7
[widget] Make button press event statusbar indep
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-03 11:40:50 +02:00
Julien Danjou
d8a5b43f26
[widgets] Make draw functions statusbar-less dependents
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-02 12:18:17 +02:00
Julien Danjou
b202b22314
[hooks] Fix timer resolution
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-31 23:43:28 +02:00
Julien Danjou
01fe4e3331
[statusbar] Remove multi-threading code
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-31 16:04:46 +02:00
Julien Danjou
51b0a5e20c
[statusbar] Add alpha channel support
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-30 13:08:11 +02:00
Julien Danjou
407972eb00
[xutil] Move xcolor_t into draw
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-30 12:33:08 +02:00
Julien Danjou
994f7abbc1
[lua] Add a timed hook
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-29 13:47:11 +02:00
Julien Danjou
fda025a591
[statusbar] Add fake transparency
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-29 13:01:09 +02:00
Julien Danjou
3ab739553c
[client] Add and honor the noborder attribute
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-28 14:33:45 +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
Julien Danjou
ebb56ce6b1
[client] Add a hook on urgent flag
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-28 11:08:48 +02:00
Julien Danjou
b1467494ea
Revert "[lua] Add a hook on standard fd activity"
...
This reverts commit 785c41f089
.
Too much potential deadlock problems.
2008-05-27 16:36:06 +02:00
Julien Danjou
785c41f089
[lua] Add a hook on standard fd activity
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-27 15:56:14 +02:00
Julien Danjou
a0b24c5505
[statusbar] Implement multi-threading per statusbar
...
More more efficient than before.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-27 11:17:51 +02:00
Julien Danjou
c81dacf091
[client] Add proper stacking support
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-25 19:32:30 +02:00
Julien Danjou
f6f74c4565
[client] Add client.name_set() function and hook on title update
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-25 17:51:45 +02:00
Julien Danjou
d9dd1fba8e
Revert "[client] Remove ismax attribute."
...
This reverts commit fb822997b3
.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-25 17:42:20 +02:00