Commit Graph

10623 Commits

Author SHA1 Message Date
Aire-One bc8a5b0230 fix(ldoc.ltp): item.inherited can be wrongly true
For some even more strange reasons than commit 047729ae1, it seems
we can also have the error that `item.inherited` can be sets to `true`
on items that are not inherited...

I just had this issue with `wibox.widget.imagebox` where properties
were marked as inherited from `wibox.widget.imagebox`. Best way to fix
it is to only trust the check on `item.baseclass`, and completly
dismiss its `inherited` property.
2021-04-02 19:24:07 +02:00
Aire-One 0ae0add45f doc(imagebox): Fix @method tags 2021-04-02 19:24:07 +02:00
Aire-One b706aa9bd0 doc(@hidden): Add to wibox.widget.base module 2021-04-02 19:24:07 +02:00
Aire-One af3b194a31 doc(@hidden;ldoc.ltp): Add ldoc tag to hide item
Add a new ldoc tag `@hidden`. This tag allows us to keep documentation
for magic methods (e.g. `wibox.widget.base:get_visible`) but prevent
it from being part of the documentation used by final users.
2021-04-02 19:24:07 +02:00
Aire-One 20a8d902c5 doc(@supermodule): Add to awful.widget modules 2021-04-02 19:24:07 +02:00
Aire-One 3969ad8819 doc(@supermodule): Add to wibox.layout modules 2021-04-02 19:24:07 +02:00
Aire-One 3b12a8d19a doc(@supermodule): Add to wibox.container modules 2021-04-02 19:24:07 +02:00
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