Commit Graph

530 Commits

Author SHA1 Message Date
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 9ad5f651fe client: use a_str()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 17:49:15 +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 341f58b9f6 client: fix placement doc
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 15:49:27 +02:00
Julien Danjou 4711f4631f systray: restack on client raise
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 14:53:31 +02:00
Julien Danjou 446df09acc cosmetic
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 14:14:47 +02:00
Julien Danjou ab5119732d use more tokenizer, with len
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 14:01:33 +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
Pierre Habouzit b4b381e947 Finish markup parsing rewrite to avoid mallocs.
For that matter, use elements as a filter for elements we care about, and
let the hook implement whatever it needs without duplicating everything.

The resulting algorithm is still O(n²) where n is the number of filtered
elements (3 at most right now), which isn't bad if we don't need to get
too many elements, but at least it's not quadratic in the number of
attributes anymore.

Speedup improvements could be done using gperf btw.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 17:45:45 +02:00
Pierre Habouzit 37d69b8dcc markup substitutions enhancements.
Do not preemptively allocate a g_markup_escape_text for substitutions,
just remember what we want to substitute markup with, and substitute it in
the final buffer efficiently.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 16:58:56 +02:00
Pierre Habouzit 943e2035fa Rework the markup_parser_* allocation API.
We have a stack, don't be ashamed to use it.

Instead of:

    foo_t *foo;

    foo = foo_new();
    /* work with foo */
    foo_delete(&foo);

It's way better to:

    foo_t foo;

    foo_init(&foo);
    /* work with &foo */
    foo_wipe(&foo);

Remember: more mallocs == more fragmentation.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 16:17:12 +02:00
Pierre Habouzit 5c601dfd19 Use extensible buffers in markup parsing.
This should avoid quite a few malloc calls.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 15:12:42 +02:00
Julien Danjou de0d6045ba client: do not send request for WM_NAME
It's X standard.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-20 16:42:07 +02:00
Julien Danjou 46ead6ea3f comments fixing
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-20 08:38:00 +02:00
Julien Danjou 7b15c1d6c0 client: set ICONIC on hidden, WITHDRAWN on ban
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-19 19:53:15 +02:00
Julien Danjou a5478e5438 ewmh: add support for _NET_WM_WINDOW_TYPE_DESKTOP
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-19 19:51:58 +02:00
Michael Gehring 60591fe9bd client: export client_geometry_hints 2008-06-18 18:48:38 +02:00
Michael Gehring 1c570feff7 client: add hassizehints 2008-06-18 18:48:38 +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 694f97e4d7 titlebar: set above client edge border
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 17:05:10 +02:00
Julien Danjou 7709b22261 titlebar: fix titlebar rendering in tiled mode
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 14:04:24 +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 1cfc00f605 ewmh: fix various client list updates
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-17 23:20:03 +02:00
Arnaud Fontaine b9e1ec69d0 Replace xcb_aux_get_screen() by a safer function 2008-06-17 17:14:00 +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 5bae1f0c37 window: rework root_grabbuttons()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-17 14:35:58 +02:00
Julien Danjou 16646c86ab lua: __eq methods are not macros
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-16 11:37:55 +02:00
Julien Danjou 79eedb2f06 client: split out atom request on kill
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-15 20:37:34 +02:00
Julien Danjou 7707dd69c6 client: split out atom requests
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-15 20:34:15 +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 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 0fd1779b3a [client] Restack clients on manage
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-12 13:12:38 +02:00
Julien Danjou e6b14c1d39 [client] Fix border width setting
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-11 08:14:54 +02:00
Julien Danjou 11e93c2dbf [client] Fix titlebar destruction
We need to unref AFTER...

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-11 07:38:40 +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
Julien Danjou 213b2190ed [client] Fix typo
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 20:48:38 +02:00
Julien Danjou f11c913bc4 [lua] Fix gettop() usages
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 20:32:26 +02:00
Julien Danjou 88c76cadf4 [titlebar] Allow nil to be arg of titlebar_set()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 19:35:38 +02:00
Julien Danjou e9bfdcf681 [client] Documentation update
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 19:29:53 +02:00
Julien Danjou c5c75bf960 [client] Add ishidden() method
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 19:17:12 +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 df2770bb2f [client] Loadprops use screen_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 15:15:13 +02:00
Julien Danjou aa6bfc560a [draw] Do inline UTF-8 conversion
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 07:32:35 +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 59c04890fc [cleanup] random doxygen fixes
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-08 17:13:09 +02:00
Julien Danjou 75cb6b81af [screen] s/move_client_to_screen/screen_client_moveto/
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-08 11:02:34 +02:00
Alex Cornejo adedb9e397 Added get_class to client.
This is useful for writing rules in the awesomerc.lua, since
in the lua-less version it was possible to trigger rules based
on the class of the window (as opposed to the name).

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-05 14:53:57 +02:00
Julien Danjou 6ba90facb0 [client] Various documentation update and fixes
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-05 09:27:16 +02:00