This saves space when constructing widgets, because some common cases can now be
done in a single line of code.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit makes it possible to change the wm_name attribute, which
means that programs can be shown/hidden according to the wishes of the
user.
Possible usecase: A user is using Gnome and Awesome together, but sinc
wm_name by default is awesome, all the apps shipped with GNOME DE are
hidden by default. Changing wm_name attribute in this case would solve
the issue.
Signed-off-by: Ignas Anikevicius (gns_ank) <anikevicius@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
This replaces lots of function foo.bar(this, ...) with function foo:bar(...).
There should be no other changes in this commit.
The point is to make it easier for api documentation tools to figure out that
these are methods on objects.
Signed-off-by: Uli Schlachter <psychon@znc.in>
The notification spec allow sending icons as data with a dbus message. The
rowstride for this can be set which means there can be bytes after each row of
icon data which must be ignored.
Before this commit, naughty wasn't properly ignoring these garbage bytes which
resulted in weird notifications.
Thanks to dadrc for reporting that gmusicbrowser's notifications didn't work.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Drawables could never be garbage-collected, because of the "wallpaper_changed"
signal. The callback function for this signal kept a strong reference to the
drawable.
Fix this by putting all drawable's draw() methods into a weakly keyed tabled so
that the strong reference to them disappears.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Size hints should be applied to the "real" client geometry. That means the area
taken by titlebars should be ignored.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This commits adds the necessary lua code so that we finally can have titlebars.
As the baseline for the needed functionality, the titlebar code in awesome 3.4
and a quick poll on the mailing list were used.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Signals are emitted on individual objects and on the class for a while now. This
can be used to simplify this function a lot.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This new property is used for fixing some missing redraws that the old code had.
Those could be seen via awful.menu. Open and close a submenu repeatedly and the
submenu will appear black.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit makes it possible to add titlebars to a client. These titlebars are
drawables.
The drawin's input handling is moved to the drawable. This allows it to use the
same code for drawin and titlebar input handling, although there are lots of
differences between the two on the C side.
On the lua side, a new wibox.drawable module is created which handles all the
drawable-specific magic and which can also be used for titlebars.
Signed-off-by: Uli Schlachter <psychon@znc.in>
A drawable is something that you can draw to, just like a drawin. However, a
drawable isn't necessarily its own windows. This will later on be used to
implement titlebars where the titlebars are drawables.
Signed-off-by: Uli Schlachter <psychon@znc.in>
It helps a lot to know which signal does not exist. That should make it a lot
easier to look for the "guily" code without having to resort to the backtrace.
Signed-off-by: Uli Schlachter <psychon@znc.in>
The wrong module names were introduced in commits:
0e2960ebf3 and
d799ac76aa.
Once fixed, client.lua and screen.lua mutually require each other, so we must
use a trick, and load the modules inside the functions that need them.
Signed-off-by: Uli Schlachter <psychon@znc.in>
When changing focus to an other screen, awful.screen.focus keeps relative
position of the cursor, instead of moving to the top left corner. Does not
trigger mouse:enter and mouse:leave signals.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Added functions awful.client.focus.global_bydirection and
awful.client.swap.global_bydirection, that change focus and swap clients,
crossing screen boundaries.
Also modified awful.client.movetoscreen. Now calls awful.screen.focus.
Signed-off-by: Uli Schlachter <psychon@znc.in>
The function awful.screen.focus_bydirection changes the screen focus
according to physical position. The code is based on
awful.client.focus.bydirection.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Add a parameter to configure menubar's prompt.
Signed-off-by: Alexander Yakushev <yakushev.alex@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
After the rewrite from modules they ended up being local, but should
be available to user externally.
Also remove unnecessary local context bindings.
Signed-off-by: Alexander Yakushev <yakushev.alex@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
dump_return is no longer local, so debug prefix must be provided
Signed-off-by: Alexander Yakushev <yakushev.alex@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
This function is the counterpart of awful.client.setslave.
Windows is moved to the first position in the stack.
Signed-off-by: Sébastien Luttringer <seblu@seblu.net>
Signed-off-by: Uli Schlachter <psychon@znc.in>
When a property is now set to a function, the function's return value will be
used for the value of the property. The function gets the new client as its only
argument.
There is no property which accepts a function as its value and thus this change
can't break anything (yeah, famous last words...).
This should fix half of FS#1011. Panels now don't get focused by awful.rules.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Without this, input handling is broken (draw_widget() registers each widget with
its position for input handling).
This also removes some unnecessary save()/restore() calls. Our caller (again
draw_widget()) already does that for us.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This makes tag.viewidx take a screen index rather than a screen object,
complying with its doc string. This fixes#963.
Signed-off-by: Felix Bier <flx.bier@googlemail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>