Commit Graph

510 Commits

Author SHA1 Message Date
Uli Schlachter 1e3409f461 awful.menu.clients: Raise the newly focused client
Raising it makes it more obvious that the focus was really changed and makes
working with the client easier since it's, well, raised.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-05-03 11:03:47 +02:00
Andrei 'Garoth' Thorp b205854de1 docs: progressbar.lua.in missing a dash to prevent luadoc generation
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-05-03 11:02:31 +02:00
Sergey Mironov b08b815685 awful.menu: Add menu position argument
Patch allows user to define menu position in pixels when
showing menu in keyboard-driven mode.
Note: Patch changes signature of show() and toggle() functions.

Signed-off-by: Julien Danjou <julien@danjou.info>
2010-04-14 09:38:51 +02:00
Yves Frederix 3e3c26c019 awful.menu: add item_enter in access key handling
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-04-12 10:05:55 +02:00
Sergey Mironov 0179eb3d9b awful.menu: Fix menu hide/show overloading
Fixes bug that prevents calling user-defined menu methods

Signed-off-by: Julien Danjou <julien@danjou.info>
2010-04-12 10:05:10 +02:00
Adrian C. (anrxc) dc5b09d3b0 awful.widget: add graph stack property
Initial implementation of stacked graphs. Adds two new methods,
set_stack (false by default) and set_stack_colors (i.e. {"red",
"white", "blue"}). The order of the colors matters, because the
add_value method now accepts an (optional) last argument, an index of
a color from your stack color group.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-03-29 17:39:16 +02:00
Adrian C. (anrxc) a68185647a awful.wibox: update struts on align()
Setting width or height (horizontal or vertical) to an arbitrary value
causes the wibox not to be stretched. Instead the align() function is
called, which might not modify any wibox property in many situations,
or none when align parameter was not provided by the user. The major
side effect is that wibox struts were never updated and clients
covered the wibox (until a first signal handler caused struts to be
updated).

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-03-23 11:06:37 +01:00
Adrian C. (anrxc) 463b76d42a awful.widget: add progressbar ticks property
Second implementation of the progressbar ticks. Adds set_ticks,
set_ticks_gap and set_ticks_size methods. Default gap is 1, size 4 in
respect to the default progressbar width of 100px.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-03-23 10:57:33 +01:00
Pierre Mazière 38435bb320 Avoid wibox borders to be recovered by clients
Signed-off-by: Pierre Mazière <pierre.maziere@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-03-19 10:02:18 +01:00
Pierre Mazière 05e2ab4d50 fix wibox origin when stretched
Signed-off-by: Pierre Mazière <pierre.maziere@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-03-19 10:02:18 +01:00
Pierre Mazière 4c00ad63a9 Add the possibity for dynamic menu
Return the label of the selected menu item as an argument for the
callback function

Signed-off-by: Pierre Mazière <pierre.maziere@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-03-17 15:59:48 +01:00
Adrian C. (anrxc) 20d16fb6ac awful.wibox: update position on height/width property change
Changing the width or height of a (right or bottom positioned)wibox,
after it was initialized, to a value different than used when it was
created would leave the wibox in a wrong position. Position was off by
as many pixels as the difference between the old and the new
value. Now every wibox is repositioned to reflect this new setup.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-03-04 09:31:45 +01:00
Adrian C. (anrxc) 21d3d2aae5 awful.widget: add progressbar set_max_value property
The awful.widget.graph allows to change the maximum value a graph can
handle, thus allows users to use widgets and scripts that don't scale
the values down to 0 - 1 range. The progressbars did not allow this
and worked with a hard-coded value of 1.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-03-02 11:59:52 +01:00
Adrian C. (anrxc) 9f537bcb37 awful.menu: sanitize support for access keys
Commit 87070ca introduced support for access keys in menus. Chosen
character was "&", an XML entity that has potential to cause problems;
if a user tries to add multiple access keys or just put an ampersand
in the name of the item the menu will break. Breaking happened because
ampersands were not escaped - first one was substituted and the rest
were ignored, but not escaped which triggered a pango markup error.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-03-01 15:57:14 +01:00
Matthias Schröder b38569913c awful.menu: support for access keys
You can define a menuitem like before:

awful.menu({ items = { { "&awesome", myawesomemenu,
	 		    beautiful.awesome_icon },
                       { "open &terminal", terminal },
	   })

and the letters following the ampersand in itemname can be used as
access key. (at least former fvwm users might find this familiar)

When there are submenus open awesome ascends during the search from the
current menu to the top level menu.

The access key is shown underlined.

There is no warning for multiple used keys, only the first one found
gets the price.

Signed-off-by: Julien Danjou <julien@danjou.info>
2010-03-01 15:57:00 +01:00
Adrian C. (anrxc) 56c1fdf226 awful.rules: fix client tagging with multiple screens
Commit a757dda replaced the awful.client.movetotag call with c:tags()
in the tag property handler. Which introduced a regression when more
than one screen is used. The awful.tag.withcurrent function was being
called even when there was a valid tag property. Now the clients
screen is set to the tag screen to ensure the client is moved to the
correct tag and screen.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-01-11 10:09:19 +01:00
Adrian C. (anrxc) dfd6060a53 awful.autofocus: improve client focus with multiple screens
Changing screen focus to an empty tag leaves focus on a client on the
previous screen, if a tag with clients is focused next the focus
remains on the previous screen. Now awful.autofocus compares the tag
screen and clients screen to learn if the focus should be given to a
client on the focused screen. Client that gets the focus is selected
from history, as usual.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-01-10 10:31:17 +01:00
koniu a757ddabc4 awful.rules: tag clients without flicker (FS#664)
We unregister the default awful.tag.withcurrent 'manage' signal handler
and have awful.rules.apply handle initial client tagging.

Signed-off-by: koniu <gkusnierz@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-01-08 19:11:25 +01:00
koniu a1f0669b64 awful.tag: register 'withcurrent' explicitly
This explicitly registers withcurrent(c) as a manage signal handler so
that it can be removed if necessary.

Signed-off-by: koniu <gkusnierz@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-01-08 19:11:24 +01:00
Adrian C. (anrxc) 9038c5165d awful.wibox: sanitize height/width args to function new()
When both height and width arguments are provided to the function
new() there is a check to see if one of them was a screen percentage,
and is expected to be a string. If the user provided absolute pixels,
and argument is of type number awesome will crash. Now tostring is
used to sanitize the arguments during this check.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-01-05 09:53:14 +01:00
Alex Alexander b24348219e wibox: fix align
awful.wibox.align() in 3.4.x gets the available screen area from
capi.screen[screen].geometry.

this can easily result in overlapping wiboxes since the work area
provided does not account for existing wiboxes.

In my configuration I use a vertical wibox positioned at the
right and it half-overlaps my top wibox because it is streched and
hard-coded to align at the middle.

Signed-off-by: Julien Danjou <julien@danjou.info>
2010-01-05 09:52:43 +01:00
Adrian C. (anrxc) 799c94ff48 awful.wibox: take wibox border into account when updating struts
Function wibox_update_strut would not take the border width into
account when calculating struts. When a wibox border was in use
clients would overlap the wibox. With a border of 1px we loose 1px of
the wibox, but as the wibox border increases it is "pushed" by the
border nearest the screen edge and clients steal more and more space.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-30 19:51:35 +01:00
Sébastien Gross a8425df036 tooltip: force place() if tooltip is not visible
Commit 6c5d0ca9 introduced a side effect. If tooltip text isn't changed
place() function is not called. To prevent multiple place() set_geometry
calls that function when tooltip is not visible (before it appears to the
user).

Signed-off-by: Sébastien Gross <seb•ɱɩɲʋʃ•awesome•ɑƬ•chezwam•ɖɵʈ•org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-03 14:22:21 +01:00
Adrian C. (anrxc) 878f9e7580 awful.menu: add keygrabber support to clients menu
Functions show() and toggle() accept a boolean parameter controlling
keyboard navigation. In case of the clients menu neither is called
directly, instead the clients menu is always re-created in case any
new clients appeard since the last invocation. This patch adds a
keygrabber parameter to the clients() function as well.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-03 14:22:15 +01:00
Hiltjo Posthuma 4c2c741743 Rules: check if properties of a rule exist
Actually check if properties are set now, since we can also only
apply callbacks now.

Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-25 17:10:13 +01:00
perry 298f773357 Revert "awful.autofocus: fix multiple screens autofocus"
This reverts commit 7575f64993.

As seen on ML:

Switching tags with multiple heads causes focus to change
screens with this commit

Signed-off-by: perry <perry.hargrave@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-23 19:28:36 +01:00
Hiltjo Posthuma b097266925 awful.menu: use actual wibox border width
We check the wibox border width for inappropiate values now, if we set
border_width to a negative value (invalid) in our theme and draw it, the
actual border_width will be 0 so the menu will be drawn incorrectly.
This fixed this.

Signed-off-by: Hiltjo Posthuma <hiltjo@codemadness.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-21 10:48:10 +01:00
Levin Du 553bf417f8 Fix awful.util.table.reverse
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-17 10:25:21 +01:00
Tomi Belan 064f4c92fd awful.autofocus: fix multiple screens autofocus
There might be multiple screens with visible windows. When closing the
last window of the current screen, try to focus them as well.

If no window has focus and yet some windows are visible (e.g. on another
screen), awesome misbehaves: it uses sloppy keyboard focus (as is the X11
default), but doesn't refresh their border colors or tasklists etc.

Signed-off-by: Tomi Belan <tomi.belan@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-16 15:15:14 +01:00
Adrian C. (anrxc) 6c5d0ca90c awful.tooltip: call set_geometry on show()
Function set_geometry was never called if the timer_function argument
was omitted. show function only called place() which would not display
a tooltip since it didn't have proper geometry.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-11 17:48:42 +01:00
bob 82dd61a692 awful.rules: add "callback" option when a rule matches
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-09 10:26:58 +01:00
Julien Danjou a146ad7e19 awful.layout: emit arrange signal
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-06 12:39:48 +01:00
Lukas Hrazky 21223cabd9 progressbar: remove minimum size limit
Signed-off-by: Lukas Hrazky <lukkash@email.cz>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-26 17:27:29 +01:00
Lukas Hrazky dea2a1f30f progressbar/graph: fix rounding and graph drawing
Signed-off-by: Lukas Hrazky <lukkash@email.cz>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-26 17:27:26 +01:00
Julien Danjou 735e612362 awful.tag: fix new when layout is nil
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-26 11:12:03 +01:00
Zsolt Udvari b853f2df0a awful.tag: allow table as layout argument (FS#670)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-26 10:59:05 +01:00
Anton Bobrov 148e095fa9 awful.rules: apply accumulated rule properties (FS#669)
To avoid the screen flickering, when two rules have different tags
with true switchtotag.

Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-26 10:27:58 +01:00
Damjan e7819ec211 awful.menu: fix gap (FS#665)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-26 10:07:56 +01:00
Gregor Best 851889f2b7 awful.screen: fix padding
Signed-off-by: Gregor Best <gbe@intepi.net>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-09 20:05:42 +02:00
Julien Danjou 8c109794d9 awful.titlebar: set a default name if client's nil (FS#653)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-09 16:14:42 +02:00
Felix Herrmann b6e731b566 awful.widget.graph: fix typo in documentation
Signed-off-by: Felix Herrmann <felix@herrmann-koenigsberg.de>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-30 15:47:43 +02:00
Julien Danjou 9c651933a4 Revert "awful.layout.suit.magnifier: simplify"
This reverts commit f3c57faf1d.
2009-09-28 14:41:54 +02:00
Julien Danjou 9166584b96 awful.tag: fix view{only,more}
Now they do not select multiple tags at once, and they do not flicker.

Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-28 11:24:39 +02:00
koniu 52c4461169 awful.tag: fix typo in viewmore
Signed-off-by: koniu <gkusnierz@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-28 10:14:36 +02:00
Julien Danjou 61d2712076 awful.completion: use sort -u to sort (FS#621)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-22 17:15:49 +02:00
Gregor Best ae0bf17af2 awful.tag: fix screen in viewonly
Signed-off-by: Gregor Best <gbe@intepi.net>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-22 16:33:53 +02:00
Julien Danjou 7c5ba1fcef awful.tag: filter out window before switching screens (FS#633)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-22 16:09:44 +02:00
Julien Danjou 9388dc5a1e awful.client: fix initial geometry storage (FS#608)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-22 15:56:58 +02:00
Julien Danjou d4e6411971 awful.tag: make viewmore smarter
This avoids flickering.

Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-22 15:11:40 +02:00
Julien Danjou 743603d24d awful.tag: make viewonly more smart (FS#634)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-22 14:09:56 +02:00