This contains general C API fixes:
1) Remove module declarations in LUA and use the @module directives
2) Fix indentation/usage where necessary
Signed-off-by: Ignas Anikevicius (gns_ank) <anikevicius@gmail.com>
This converts the old documentation style into the new one to use
markdown instead of HTML in bigger doc blocks. Also, we can use block
comments, which means that writting documentation (and indenting code
blocks) easier.
Signed-off-by: Ignas Anikevicius (gns_ank) <anikevicius@gmail.com>
Use markdown support, which is bundled together with LDoc.
Also, add a macro for the client type, which will simplify parameter
definitions. With this we can write `@client` instead of `@tparam
client` in order to denote that the parameter needs to be a client
structure. This simplifies `awful.client` module.
This also excludes some of the `.lua` files from generating the
documentation, because some of the files do not contain useful
information or any public functions at all. This make the docs easier to
navigate.
Remove layouts from documentation
Signed-off-by: Ignas Anikevicius (gns_ank) <anikevicius@gmail.com>
When minimizing a client, we temporarily ignore events for the client window (so
that we don't get the UnmapNotify event that we are causing for the unmap) and
for the root window (I don't actually know why, no "harmful" events should be
caused...).
However, we weren't ignoring events on the frame window itself. This commit
fixes that oversight.
The problem here is that the pointer could be inside the window that is being
minimized. When we then unmap said window, the pointer will now be inside of the
frame window and the X11 server will thus generate an EnterNotify. When we
handle this event later on, we emit mouse::enter on the client and e.g. the
default config then focuses this client, which undoes the minimization.
This fixes a regression introduced in commit 3aeac3870c and fixes#92.
Signed-off-by: Uli Schlachter <psychon@znc.in>
After a client gets unmanaged, the newly focused client might not be
visible / raised above other windows.
Using the `request::activate` signal makes the autofocus handler more
flexible, and will raise the focused client by default.
Busted now only provides the magic modules `assert`, `spy` etc for
the busted context. The helper module `spec/wibox/test_utils.lua`
therefore needs to explicitly require them.
Ref: https://github.com/awesomeWM/awesome/pull/139
Create a pixmap of size 1x1 and a cairo-xcb surface for this pixmap. If the
surface ends up in an error state, awesome will refuse to start.
This turns a "awesome is unusable and prints lots of errors on X11 servers where
the root window has a depth of 8bpp and no one knows where exactly the problem
is" into "awesome refuses to start on such X11 servers and prints an error that
helps Uli to say immediately what the problem is".
Signed-off-by: Uli Schlachter <psychon@znc.in>
This avoids awful.autofocus to kick in, focusing some other client in
between (where a focused signal would get emitted for, although the
intermediate client was never meant to have focus).
This is the traceback:
stack traceback:
/home/user/.config/awesome/cyclefocus/init.lua:199: in function 'add'
/home/user/.config/awesome/cyclefocus/init.lua:309: in function </home/user/.config/awesome/cyclefocus/init.lua:304>
[C]: ?
/usr/local/share/awesome/lib/awful/autofocus.lua:22: in function 'check_focus'
/usr/local/share/awesome/lib/awful/autofocus.lua:31: in function </usr/local/share/awesome/lib/awful/autofocus.lua:28>
[C]: ?
/usr/local/share/awesome/lib/awful/tag.lua:517: in function 'viewonly'
/usr/local/share/awesome/lib/awful/client.lua:69: in function 'jumpto'
/home/user/.config/awesome/rc.lua:1188: in function 'client_run_or_raise'
/home/user/.config/awesome/rc.lua:1217: in function 'run_or_raise'
/home/user/.config/awesome/rc.lua:1243: in function 'press'
/usr/local/share/awesome/lib/awful/key.lua:42: in function </usr/local/share/awesome/lib/awful/key.lua:42>
Ref: https://github.com/awesomeWM/awesome/pull/19
This supersedes https://github.com/awesomeWM/awesome/pull/107.
This property is especially useful for client objects which are unusable after
unmanage. "Unusuable" here means that pretty much everything you do with the
client object results in a lua error.
Syntax is c.valid.
Signed-off-by: Uli Schlachter <psychon@znc.in>
If a client's width/height is larger than the screen's geometry, align
it at the screen's x/y offset.
Test case with gvim, from a maximized terminal on a floating tag:
% gvim -u NONE -N --cmd "set lines=$((LINES + 5))"
Without this patch the top of the window is off-screen, but the bottom
should be. Fixing it using a number of lines that fit the screen should
display the window completely.