Emmanuel Lepage Vallee
8ffafe4690
tests: Test gears.geometry.rectangle.are_equal.
2019-09-04 13:11:54 -04:00
Emmanuel Lepage Vallee
f60abed1d0
gears.geometry: Add a function to compare 2 rectangles.
...
The next step will be to find all the places where this is duplicated.
2019-09-04 13:11:47 -04:00
Emmanuel Lepage Vallée
f1335be21a
Merge pull request #2855 from Elv13/screen_geo_template
...
doc: Add some images to represent the various area of a screen.
2019-08-25 15:48:18 -04:00
Aire-One
d97dccfa1f
doc: Improve the screen padding image.
...
It now shows the padding instead of the tiling area.
2019-08-25 15:35:17 -04:00
Emmanuel Lepage Vallée
d0fcf9b369
Merge pull request #2759 from Elv13/improve_shims
...
Improve the shims
2019-08-25 15:12:45 -04:00
Emmanuel Lepage Vallee
602d6ded07
doc: Add some images to represent the various area of a screen.
2019-08-19 01:48:00 -04:00
Emmanuel Lepage Vallee
6cb54db6c1
tests: Fix tag:clients() in the shims
2019-08-18 02:44:34 -04:00
Emmanuel Lepage Vallee
84a0ca56a2
tests: Implement dynamic properties for the client shims.
...
This way enough signal are sent to display clients modified by the
rules.
2019-08-18 02:44:34 -04:00
Emmanuel Lepage Vallee
9283719bfb
tests: Implement the fake_* screen methods
2019-08-18 02:44:34 -04:00
Emmanuel Lepage Vallee
f0b6e36ac1
tests: Implement mouse.screen properly
2019-08-18 02:44:34 -04:00
Emmanuel Lepage Vallee
e8c1463ce3
tests: Compute root.size() cxorrectly
2019-08-18 02:44:34 -04:00
Emmanuel Lepage Vallee
4eda67ce54
tests: Add the struts to the shims
2019-08-18 02:44:34 -04:00
Emmanuel Lepage Vallee
44e6b2d24e
shims: Always return something for c:tags()
2019-08-18 02:44:34 -04:00
Emmanuel Lepage Vallee
48f973f2eb
tests: Add awesome.xrdb_get_value to the shims
2019-08-18 02:44:34 -04:00
Emmanuel Lepage Vallee
ef508462b8
shims: Add a better error message when mouse.screen is called too early.
2019-08-18 02:44:34 -04:00
Emmanuel Lepage Vallee
d3a0dcffcd
tests: Add client:kill() to the shims.
2019-08-18 02:44:34 -04:00
Emmanuel Lepage Vallee
a18348542c
shims: Enforce working on valid screen objects.
...
Previously it was possible to manipulate deleted screens and that
made debugging harder down the line. By catching this early, it
wont be as nightmarish.
2019-08-18 02:44:34 -04:00
Emmanuel Lepage Vallee
ce2dbea510
shims: Avoid a race condition when setting the mouse screen.
2019-08-18 02:44:34 -04:00
Emmanuel Lepage Vallee
f7c0f419e9
shims: Fix indentation
2019-08-14 00:55:27 -04:00
Emmanuel Lepage Vallee
1617c894cc
tests: Use rawget to avoid trigerring the tripwire.
...
The next commit will introduce extra checks that would otherwise
break this.
2019-08-14 00:55:27 -04:00
Emmanuel Lepage Vallée
b2ebf899d7
doc: Fix a broken reference. ( #2850 )
2019-08-12 00:31:41 -07:00
Emmanuel Lepage Vallée
1e59fc7fd2
Merge pull request #2828 from Elv13/matcher_v2
...
Improve `gears.matcher` to be more flexible.
2019-08-11 22:29:35 -07:00
Emmanuel Lepage Vallée
ed0918385c
Merge pull request #2825 from Elv13/yet_more_notif_fixes
...
Support the notification spec v1.2
2019-08-10 12:47:09 -07:00
Emmanuel Lepage Vallée
794da2abec
Merge pull request #2847 from Elv13/layoutlist_memleak
...
layoutlist: Use weak tables to store the cache.
2019-08-08 23:54:37 -07:00
Emmanuel Lepage Vallee
f3dc57f3f4
layoutlist: Add more caching.
...
Technically this doesn't solve any memory leak, but AwesomeWM uses in
average less memory when changing the selected tab in quick succession.
This is because it has less "temporary" tables to track.
2019-08-07 04:27:56 -04:00
Emmanuel Lepage Vallee
d832b8c9b8
layoutlist: Use weak tables to store the cache.
2019-08-07 03:21:17 -04:00
Emmanuel Lepage Vallée
c4c97174e6
doc: Fix a rendering regression regarding backgrounds. ( #2820 )
...
The way background are rendered changed to accomodate issues regarding
cliping and border. However this broke the documentation examples.
This commit fixes this in the least hacky way I found.
Fixes #2727
2019-08-06 22:48:06 -07:00
Emmanuel Lepage Vallee
67e5dd3091
matcher: Match all sources when none is provided.
...
Nobody wants to set this parameter. It is necessary because the old
API allowed `awful.rules` to be used with random for random matching.
This stopped "really" working between the 3.4 and 3.5 release because
the code started to accumulate "corner case" fixes aligned with the
client properties. v4.0 added more ordering and v4.3 added external
sources. After this, it is unusable with external objects, but
`gears.matcher` handle this use case very well.
2019-08-06 02:20:01 -04:00
Emmanuel Lepage Vallee
91ca922671
tests: Test the gears.matcher greater and lesser sections.
2019-08-03 18:26:06 -04:00
Emmanuel Lepage Vallee
64bef57013
matcher: Add a `greater` and `lesser` matching sections.
...
In a perfect world we would have pure expression matching, but
that's problematic with all the "metaness" of the code. For now,
this adds an imperfect way to match the minimum and maximum of
number properties.
It will be used by the screen rules for the DPI and size properties.
2019-08-03 18:26:06 -04:00
Emmanuel Lepage Vallee
2dc8c62b9b
tests: Test gears.matcher "rule_every".
2019-08-03 18:26:06 -04:00
Emmanuel Lepage Vallee
b40083780e
matcher: Add a "every" and "every_any" sections to the rules.
...
So far the "any" rules had a "OR" and "NOT" logic "gates", but not
an "AND".
2019-08-03 18:26:06 -04:00
Emmanuel Lepage Vallee
3e4f292906
matcher: Fix the doc.
...
It was developed in parallel to the new doc format and wasn't updated.
2019-08-03 18:26:06 -04:00
Emmanuel Lepage Vallee
774465df4d
doc: Add the new grears.matcher features to the lone example.
...
This isn't really intended to be used outside of the object rules.
2019-08-03 18:26:06 -04:00
Emmanuel Lepage Vallee
801ae69f23
matcher: Add a custom setter for "fake" object properties.
...
This is hardcoded in `awful.rules`, but cannot be shared due to the
priority corner cases. Given in the long run any "standard" priority
should use the topological sort API, better not try to share *that*
code.
2019-08-03 18:26:06 -04:00
Emmanuel Lepage Vallee
9a16ee62e6
matcher: Add a way to match properties beside == and patterns.
...
It is useful for objects and avoid the mess that it Lua == overload.
The primary use case will be to match tags by name or object.
2019-08-03 18:26:06 -04:00
Emmanuel Lepage Vallee
f3f9e4a4b5
matcher: Allow rules to be addressed using an identifier.
2019-08-03 18:26:06 -04:00
Emmanuel Lepage Vallee
886f8ea4e3
matcher: Use gears.object.
...
This way there's some signals. It can be useful if the module using the
matcher needs to act when something happens.
2019-08-03 18:26:05 -04:00
Emmanuel Lepage Vallee
d8b53dac5d
matcher: Add methods to add new rules.
...
It is now possible to add and remove rules. This is superior to how
`awful.rules` originally handled rules because modules can now
assume adding and removing rules works.
The reason for the methods rather than `table.insert` is partially
because future commits will add signals. In turn, this will allow
`gears.matcher` to be extended by module using it using the extra
"introspection" made possible by the signals.
2019-08-03 18:26:01 -04:00
Emmanuel Lepage Vallee
6d58d7b4a2
tests: Test that the legacy naughty popup is used when the new API fails
...
Displaying errors is important. If the notification popup caused the
error, it was likely nothing could be displayed.
2019-08-03 01:45:22 -04:00
Emmanuel Lepage Vallee
dcd034dcac
naughty: Add 2 levels of fallback when the `widget_template` fails.
...
* First, it will try the default widget template
* If that fails, the `request::fallback` handler will use the legacy
popup.
Ref #2829
2019-08-03 01:45:22 -04:00
Emmanuel Lepage Vallee
c0ef0c8802
tests: Expose the previously private gears.protect_call error handlers.
...
This will allow the test suits to intercept them instead of adding more
and more exceptions to `run.sh`.
2019-08-03 01:45:22 -04:00
Emmanuel Lepage Vallee
423aeebe8a
naughty: Add more default values.
...
Without this, some variables could accidently be set to `nil` by the
dbus code. Ignore now also has a default.
Ref #2829
2019-08-03 01:45:22 -04:00
Emmanuel Lepage Vallee
529f4be53e
tests: Check that naughty emits "request::display_error" when needed.
2019-08-03 01:45:22 -04:00
Emmanuel Lepage Vallee
aed2af44b6
tests: Check if using client icon doesn't exceed the size constraints.
2019-08-03 01:45:22 -04:00
Emmanuel Lepage Vallee
6761778830
tests: Test the notification icon theme request::icon support.
2019-08-03 01:45:22 -04:00
Emmanuel Lepage Vallee
4fe05a566d
tests: Test exposing the notification persistence and animation props
2019-08-03 01:45:22 -04:00
Emmanuel Lepage Vallee
7d609fb69b
tests: Test the notification spec v1.2 "resident notification" support.
...
If a notification is resident, invoking an action should not destroy it.
If an action is not resident, invoking an action destroys it.
2019-08-03 01:45:22 -04:00
Emmanuel Lepage Vallee
30b42905da
notification: Fix a typo in the closed_reason API name.
...
It wasn't part of a release and nobody uses that anyway.
2019-08-03 01:45:22 -04:00
Emmanuel Lepage Vallee
1bd2c1977e
notification: Add an `append_actions` method.
...
The name is self explanatory, it adds more actions to a notification.
One of the use case is adding a snooze/reming_me action. Another one
is "mute similar notifications".
2019-08-03 01:45:22 -04:00