Commit Graph

10366 Commits

Author SHA1 Message Date
Aire-One 3ed2fc8500 doc(@supermodule): Add to wibox.widget modules 2021-04-02 19:24:07 +02:00
Aire-One 5baa1c97cd fix(ldoc.ltp): Identify inherited items by name 2021-04-02 19:24:07 +02:00
Aire-One 93e9361280 fix(ldoc.ltp): item.inherited can be wrongly false
For some reasons, sometime `item.inherited` is `false` even if the
item was added to the `all_module_kinds` table by the "hierarchy
lookup" for-loop, and we already force the `inherited` property to be
sets to `true` at this moment.

With this commit, we add a second fail-check condition based on the
`item.baseclass` property to determine if the item is inherited or not
when we do the render.
2021-04-02 19:24:07 +02:00
Aire-One 12662d4cb1 doc(@supermodule): wibox.widget.base doc 2021-04-02 19:24:07 +02:00
Aire-One 3a6fa10754 doc(@supermodule): gears.object inheritable doc 2021-04-02 19:24:07 +02:00
Aire-One b82d2a690f doc(@supermodule;ldoc.ltp): Find inherited members
This commit uses the `@supermodule` tag to recursively find all the
properties from supermodules and add them to the current module
documentation.
2021-04-02 19:24:07 +02:00
Aire-One 4dd689f181 doc(@supermodule;ldoc.ltp): Draw hierarchy tree
This commit adds a new ldoc custom tag `@supermodule`. It has to be
used at the module level. It should refer to the module
supermodules.

This tag can be used multiple time by the same module, but we ignore
other calls (for now?) as (AFAIK) we only use one way inheritance.

This tag is used in the ldoc template to find modules hierarchy and
draw the inheritance tree. It makes it easy to find and navigate to
parents modules.
2021-04-02 19:24:07 +02:00
mergify[bot] 7a8fa9d27a
Merge pull request #3294 from sclu1034/feature/count_keys
Add utility to count table keys
2021-04-01 07:42:25 +00:00
mergify[bot] 972a194b01
Merge pull request #3307 from sclu1034/feature/docs
Various docs improvements
2021-04-01 07:42:11 +00:00
Lucas Schwiderski 112dc8054e
docs(tutorial): Fix line wrap
Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-31 08:29:40 +02:00
Lucas Schwiderski 8907f5bfbb
docs(tutorial): Improve instructions to edit theme
Fixes #3306.

Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-31 08:29:39 +02:00
Lucas Schwiderski f68939bfc1
chore(g.table): Add missing modeline 2021-03-31 08:29:00 +02:00
Lucas Schwiderski ec3788bf73
docs(g.table): Improve parameter descriptions 2021-03-31 08:27:08 +02:00
mergify[bot] 95558ac919
Merge pull request #3297 from actionless/dont-crash-when-gtk4-installed
fix(beautiful: gtk): don't crash when both gtk3 and gtk4 are installed
2021-03-29 15:49:37 +00:00
Emmanuel Lepage Vallée 13e8408562
Merge pull request #3284 from sclu1034/issue/3213
Fix composite widgets with top level container
2021-03-28 16:00:16 -07:00
Lucas Schwiderski c0380e3080
Remove nonexistent property from example (#3302)
See
<https://www.reddit.com/r/awesomewm/comments/lzgecn/what_intrusive_true_means_in_the_properties_of/>.

Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-28 15:36:06 -07:00
Emmanuel Lepage Vallée 7050ba083f
Merge pull request #3301 from Elv13/graph_doc
Graph doc
2021-03-28 15:34:01 -07:00
Emmanuel Lepage Vallee 743b327348 Revert "Another ugly hack to get Travis to show output"
This reverts commit 97a60818c4.
2021-03-28 02:38:51 -07:00
Emmanuel Lepage Vallee a5c4377901 Revert "I want to see the error message!!!"
This reverts commit 1792780cf3.
2021-03-28 02:38:43 -07:00
Emmanuel Lepage Vallee c48e138b01 doc: Add examples for the graph. 2021-03-28 02:37:25 -07:00
Yauhen Kirylau 6ef3a8f059
fix(gears: colors: recolor_image): always duplicate the surface (#3233) 2021-03-27 23:48:48 -07:00
Emmanuel Lepage Vallée 54e9cb4e1d
Merge pull request #3279 from sclu1034/feature/custom_build_lua_executable
Make CMake Lua executable customizable
2021-03-27 23:42:40 -07:00
Lucas Schwiderski e7d55567a6
Remove redundant assignment
Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-27 14:08:47 +01:00
Shay Agroskin 62850476d2 layout/fixed: Prevent overloading widgets with negative spacing
For each widget, the layout function checks whether placing it would
make the function exceed the allowed geometry.
If not, the function places both the widget and a spacing widget.
This check ignores the size of the spacing widget itself, this can cause
overloading of widgets on top of each other.

For example, the following scenario with these widgets:
    widgets: widget1 { width = 10, height = 10  }
	     widget2 { width = 10, height = 10  }
	     widget3 { width = 10, height = 10  }
and a call to horizontal layout with the
{ width = 10, height = 10, spacing = -5 } parameters.

The function would layout the widgets the following way:
{
    widget1: { x = 0, y = 0, width = 10, height = 10 }
    spacing: { x = 5, y = 0, width = 5, height = 10  }
    widget2: { x = 5, y = 0, width = 5, height = 10  }
    spacing: { x = 5, y = 0, width = 5, height = 10 }
    widget3: { x = 5, y = 0, width = 5, height = 10  }
}

This behaviour would be the same for any number of widgets for negative
layout.

This patch changes the layout function to check whether the current
widget uses up the whole space.
It also removes 'pos' variable. Its purpose isn't intuitive in the
presence of x and y. This helps to understand where each widget is
placed now that x, y don't hold the end location of the widget in the
previous loop iteration.

The result of the previous example becomes:
{
    widget1: { x = 0, y = 0, width = 10, height = 10 }
}

While this might not be the wanted behaviour exactly, distinguishing
between the scenario where 2 widgets are drawn and a scenario where 3
are drawn might complicate the layout function too much.

This patch also adds unit testing that catches the described behaviour.

Signed-off-by: Shay Agroskin <agrosshay@gmail.com>
2021-03-26 16:11:01 +03:00
Shay Agroskin a18e3508f6 layout/fixed: Fix wrong space calculation in fit
The fit function is called twice in row.

- The first time it gets the maximum available width, and returns how
  much of it it needs (with 0 spacing it would be 477)

- The second time the available width it gets is the same as it returned
  last phase (and probably is expected to return the same result again)

The width fit requests is the total width of all widgets together + the
spacing (e.g. if each tag widget is 53 px and spacing is -10 then the
requested width 53 * 9 - 80).

The function tries to first fit all its widgets (the tag numbers) in the
amount of width it received, and only then adds the spacing to it. This
is problematic because in the second phase the widgets need to fit
themselves in the same width they requested earlier minus the spacing
(in case of negative spacing). This is of course impossible and so some
widgets are just not being drawn correctly.

This patch makes fit function take into account the spacing while
placing the widgets and not afterwards.

Also add unit-testing that test the bug described.

Signed-off-by: Shay Agroskin <agrosshay@gmail.com>
2021-03-26 16:11:01 +03:00
Shay Agroskin 749422100e layout/fixed: Remove code duplication
The function has several expressions of the form
    if self._private.dir == "y" then
This patch stores the result of
    self._private.dir == "y"
to avoid code duplication.

Also remove the 'used_in_dir' and 'in_dir' variables since their values
can be calculated using other variables in the function and updating
them individually is error prone.

This patch doesn't do any functional changes.

Signed-off-by: Shay Agroskin <agrosshay@gmail.com>
2021-03-26 16:11:01 +03:00
actionless e833da0303 fix(beautiful: gtk): don't crash when both gtk3 and gtk4 are installed 2021-03-25 00:21:04 +01:00
Lucas Schwiderski f3a0937ea3
Remove advanced building options from README
This removes the section about advanced build options and build
dependencies and points to the docs page instead.

Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-23 10:18:33 +01:00
Lucas Schwiderski cce8e80cbd
Improve code snippet rendering in README
This converts the code snippets to the alternate block definition and
adds language hints to enable syntax highlighting for compatible parsers
(such as on the GitHub page).

Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-23 10:18:32 +01:00
Lucas Schwiderski 849a8b5af4
Add docs section about building and testing
This documents various CMake variables for building and the available
test suites.

Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-23 10:18:29 +01:00
Lucas Schwiderski 4d43ccda6d
Rename Lua executable envvar
Use `LUA` based on the traditional naming scheme in Makefiles.
2021-03-23 09:10:07 +01:00
Lucas Schwiderski d9640cf027
Provide default for Lua executable env variable 2021-03-23 09:10:06 +01:00
Lucas Schwiderski 6d0eb8660d
Use Lua executable variable for check-integration 2021-03-23 09:10:05 +01:00
Lucas Schwiderski 19bf83b409
Use CMake Lua variable for coverage runner 2021-03-23 09:10:04 +01:00
Lucas Schwiderski 998b24e544
Use Lua executable variable for check-requires 2021-03-23 09:10:04 +01:00
Lucas Schwiderski 353ccfb0dd
Make CMake Lua executable customizable
Some platforms, such as Arch Linux, already moved to Lua 5.4, while
offering Lua 5.3 as a separate executable, such as `/usr/bin/lua5.3`.
To be able to build awesomeWM on these platforms without extensive
shims, this change introduces a new CMake variable `LUA_EXECUTABLE`.

Its default is set by `find_program` to the usual `/usr/bin/lua`,
but allows running CMake like this:

```sh
cmake ../ \
    -DLUA_INCLUDE_DIR=/usr/include/lua5.3 \
    -DLUA_LIBRARY=/usr/lib/liblua.so.5.3 \
    -DLUA_EXECUTABLE=/usr/bin/lua5.3
```
2021-03-23 09:10:03 +01:00
James R aeb2d85dad
tasklist: Fix documented function names (#3276) 2021-03-22 15:28:53 -07:00
Jonas Belouadi ce5196424e
Docs: Fix code example for cairo usage. (#3295) 2021-03-22 15:05:46 -07:00
Lucas Schwiderski afced71a9a
Add example for gears.table.count_keys
Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-22 20:55:40 +01:00
Lucas Schwiderski 058190a3c0
Add missing modelines
Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-22 20:24:56 +01:00
Lucas Schwiderski 07df24f7d0
Add utility to count table keys
See #3293.

Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-22 20:24:55 +01:00
Emmanuel Lepage Vallée d583129eb6
Merge pull request #3143 from Elv13/doc_client_layout
Document the client layout properties
2021-03-22 12:10:36 -07:00
Emmanuel Lepage Vallée 98884cb3df
Apply suggestions from code review
Co-authored-by: Aire-One <Aire-One@users.noreply.github.com>
2021-03-22 12:10:06 -07:00
Daniel Hahler dab84c2662
fix(doc): gears.table.keys: s/integer keys/integer/ (#3293) 2021-03-22 12:05:17 -07:00
Emmanuel Lepage Vallée 80a7d9e3ee
Merge pull request #3283 from sclu1034/issue/3214
Remove unused first parameter in some constructors
2021-03-22 10:45:18 -07:00
Lucas Schwiderski 5fb6109439
Fix shadowing value in slider unit test
Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-22 09:26:43 +01:00
Lucas Schwiderski 504bf53b8c
Add unit test for wrapping a margin container
This adds a test case where a `wibox.container.margin` with a
`wibox.widget.imagebox` as child is wrapped by a simple function call.

Check against regression in #3213.

Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-22 09:21:23 +01:00
Emmanuel Lepage Vallee b4cf88f4c0 doc: Fix the titlebars widget constructor doc 2021-03-22 00:56:02 -07:00
Emmanuel Lepage Vallee 31fcce436c doc: Add a client border color example. 2021-03-22 00:56:02 -07:00
Emmanuel Lepage Vallee 9e755d59ea shims: Minor fixes
* Allow tags to be passed to the client (fake) constructor
 * Add the border color fallback
2021-03-22 00:54:00 -07:00