Commit Graph

728 Commits

Author SHA1 Message Date
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
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 eb8378749b [titlebar] Add titlebar_client_get()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 17:54:52 +02:00
Julien Danjou 5f2585d82e [screen] s/get_display_area/display_area_get/
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 15:34:11 +02:00
Julien Danjou 80ec848130 [client] Add titlebar_get()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 13:36:13 +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 930997898b [client] Add unmanage function
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-02 08:32:16 +02:00
Julien Danjou c332971b21 [draw] Rename draw_color_new() to xcolor_new()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-30 12:34:38 +02:00
Julien Danjou e39bb8eac6 [markup] Stop recomputing len, use slen
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-30 07:52:29 +02:00
Julien Danjou b24c0b286c [client] Fix border_set documentation
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-29 09:50:49 +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 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 bc38b86c80 [client] Need arrange on focus
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-27 21:46:13 +02:00
Julien Danjou e890297617 [client] Focus even if we think we already have focus
Because sometimes clients steal focus.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-27 21:34:52 +02:00
Julien Danjou 55b4c773d0 [client] Fix client_resize() comments
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-27 20:17:33 +02:00
Julien Danjou 0e3531d3a3 [client] Rework raise and mouse stuff
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-26 18:08:29 +02:00
Julien Danjou 93741f6b91 [client] Push client on stack list on manage
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-25 19:47:19 +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
Julien Danjou c9fde5a9f0 [client] Check that tag and client are on the same screen
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-25 12:06:10 +02:00
Fabienne Ducroquet 1d8481fc9e [client] Save geometry of windows when resizing in floating layout
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-25 08:26:39 +02:00
Julien Danjou 0bbd2d4b3e Rename AwesomeConf to awesome_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-24 08:59:27 +02:00
Julien Danjou 67b2702b7d [client] Remove newcomer attribute
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 23:01:41 +02:00
Julien Danjou db5430420d [client] Create luaA_client_userdata_new() function
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 22:56:03 +02:00
Julien Danjou 495b99f1c5 [focus] Rewrite focus handling on arrange.
Also add some documentation.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 22:48:27 +02:00
Julien Danjou 981b26cbc8 [lua] Add name_get() method and make mplayer floating by default
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 15:12:01 +02:00
Julien Danjou a04417494b [mouse] Rename Button to button_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 15:12:01 +02:00
Julien Danjou 0142f0efc9 [layout] Rename LayoutArrange to layout_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 15:11:59 +02:00
Julien Danjou ccb2a2db77 [lua] Remove regex matching
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 13:17:02 +02:00
Julien Danjou fb822997b3 [client] Remove ismax attribute.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 13:11:47 +02:00
Julien Danjou e25434fe25 [client/tasklist] Reactivate icon drawing with client.icon_set()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 22:37:08 +02:00
Julien Danjou ec21647c87 [client] Remove useless client_get_byname()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 19:59:58 +02:00
Julien Danjou dc431ec430 [scratch] Remove scratch client support.
This can be done in Lua now.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 19:47:29 +02:00
Julien Danjou ddae225363 [client] Execute hook on real focus
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 18:06:02 +02:00
Julien Danjou 1f046b3c9f [everything] Switch from libconfuse to Lua
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 18:01:15 +02:00
Julien Danjou e5ed2f2f1c [swindow] Permit to delete NULL swindow
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-13 18:56:33 +02:00
Arnaud Fontaine f288fda0c5 [client] Send requests to the X server and treat replies as late as possible 2008-05-12 19:42:56 +01:00
Arnaud Fontaine a4c7ffffc7 [client] Add client_redraw (FS#170) 2008-05-11 17:56:26 +01:00
Arnaud Fontaine 162b8a690c [all] Implement an atom cache in xutil as an ordered linked-list 2008-05-11 01:10:37 +02:00
Julien Danjou 7f284ba15a [client] Remove erronous call to xcb_change_window_attributes() for borders
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 15:11:02 +02:00
Julien Danjou 39a070a5ae [client] Fix bug with atoi() and make uicb focus take 0 as arg
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:17:49 +02:00
Julien Danjou c88b0b15ff [client] Merge zoom with swap, change togglefloating to setfloating
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:35 +02:00
Julien Danjou b75e462223 [client] Merge vertical and horizontalmax inside togglemax
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:35 +02:00
Julien Danjou d5859c60f7 [client] Merge focus{prev,next} and swap{prev,next}
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:35 +02:00
Julien Danjou f0e29977d8 [client] introduce client_style_get() and use it in tasklist/titlebar
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:06 +02:00
Julien Danjou 8603f0dac1 [client] Documentation update
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:06 +02:00
Julien Danjou de3fbffcf1 [xutil] Rewrite gettextprop() proto
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:06 +02:00
Julien Danjou 7468bb6794 [client] Fix potential memory leak on client string parsing errors
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:06 +02:00
Julien Danjou fd9d012f73 [client] Do not escape in client's name attribution
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:05 +02:00
Julien Danjou 088446e97d [client] Free markup data
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:05 +02:00
Julien Danjou 09e166ca1e [client] Pass signed to xutil_gettextprop()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:04 +02:00
Arnaud Fontaine 0624f4ce6a [client] Useless accessors functions have been removed from
xcb-util/icccm which had a bug making urgency hint unusable.
2008-05-03 12:01:04 +02:00
Julien Danjou eab7633675 [tasklist] Remove styles; use drawtext format
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:04 +02:00
Julien Danjou ccfcde3555 [client] Escape clients name
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou e4d091ab2e [tag] Rename Tag type to tag_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou d1635db59f [client] Rename Client type to client_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Arnaud Fontaine 20442adfa0 Cosmetic 2008-05-03 12:01:03 +02:00
Julien Danjou c9f4c45007 [rules] Rename Rule to rule_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou eb1a9bd69c [all] Rename Layer to layer_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:02 +02:00
Julien Danjou 97dc830db5 [util/rules] Move Fuzzy from rules to util
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:02 +02:00
Julien Danjou ffec807e9d [client] Stack according to client on all screens
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:02 +02:00
Arnaud Fontaine 9e88dd4372 [client] Fix xcb_get_wm_normal_hints() which now returns an allocated pointer 2008-05-03 12:01:01 +02:00
Julien Danjou 82f305b1b1 [xutil] Rework some stuff and rename xgettextprop()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:01 +02:00
Arnaud Fontaine 2f9409ba74 Desallocate replies and events properly 2008-05-03 12:01:01 +02:00
Arnaud Fontaine b0b0dcf525 [client] Send properly the ClientMessage request when killing a client 2008-05-03 12:01:01 +02:00
Arnaud Fontaine 71e9100927 Remove useless xutil_root_window() 2008-05-03 12:01:00 +02:00
Arnaud Fontaine 02c99fccb8 Prefix xutil functions properly 2008-05-03 12:01:00 +02:00
Arnaud Fontaine 4a1720ddca Remove useless x_select_input() which leaded to useless requests 2008-05-03 12:01:00 +02:00
Arnaud Fontaine 164e696005 Cosmetic 2008-05-03 12:01:00 +02:00
Arnaud Fontaine 3ea19aab12 Set properly the border width of a new window 2008-05-03 12:00:59 +02:00
Arnaud Fontaine dafafd077c Port Awesome to XCB 2008-05-03 12:00:59 +02:00
Thomas Janu 7e301b5ef2 Layer 0 is also usable now
The check for a valid layer was wrong

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:00:25 +02:00
Wolfgang Kroener 3af77fd56e add ewmh stacking layers
Add layers for ewmh stacking order
http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html#STACKINGORDER
desktop, below, tile, float, above, fullscreen

Signed-off-by: Wolfgang Kroener <wk@azog.de>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:00:25 +02:00
Julien Danjou 24d2e200af [client] Fix for 'invalidate' cache when swapping
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 11:59:56 +02:00
Julien Danjou 5daa3c6478 [client] Invalidate cache when swapping
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 11:53:38 +02:00
marco candrian 88a08c210f force a floating point division
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-20 09:28:54 +02:00
marco candrian 8129bb7135 documentation fix on client_settrans
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-20 09:28:54 +02:00
Fabienne Ducroquet b12a5235a5 [doc] Fix some typos, modify a few descriptions
Before awesome 2.3 release, I've decided to look for typos in the
awesome* manpages, here is the result. I've also modified some options'
descriptions that I didn't find very clear, I hope I have not
added/missed too many mistakes as I'm not a native English speaker...

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-11 07:34:45 +02:00
Julien Danjou f3d6ca0072 [client] Fix issues with opacity
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-10 13:18:08 +02:00
Julien Danjou 76fb9906ca [client] Fix opacity focused issue
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-08 16:27:27 +02:00
Julien Danjou 5a062eb0d3 [client] Fix placement for maximized apps
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-08 15:40:33 +02:00
Julien Danjou 5e6760c589 [titlebar] Resize correctly titlebar on manage
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-04 10:53:53 +02:00
Julien Danjou 10903a3cb5 [titlebar] Better handling of position changes
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-04 10:26:46 +02:00
Julien Danjou d4764787c5 [placement] Really resize client if we change the placement (FS#152)
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-03 20:11:38 +02:00
Julien Danjou 6f001de781 [client] Remove useless call to XMoveResizeWindow()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-03 09:05:23 +02:00
Julien Danjou e3b057cf21 [placement] Resize client with new floating geometry
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-03 09:04:18 +02:00
Julien Danjou 2456f6d62a [floating] Do not lower windows when going back to tiled
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-02 14:48:42 +02:00
Julien Danjou 841ce84ed9 [doc] Update a bunch of documentation for uicb; set transparency to be between 0 and 1
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-31 20:07:13 +02:00
Julien Danjou ff1bd31633 [client] Optimize condition
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-28 11:35:56 +01:00
Julien Danjou a8ab903e24 [client] Invalidate cache on maximize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-28 09:52:58 +01:00
Julien Danjou 3d33c84e36 [titlebar] Check if titlebar was created before unmaping it
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-27 17:01:57 +01:00
Julien Danjou c834134cc8 [doc] Autogenerate documentation for uicb from source code
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-27 15:00:46 +01:00
Julien Danjou 227c31fd77 [titlebar] Collapse for all position
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-26 11:07:23 +01:00
Julien Danjou 15256cccc1 [titlebar] Collapse titlebar to windows even if we do not resize it
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-26 11:03:52 +01:00
Julien Danjou 214b5a4a31 [titlebar] Fix resize_hints usage with titlebar
- titlebar_update_geometry() give now void
- we call titlebar_update_geometry_floating() to reset correctly the
  titlebar position for right/bottom, so they will be stucked to the window

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-26 10:57:06 +01:00
Julien Danjou 7605585aee Fix bug when switching focus to an empty screen
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-25 18:20:39 +01:00
Julien Danjou 762645ca32 client_focus() now return bool to indicate if it has given focus
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-25 11:28:38 +01:00
Julien Danjou c5afa7753b Split restack function out of focus, and fix click-to-raise
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-24 16:34:41 +01:00
Julien Danjou b946119d46 Disable titlebar on fullscreen/maximize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-24 14:44:11 +01:00
Julien Danjou 3310b974b4 Allow skip to be focused (by mouse) but refuse to focus them if they're newcomer
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-24 10:58:32 +01:00
Julien Danjou db0932f77a Cleanup stuff in client_manage for loading properties
Remove a double call to ewmh_check_client_hints, and only call
move_client_to_screen() when needed.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 21:56:12 +01:00
Julien Danjou be12562ab7 Stop client_find_visible to loop for ever
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 20:58:39 +01:00
Julien Danjou e261ad7b5d Refuse to give focus on skippable windows
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 20:55:37 +01:00
Steffen Schulz 3b8cf66822 new directive opacity_focused=<int>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 20:36:55 +01:00
Julien Danjou d07ca5f76d Fix potential segfault in client_focus()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 17:33:48 +01:00
Julien Danjou 904cd4e06a Normalize some window functions protos
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:22 +01:00
Julien Danjou 1d468c5583 Lot of cosmetic changes: proto change, etc.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:22 +01:00
Julien Danjou 0a6c6e017b Store physical screen id in statusbar and client, change get_phys_s() to screen_virttophys()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:22 +01:00
Julien Danjou 08f1e90384 Do not set urgent on window if it is focused 2008-03-23 15:52:21 +01:00
Julien Danjou 279e83ba05 Update titlebar with real floating info now if client is floating
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:21 +01:00
Julien Danjou b1cd7d16c6 Do not compute smart floating geometry on awesome restart 2008-03-23 15:52:21 +01:00
Julien Danjou 1acc6ec8f6 Fix various bug with smart/mouse floating placement
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:21 +01:00
Julien Danjou 7c79f94341 Move titlebar initialization routine in titlebar.c 2008-03-23 15:52:20 +01:00
Julien Danjou 0b6d6d738a Do nothing it the client already has focus
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:20 +01:00
Julien Danjou 720dabbaf6 Add support for titlebar on right 2008-03-23 15:52:20 +01:00
Julien Danjou bb0fab396f Add an ismoving attribute to client to fix a bug with titlebar and mouse moving in Xinerama 2008-03-23 15:52:20 +01:00
Julien Danjou a42d43a853 Fix various placement issue with titlebar
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:20 +01:00
Julien Danjou 850145f994 Changing floating geometry is bad 2008-03-23 15:52:20 +01:00
Julien Danjou 466ed47c2a Remove useless code 2008-03-23 15:52:20 +01:00
Julien Danjou dbe2052320 Check for sw also before restacking titlebars 2008-03-23 15:52:20 +01:00
Julien Danjou c99bc4dc1d Fix titlebar drawing on max 2008-03-23 15:52:20 +01:00
Julien Danjou 3eef1842e4 Do not use titlebar_update_geometry_floating() which sucks in client_resize() 2008-03-23 15:52:20 +01:00
Julien Danjou e22d57a0ca Change the way to do resize
Go back to old school

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:20 +01:00
Julien Danjou cf58c338e4 Add drawing support for left titlebars 2008-03-23 15:52:20 +01:00
Julien Danjou 99d72010c5 Fix various metrics problems with titlebar
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:20 +01:00
Julien Danjou dd71f55469 Fix regression introduced by 7e2f59d851437d68c47b5827644eba117c0e7b82
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:20 +01:00
Julien Danjou 31f6010eda Put titlebar resize for floating in titlebar_update_geometry_floating() function and call it for movemouse
This fix the problem when moving a window on a floating layout on screen N to
non-floating layout on screen M
2008-03-23 15:52:19 +01:00
Julien Danjou c9450c6fbd Remove switch/case for sw creation of titlebar, useless 2008-03-23 15:52:19 +01:00
Julien Danjou eb595fe06e Add support for Bottom titlebar 2008-03-23 15:52:19 +01:00
Julien Danjou 9bd32fc3b8 Split titlebar stuff into titlebar.[ch], and uicb_client_toggletitlebar 2008-03-23 15:52:19 +01:00
Julien Danjou bc6656320d Add support for text_align option in titlebars 2008-03-23 15:52:19 +01:00
Julien Danjou f9f75629e1 Rule for titlebar applies event if we restart; set default to auto, which means off 2008-03-23 15:52:19 +01:00
Julien Danjou cc56ccd2e9 Use section for titlebar parameters 2008-03-23 15:52:19 +01:00
Julien Danjou 3aa550ef6b Cosmetic changes 2008-03-23 15:52:19 +01:00
Julien Danjou bb453bd444 s/client_titlebar_update_position/client_titlebar_update_geometry/g 2008-03-23 15:52:19 +01:00
Julien Danjou b51e352ed8 Fix errors with windows without titlebar 2008-03-23 15:52:19 +01:00
Julien Danjou 539636c77e Fix bug with floating windows and titlebar 2008-03-23 15:52:19 +01:00
Julien Danjou 95f8325c06 Fix titlebar width (add borders) 2008-03-23 15:52:19 +01:00
Julien Danjou b6f86ebb63 Smart placement support handling titlebar 2008-03-23 15:52:19 +01:00
Julien Danjou a6b203f8a6 Disable titlebar for dock and panels 2008-03-23 15:52:19 +01:00
Julien Danjou 12584caa5d Compute the rule only one time 2008-03-23 15:52:19 +01:00
Julien Danjou 8b217359e9 Rename Auto to Maybe in Fuzzy; add Auto as Position; add support for titlebar as rule 2008-03-23 15:52:19 +01:00
Julien Danjou 2c43fd6a69 Split titlebar properties into a struct with a SW and a Position 2008-03-23 15:52:18 +01:00
Julien Danjou 4311564945 Fix condition for having titlebars 2008-03-23 15:52:18 +01:00
Julien Danjou dce101d044 Split out titlebar handling into layout for non-floating, and into resize for floating 2008-03-23 15:52:18 +01:00
Julien Danjou 3c3015fd76 Remove resize_hints args to client_resize(), force usage of client_geometry_hints() 2008-03-23 15:52:18 +01:00
Julien Danjou ea88e324a0 First titlebar support 2008-03-23 15:52:18 +01:00
Julien Danjou f1109b055c Simplify next/prev stuff 2008-03-23 15:52:18 +01:00
Julien Danjou c6eec955c8 Rename Area to area_t 2008-03-23 15:52:18 +01:00
Julien Danjou fa47024714 Change colors infrastructure to style: rename colors_ctx_t to style_t and add font in it 2008-03-23 15:52:18 +01:00
Julien Danjou 0a980095b3 Rework colors stuff, add a common colors_ctx_t containing colors and shadow options 2008-03-23 15:52:17 +01:00
Julien Danjou eee37d063c Use xinerama_is_active attribute and drop XineramaIsActive() usage 2008-03-23 15:52:17 +01:00
Julien Danjou 355b7d67b3 Change screen_get_bycoord() proto to take ScreensInfo as arg, and speed up things 2008-03-23 15:52:17 +01:00
Julien Danjou 0bde5c9e29 Move some screen functions from screen.c to new common/xscreen.c 2008-03-23 15:52:17 +01:00
Julien Danjou 867b2f0775 first version of awesome-menu 2008-03-23 15:52:15 +01:00
Julien Danjou a734c7dd5d Remove transparency prop on focus
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-19 15:04:43 +01:00
Julien Danjou 4516bfcf3a Check for EWMH hints after reloading client props
This avoid to think a client has already props in case it's tagged
with EWMH and then do not use its rules
2008-03-15 14:46:45 +01:00
Julien Danjou 9d98d71ad1 Keep floating windows on top of the stack 2008-03-04 15:25:59 +01:00
Julien Danjou de8dcbb724 replace drop_events arch by x,y pointer coordinates saving 2008-03-04 10:14:13 +01:00
marco candrian 317929baea Is the pointer inside client with including the borders...
it didn't reshift the pointer when the pointer was on the
right border (or even somebit in the client) because it didn't calculate
the border with to the dimensions.

Also, it wrapped the pointer inside the client. now it leaves it on the border
when that was the case before. Or on resizing (smaller) the pointer might also move
(relativ to the client) to the most outside point of the left or top border.

There is still the problem so:
the client gets moved/resize, the pointer might get out of the area temprarly and the
client loses the focus - despite that the pointer will reshifted onto it again.

A general: client_focus(sel, screen, False);
at the end seems to help, but is probably not clean etc.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-02 19:28:50 +01:00
marco candrian 271bf8da4a border width taken into account on pointer movement
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-02-28 10:28:07 +01:00
marco candrian f604d4dbdd client_moveresize fix
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-02-28 07:54:45 +01:00
Julien Danjou e5038732ca check if the unmapped client is not the scratchpad 2008-02-26 17:45:55 +01:00
Julien Danjou f54ff424a0 check widgets position 2008-02-25 20:09:19 +01:00
Julien Danjou 960d870b0b fix screen_get_bycoord() 2008-02-25 13:40:30 +01:00
Julien Danjou 1e3f3d9300 floating placement can be chosen by config 2008-02-13 18:04:20 +01:00
marco candrian 4ff0dae17e trailing whitespaces removed
like:
find . -iname "*.txt" -o -iname "*.c" -o -iname "*.h" | xargs sed -i 's/\s\+$//'

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-02-13 09:05:10 +01:00
Julien Danjou a84eae2700 fix stacking issues 2008-02-12 14:39:52 +01:00
Julien Danjou 768aef8960 check transient and isfixed for setting floating state, even if we can loadprops 2008-02-12 10:19:59 +01:00
Julien Danjou 1b63e8a3c5 rename get_current_layout to layout_get_current() 2008-02-12 10:09:36 +01:00
Julien Danjou e0099da269 use get_current_layout() 2008-02-12 10:08:16 +01:00
Julien Danjou 9390abcfb4 fix memory leak in smart_placement (with area_list_remove) and fix the algo 2008-02-11 17:15:28 +01:00
Julien Danjou 72d68b13a3 change focus raising 2008-02-09 23:12:40 +01:00
Julien Danjou 2fad66e23f focus on maximize() 2008-02-09 22:42:21 +01:00
Julien Danjou 85e5baa4b1 focus scratch window when it appears, and don't select it for focusing in history 2008-02-08 15:08:42 +01:00
Julien Danjou cdb85ad098 stop raising like dumb 2008-02-06 19:48:26 +01:00
Julien Danjou b2e004b453 add scratch window support 2008-02-06 09:06:43 +01:00
Julien Danjou befcf19ea2 introduce fuzzy logic: fix problem with not_master 2008-02-05 17:31:47 +01:00
Julien Danjou a26b40fa28 fix segfault in client_zoom 2008-02-05 07:15:23 +01:00
Julien Danjou 06904cfcaa Revert "remove opacity_unfocused" 2008-02-04 14:54:50 +01:00
Julien Danjou a4a7433928 not size, position 2008-02-01 11:30:39 +01:00
Julien Danjou 4ad1f8a54a don't compute position if program or user specified ones 2008-02-01 10:42:16 +01:00
Julien Danjou 606d157e31 rename some screens function 2008-01-30 09:36:52 +01:00
Julien Danjou c3aeedfa24 better use of the space in smart placement 2008-01-29 09:13:35 +01:00
Julien Danjou d9298f6edb rename get_current_tags to tags_get_current() 2008-01-29 08:31:13 +01:00
Julien Danjou ee1214846e rename some client functions 2008-01-29 08:21:05 +01:00
Julien Danjou 9c7bbad840 respect border widths 2008-01-28 20:16:54 +01:00
Julien Danjou ea57fd8fc9 add support for smart windows placement in floating layout 2008-01-28 18:30:23 +01:00
Julien Danjou e233c2bfab drop some EnterWindow events on swap/zoom 2008-01-28 16:46:31 +01:00
Julien Danjou b016919d59 use client's screen here 2008-01-28 12:28:25 +01:00
Julien Danjou 75d57960de type: screen != phys_screen 2008-01-28 11:44:57 +01:00
Julien Danjou 9f68db5360 use c->screen geometry, not display's 2008-01-28 11:43:37 +01:00
Julien Danjou a0bef6d49e missing include 2008-01-27 19:08:11 +01:00
Julien Danjou 95d5fe299e rename focus() to client_focus() 2008-01-27 19:07:39 +01:00
Julien Danjou b6642e45c8 rename initxcolor to draw_color_new() and move it to draw.c 2008-01-27 18:56:37 +01:00
Julien Danjou 37b4f62258 always grab Button1 2008-01-26 13:11:12 +01:00
MATSUU Takuto 363cefefee transparency rule support
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-25 23:48:24 +01:00
Julien Danjou c22430a115 fix handling of window raisings 2008-01-25 23:43:16 +01:00
Julien Danjou 6f1e1e1abe handle focus history on arrange() 2008-01-25 22:50:18 +01:00
Julien Danjou 485614f2df rewrite focus handling
- arrange() does not focus() anymore
- restore dropping events infra
- add client_unfocus()
- grabbuttons() where we should and add root_grabbuttons() for root window
2008-01-25 22:37:49 +01:00
Julien Danjou 8434040cb2 do not drop XSetInputFocus errors; but we can not give focus to unmapped windows 2008-01-25 09:37:41 +01:00