Commit Graph

7427 Commits

Author SHA1 Message Date
Emmanuel Lepage Vallee 47fffb5eee mouse: Add current_client property
It is called wibox instead of drawin because from the user
point of view, it will be a wibox anyway.
2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee fc2d359722 doc: Add a coords example
This forced the `coords()` documentation to be moved to Lua.
Keeping it in the C file caused yet another example CMake hack.
2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee 800b8c7d4a doc: Merge awful.mouse and mouse documentation pages
Just like client, tag and screen, this is to avoid new users some
confusing implementation details.
2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee e8dd707508 tests: The the mouse miss handler 2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee 0b6cd90dce mouse: Implement the Lua custom property handler 2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee 424181248a mouse: Add property miss handler.
Just like luaobject has, but for "static" classes.
2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee f0546b900d tests: Improve the placement compositing tests 2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee bb0a2addb4 tests: Add an option to disable @usage ldoc tag 2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee 07e1b975a7 mouse.snap: Use a composed placement function 2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee 1802e9e2fe awful.placement: Add a `scale` function 2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee 80ee4e9f5d awful.mouse.snap: Add a visual cue 2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee 91cdc4a899 awful.mouse.snap: Support windows 7 style screen edges snap 2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee baec2efe2d awful.mouse.move: Fix snapping support 2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee 86ca6222e2 awful.mouse.snap: Add a configurable default distance 2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee 2624370cc0 awful.mouse: Move snap into a submodule 2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee b5a1a8d6e5 layout: Handle tiled client request::geometry 'mouse.move' 2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee 688021d087 ewmh: Ignore request::geometry for tiled clients
It causes flicker
2016-04-30 04:27:34 -04:00
Emmanuel Lepage Vallee cdcfb913f1 awful.mouse: Move clients using request::geometry 2016-04-30 04:27:33 -04:00
Emmanuel Lepage Vallee c286470c17 awful.placement: Port `under_mouse` to the new argument syntax 2016-04-30 04:27:33 -04:00
Emmanuel Lepage Vallee 2f819df7f7 awful.placement: Add 'offset' argument 2016-04-30 04:27:33 -04:00
Emmanuel Lepage Vallee e6a04a5922 awful.placement: Extend the compositing feature
It can now keep the different return values and use them in
later chain nodes.

It also add a "virtual" geometry argument so the geometry is applied
only after the last node is executed.

Finally, it fixes using pretend and a composite chain at the same time.
2016-04-30 04:27:33 -04:00
Emmanuel Lepage Vallee be455cb140 awful.mouse: Add a request::geometry handler. 2016-04-30 04:27:33 -04:00
Emmanuel Lepage Vallee f8f57fb6b7 awful.mouse: Add a generic mousegrabber
Previously, all layouts had their own mouse grabbing logic. The
new one is based on the client request::geometry feature.
2016-04-30 04:27:33 -04:00
Emmanuel Lepage Vallee e93e2913b6 awful.placement: Fix a closest_corner corner case
When the mouse was exactly on the right or bottom edge, there was a
rounding error.
2016-04-30 04:27:33 -04:00
Emmanuel Lepage Vallee 7242b30c01 awful.mouse: Deprecate awful.mouse.client.corner 2016-04-30 04:27:33 -04:00
Emmanuel Lepage Vallee 75af0a24c7 awful.placement: Add a 'pretend' option 2016-04-30 04:27:33 -04:00
Emmanuel Lepage Vallee 75764108e1 awful.placement: Make all functions return the geometry 2016-04-30 04:27:33 -04:00
Emmanuel Lepage Vallee 3e7a7f23c2 tests: Test awful.placement.resize_to_mouse 2016-04-30 04:27:33 -04:00
Emmanuel Lepage Vallee 5f17f1aa83 resize_to_mouse: Support size_hints 2016-04-30 04:27:33 -04:00
Uli Schlachter daf05e6eb1 xresources theme: Use a RecordingSurface for wallpaper
This theme draws a minimal wallpaper directly. This commit replaces the
ImageSurface of the wallpaper with a RecordingSurface. This shouldn't have any
visible effect, except for reducing memory usage, because an ImageSurface needs
a lot of memory and is only eventually released by the garbage collector. A
RecordingSurface instead just records the operations that were done which needs
a lot less memory for the simple operations done here.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-30 09:36:50 +02:00
Uli Schlachter 1714a6513b xresources theme: Let beautiful.wallpaper be a function
This makes the code create a wallpaper of the correct size, instead of cairo
later having to scale the wallpaper up to fill the screen (if it has a different
size than screen 1).

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-30 09:36:50 +02:00
Uli Schlachter a55baf9e3c Default config: Allow beautiful.wallpaper to be a wallpaper
This e.g. allows themes to specify different wallpapers for different screens.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-30 09:36:50 +02:00
Emmanuel Lepage Vallee 604ea15c45 awful.placement: Add a 'resize_to_mouse' function 2016-04-30 03:34:14 -04:00
Emmanuel Lepage Vallee a072e34194 shims: Add the request:: signals 2016-04-30 03:34:14 -04:00
Uli Schlachter a1e340d118 Merge branch 'replace-popen-to-async' of https://github.com/actionless/awesome 2016-04-30 09:11:50 +02:00
Uli Schlachter a60b718db2 Merge branch 'placement-fallback-to-screen.workarea' of https://github.com/blueyed/awesome 2016-04-30 09:11:33 +02:00
Uli Schlachter 2da981afdd Merge branch 'screen-gc' of https://github.com/psychon/awesome 2016-04-30 09:10:26 +02:00
actionless 4eb80853c2 feat(lib: menubar): replace io.popen to lgi 2016-04-28 17:07:24 +02:00
Emmanuel Lepage Vallée 201090100b Merge pull request #854 from actionless/use-gio-in-awful-util-is-dir
refactor(awful: util): use lgi.Gio for is_dir
2016-04-28 00:06:11 -04:00
Emmanuel Lepage Vallee 693a87ef2e mouse: Avoid an error when the client is killed while moving
to reproduce:

1) spawn an xterm
2) enter 'sleep 10 && killall xterm'
3) start moving the terminal

There will be an error

(found by a yet to be commited integration test)
2016-04-27 19:55:39 -04:00
actionless 14f7d20d0f refactor(awful: util): use lgi.Gio for is_dir 2016-04-27 18:30:41 +02:00
Wolfgang Popp 76313263b6 Add clear() function to awful.widget.graph and doc fixes (#847)
* awful.widget.graph: add clear() function.

* awful.widget.graph: doc fixes for add_value.
add_value did not show up in generated luadoc. And the value parameter does not need to be between 0 and 1.

* awful.widget.graph: local functions clear and add_value as methods of graph.
2016-04-26 22:14:09 +02:00
Daniel Hahler ad304a2596 Make awful.client.focus.history.list public (#842)
There used to be `awful.client.data.focus`, which was moved to
`awful.client.focus.history.internal`.
While the former was accessible, the latter is not.

This is useful to get a list of most recently focused clients, without
having to hook into the signal yourself.

Closes https://github.com/awesomeWM/awesome/issues/841.
2016-04-26 10:02:23 +02:00
Uli Schlachter c6fafe06c0 Default config: Remove tags table
Tags are accessible as s.tags on a screen object. Yup, that's harder to find
than a variable that is defined in the default config, but such is life.

Now that awful.rules supports specifying tags by name, I guess that the number
one reason for needing the tags table is gone.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-26 09:36:53 +02:00
Uli Schlachter 330aa49912 default config: Only have a single connect_for_each_screen()
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-26 09:34:54 +02:00
Uli Schlachter a0d47f8ea5 awful.wibox: Fix some minor things
capi.awesome is unused and capi.screen is unused, but really should be used.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-26 09:34:54 +02:00
Uli Schlachter 9b44e9a011 tag:delete(): Allow deletion of the last tag
When a tag is deleted, this code tries to select some other tag. If the tag
which is to delete is the last tag of a screen, this code failed and indexed a
nil value. Fix this with a simple "if".

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-26 09:34:54 +02:00
Uli Schlachter 2485d334cf awful.layout.arrange(): Handle screen removal
If a screen is removed while a re-layout is pending, previously this code would
cause errors and problems. Since the screen is gone, there is nothing to arrange
anyway and we can just not do anything.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-26 09:34:54 +02:00
Uli Schlachter fc390ff405 Use weak keys for referring to screens
This commit changes some tables that are used for per-screen stuff to have weak
keys, so that the screens can be garbage-collected, if needed.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-26 09:34:54 +02:00
Uli Schlachter 0d4cc5f43a Fix integer overflow in overflow checking functions (#851)
The min/max arguments to the integer range checking functions are integer. We
call these with UINT32_MAX in two places and this value (notice the "U" for
"unsigned") does not fit into a signed integer. Hence, there is an integer
overflow at compile time and the maximum value that is actually checked for is
-1.

Fix this by using lua_Number (double) instead of int.

Fixes: https://github.com/awesomeWM/awesome/issues/840
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-26 00:51:51 +02:00