]> git.mdlowis.com Git - proto/labwc.git/log
proto/labwc.git
3 months agoxwayland: associate/dissociate/map/unmap cleanups
John Lindgren [Mon, 24 Nov 2025 16:27:19 +0000 (11:27 -0500)]
xwayland: associate/dissociate/map/unmap cleanups

- connect/disconnect map handlers in set_surface()
- call set_surface() at time of associate/dissociate

This separates the concepts of "associate" and "map" more clearly.

It's no longer necessary to listen for wlr_surface "destroy" event,
because dissociate is always received first.

Also, view->content_tree is now destroyed and set to NULL at unmap.
Previously, we relied on wlr_scene to destroy it automatically when
the surface was destroyed, but kept a potentially dangling pointer in
view->content_tree until next map. Similar change for unmanaged.

v2: comment updates

3 months agoview: deduplicate foreign-toplevel creation code
tokyo4j [Sun, 23 Nov 2025 05:37:12 +0000 (14:37 +0900)]
view: deduplicate foreign-toplevel creation code

3 months agoRemove view_impl->map and view_impl->unmap
tokyo4j [Sun, 23 Nov 2025 05:24:42 +0000 (14:24 +0900)]
Remove view_impl->map and view_impl->unmap

jlindgren: data parameter to handle_unmap() is NULL

3 months agooutput: avoid use of wlr_scene_output.WLR_PRIVATE.index
John Lindgren [Tue, 25 Nov 2025 22:36:02 +0000 (17:36 -0500)]
output: avoid use of wlr_scene_output.WLR_PRIVATE.index

We were only using it to allow quick bitset comparisons of sets of
outputs (such as view->outputs). We can maintain our own bit IDs for
this purpose and avoid using the private wlroots field.

Note: from my reading of wlr_scene_output_create(), it appears to
always take the lowest unused index, resulting in aggressive re-use of
index values when outputs are disconnected and reconnected. I've tried
to make re-use as infrequent as possible. This could theoretically
reduce the chance of a mix-up in view_update_outputs(), although I'm
not aware of any practical scenario where it matters.

v2: prevent adding more than 64 outputs

3 months agoCI: add pcre2 dep for FreeBSD to work around git error
Consolatis [Sun, 23 Nov 2025 02:23:59 +0000 (03:23 +0100)]
CI: add pcre2 dep for FreeBSD to work around git error

3 months agoview: separate (un)minimize and (un)map logic
John Lindgren [Fri, 21 Nov 2025 00:41:00 +0000 (19:41 -0500)]
view: separate (un)minimize and (un)map logic

Map/unmap logic is currently re-used for minimize/unminimize, but lots
of it doesn't actually apply in that case. This is both confusing and
creates some extra complexity, such as:

 - extra "client_request" parameter to unmap(), in which case it has to
   still do some cleanup even if view->mapped is already false

 - various "view->mapped || view->minimized" checks when we really just
   mean "is the view mapped"

To clean this all up, let's put the logic that really is common into
a new view_update_visiblity() function, and stop using map/unmap for
minimize/unminimize.

Note that this changes the meaning of "view->mapped", which used to
mean "mapped and not minimized" but now really just means "mapped".
I left some "view->mapped" conditions as-is (rather than changing to
"view->mapped && !view->minimized") where it seemed to make sense.

v2: add view_update_visibility() as suggested by tokyo4j

3 months agowlr-foreign: set all initial states correctly
John Lindgren [Tue, 18 Nov 2025 03:53:53 +0000 (22:53 -0500)]
wlr-foreign: set all initial states correctly

Two were missing: "minimized" and "activated".

At least "minimized" can be set before map, so the initial state needs
to be read and set on the foreign-toplevel.

I think in the current code, the foreign-toplevel is always created
before a view is activated, but for future-proofing, let's not rely
on this, and set "activated" as well. There's no harm since wlroots
optimizes away any redundant state changes.

3 months agoNEWS.md: interim update
Johan Malm [Sat, 15 Nov 2025 14:51:20 +0000 (14:51 +0000)]
NEWS.md: interim update

3 months agoxwayland: remove obsolete (since wlroots 0.17) NULL check
John Lindgren [Tue, 11 Nov 2025 21:45:28 +0000 (16:45 -0500)]
xwayland: remove obsolete (since wlroots 0.17) NULL check

Since d7dc6e01b446 ("Chase wlroots: Unified mapping"), the map event
is emitted by the wlr_surface itself, thus it cannot be NULL.

Change the "if" to an "assert" accordingly.

3 months agocursor: remove unneeded process_cursor_motion_out_of_surface()
Hiroaki Yamamoto [Sat, 15 Nov 2025 11:14:26 +0000 (20:14 +0900)]
cursor: remove unneeded process_cursor_motion_out_of_surface()

3 months agoxdg: make use of xdg_toplevel_view_get_parent()
John Lindgren [Wed, 12 Nov 2025 15:44:04 +0000 (10:44 -0500)]
xdg: make use of xdg_toplevel_view_get_parent()

3 months agoview: factor out view_impl_init_foreign_toplevel()
John Lindgren [Wed, 12 Nov 2025 15:43:22 +0000 (10:43 -0500)]
view: factor out view_impl_init_foreign_toplevel()

3 months agoxdg: remove unnecessary cast
John Lindgren [Wed, 12 Nov 2025 15:20:03 +0000 (10:20 -0500)]
xdg: remove unnecessary cast

3 months agoseat: Call configure_libinput() for keyboards
David Turner [Wed, 12 Nov 2025 16:48:48 +0000 (16:48 +0000)]
seat: Call configure_libinput() for keyboards

Call configure_libinput() for keyboards in new_keyboard() and
seat_reconfigure().

This allows the use of the sendEventsMode configuration option on
keyboards in order to disable keyboard input, for example:

    <libinput>
        <device category="  RPI Wired Keyboard 1">
            <sendEventsMode>no</sendEventsMode>
        </device>
    </libinput>

3 months agosrc/osd/osd.c: fix indentations for switch-case
tokyo4j [Tue, 11 Nov 2025 10:59:30 +0000 (19:59 +0900)]
src/osd/osd.c: fix indentations for switch-case

3 months agoosd: add multi-monitor support
Samet Aylak [Mon, 10 Nov 2025 04:16:26 +0000 (23:16 -0500)]
osd: add multi-monitor support

Adds `output` attribute to control which monitor(s) display the window
switcher OSD. Supports three modes:
- "all": display on all monitors (default)
- "pointer": display on monitor with mouse cursor
- "keyboard": display on monitor with keyboard focus

The configuration structure is also refactored to nest OSD-specific
settings (show, style, output, thumbnailLabelFormat) under an <osd>
element within <windowSwitcher>, improving logical organization.

3 months agoview: less hacky support for minimize-before-map
John Lindgren [Sat, 8 Nov 2025 03:38:32 +0000 (22:38 -0500)]
view: less hacky support for minimize-before-map

The previous "minimal fix" (5148c2aa3140) worked but was a bit of a
hack, as it basically un-minimized and then immediately minimized the
view again at map. It's not actually too difficult to make the map
handlers aware of minimized views, eliminating the need for the hack.

Note: this depends on the previous commit ("xwayland: connect commit
and surface_destroy handlers together") otherwise the xwayland map
handler registers the commit handler twice, leading to a crash.

3 months agoxwayland: connect commit and surface_destroy handlers together
John Lindgren [Sat, 8 Nov 2025 03:20:18 +0000 (22:20 -0500)]
xwayland: connect commit and surface_destroy handlers together

Factor out set_surface() which consolidates connecting/disconnecting
the wlr_surface event listeners in one place.

In theory, this means we can receive commit events for minimized views.
However, with a test app that resizes itself, I didn't see any change,
i.e. the commits still don't come through until un-minimize. It's
possible they are being filtered at wlroots or protocol level.

Also remove an old, semi-related TODO from view.c.

3 months agoosd: make empty string "" in thumbnailLabelFormat to not show any text (#3196)
elviosak [Sun, 9 Nov 2025 10:20:08 +0000 (07:20 -0300)]
osd: make empty string "" in thumbnailLabelFormat to not show any text (#3196)

3 months agooutput: factor out output_set_has_fullscreen_view()
John Lindgren [Sat, 8 Nov 2025 14:40:26 +0000 (09:40 -0500)]
output: factor out output_set_has_fullscreen_view()

3 months agoview: update top layer visiblity at unmap instead of destroy
John Lindgren [Fri, 7 Nov 2025 19:32:30 +0000 (14:32 -0500)]
view: update top layer visiblity at unmap instead of destroy

It's possible for a fullscreen xwayland view to be unmapped without
being destroyed. In this case, we need to update top layer visibility,
otherwise panels and the like will remain hidden.

Since unmap is always called before destroy, it's sufficient to do the
update only in view_impl_unmap() and not in view_destroy().

Adaptive sync logic needs work still, but I tried to minimize changes
to it since I don't have hardware to test it.

4 months agoosd: add thumbnailLabelFormat to windowSwitcher (#3187)
elviosak [Wed, 5 Nov 2025 09:23:15 +0000 (06:23 -0300)]
osd: add thumbnailLabelFormat to windowSwitcher (#3187)

This commit adds `<windowSwitcher thumbnailLabelFormat="%T">` to configure the label text in each item in the thumbnail-style window switcher. Its format follows `<fields><field content="custom" format="">`.

4 months agodocs: remove repeated words
elviosak [Tue, 4 Nov 2025 21:51:58 +0000 (18:51 -0300)]
docs: remove repeated words

4 months agoosd: allow clicking an osd item to focus the window
tokyo4j [Wed, 29 Oct 2025 18:22:45 +0000 (03:22 +0900)]
osd: allow clicking an osd item to focus the window

4 months agoosd: generalize osd_{classic,thumbnail}_item
tokyo4j [Wed, 29 Oct 2025 17:51:05 +0000 (02:51 +0900)]
osd: generalize osd_{classic,thumbnail}_item

This allows us to share common codes for dealing with osd items.
For example:
- Get the clicked osd item to focus its associated window
- Scroll the items when their total height is taller than output height

4 months agoosd: rename *_scene_item to *_item
tokyo4j [Wed, 29 Oct 2025 18:32:55 +0000 (03:32 +0900)]
osd: rename *_scene_item to *_item

4 months agoosd: move end_cycling() into osd_finish()
tokyo4j [Wed, 29 Oct 2025 18:06:15 +0000 (03:06 +0900)]
osd: move end_cycling() into osd_finish()

...so that we can use `osd_finish()` to support clicking an osd item to
focus its associated window.

4 months agoosd-classic: substitute `theme->osd_border_width+switcher_theme->padding`
tokyo4j [Sun, 2 Nov 2025 03:18:11 +0000 (12:18 +0900)]
osd-classic: substitute `theme->osd_border_width+switcher_theme->padding`

4 months agoworkspaces: place osd at the center of output rather than usable area
tokyo4j [Sun, 2 Nov 2025 02:37:57 +0000 (11:37 +0900)]
workspaces: place osd at the center of output rather than usable area

4 months agoosd: place osd at the center of output rather than usable area
tokyo4j [Sun, 2 Nov 2025 02:29:50 +0000 (11:29 +0900)]
osd: place osd at the center of output rather than usable area

4 months agoosd: use wlr_output_effective_resolution() to get output geometry
tokyo4j [Sat, 1 Nov 2025 16:12:42 +0000 (01:12 +0900)]
osd: use wlr_output_effective_resolution() to get output geometry

Before this commit, output transformations were not taken into account for
parcent-based osd widths like:

osd.window-switcher.style-classic.width: 80%
osd.window-switcher.style-thumbnail.width.max: 80%

4 months agoTranslation updates from weblate
Weblate [Thu, 30 Oct 2025 06:38:35 +0000 (07:38 +0100)]
Translation updates from weblate

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: sudoasd <asdwasd@meiliboxi.fi>
Co-authored-by: zenfas <zenfas66@gmail.com>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/fi/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/he/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/vi/
Translation: Labwc/labwc

4 months agoosd-classic: fix miscalculation for osd width in percentage
tokyo4j [Sat, 1 Nov 2025 13:43:45 +0000 (22:43 +0900)]
osd-classic: fix miscalculation for osd width in percentage

Fixes a regression in 75eb370.

4 months agoosd-thumbnail: fix miscalculation for item geometries
tokyo4j [Sat, 1 Nov 2025 13:49:57 +0000 (22:49 +0900)]
osd-thumbnail: fix miscalculation for item geometries

4 months agoosd-thumbnail: s/thumb_theme/switcher_them/
tokyo4j [Sat, 1 Nov 2025 13:56:45 +0000 (22:56 +0900)]
osd-thumbnail: s/thumb_theme/switcher_them/

Just to align with other parts of the codebase.

4 months agoseat: use CONNECT_SIGNAL() for new_virtual_pointer event
tokyo4j [Sat, 25 Oct 2025 05:15:37 +0000 (14:15 +0900)]
seat: use CONNECT_SIGNAL() for new_virtual_pointer event

4 months agoinput/cursor.c: avoid consuming scroll on client mousebind
elviosak [Fri, 24 Oct 2025 20:26:18 +0000 (17:26 -0300)]
input/cursor.c: avoid consuming scroll on client mousebind

4 months agodocs/: remove XML declarations in .xml files
Johan Malm [Sun, 19 Oct 2025 18:30:38 +0000 (19:30 +0100)]
docs/: remove XML declarations in .xml files

...because we don't like them anymore and libxml2 does not consider them
mandatory.

4 months agodesktop: work around client-side rounding issues at right/bottom pixel
John Lindgren [Mon, 20 Oct 2025 02:15:37 +0000 (22:15 -0400)]
desktop: work around client-side rounding issues at right/bottom pixel

This also avoids a similar server-side rounding issue with some
combinations of wlroots and libwayland versions. See:

- https://gitlab.freedesktop.org/wayland/wayland/-/issues/555
- https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5159

Tested with qmpanel (similar to lxqt-panel) at 1x and 2x output scale.
Does not help if scaling is done client-side, e.g. QT_SCALE_FACTOR=2.

Fixes: #2379
Fixes: #3099
4 months agolabnag: use overlay layer by default
Johan Malm [Sun, 19 Oct 2025 18:41:24 +0000 (19:41 +0100)]
labnag: use overlay layer by default

...so that the dialog is still visible when some client is using
fullscreen mode.

4 months agoNEWS.md: interim update
Johan Malm [Sun, 19 Oct 2025 17:48:38 +0000 (18:48 +0100)]
NEWS.md: interim update

4 months agoscripts/check: run style check for test files
tokyo4j [Sun, 19 Oct 2025 19:02:34 +0000 (04:02 +0900)]
scripts/check: run style check for test files

Co-authored-by: @johanmalm
4 months agoCI: also run on t/ changes
tokyo4j [Thu, 16 Oct 2025 07:43:59 +0000 (16:43 +0900)]
CI: also run on t/ changes

4 months agotests: remove placeholders for arguments
tokyo4j [Wed, 15 Oct 2025 21:27:20 +0000 (06:27 +0900)]
tests: remove placeholders for arguments

4 months agoDon't remove newlines when parsing config, menu and XBM
tokyo4j [Wed, 15 Oct 2025 07:36:01 +0000 (16:36 +0900)]
Don't remove newlines when parsing config, menu and XBM

Removing newlines in rc.xml and menu.xml caused parser error with
following content:

<!--
 -
 - Some comments
 -
-->

...though it is a valid XML.

Let's not do that. I moved `grab_file()` to `buf.c` and renamed it to
`buf_from_file()`, because it now directly touches `struct buf` and
I don't like having a source file only for one function.

4 months agoTranslation updates from weblate
Weblate [Sat, 11 Oct 2025 20:01:24 +0000 (22:01 +0200)]
Translation updates from weblate

Co-authored-by: alvaroelpob <alvaropobladoresteban9@gmail.com>
Co-authored-by: p-bo <pavel.borecki@gmail.com>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/ca/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/cs/
Translation: Labwc/labwc

4 months agotheme: replace THEME_(IN)ACTIVE with SSD_(IN)ACTIVE
tokyo4j [Tue, 14 Oct 2025 04:44:44 +0000 (13:44 +0900)]
theme: replace THEME_(IN)ACTIVE with SSD_(IN)ACTIVE

4 months agowindowswitcher: show 's' as "state" for shaded views
Tomi Ollila [Sun, 6 Jul 2025 21:53:36 +0000 (00:53 +0300)]
windowswitcher: show 's' as "state" for shaded views

While at it sorted the code to show 'm' before 's' and 's' before 'M'
- from the least visible to the most visible state.

4 months agoimplement is_modal_dialog() for xdg shell
Tobias Bengfort [Thu, 9 Oct 2025 06:59:40 +0000 (08:59 +0200)]
implement is_modal_dialog() for xdg shell

4 months agorcxml: call labnag with --keyboard-focus on-demand by default
tokyo4j [Mon, 13 Oct 2025 09:58:23 +0000 (18:58 +0900)]
rcxml: call labnag with --keyboard-focus on-demand by default

4 months agolabnag: add --keyboard-focus option
tokyo4j [Wed, 1 Oct 2025 05:49:23 +0000 (14:49 +0900)]
labnag: add --keyboard-focus option

The new `--keyboard-focus [none|on-demand|exclusive]` option (default:
`none`) allows to some keyboard controls in labnag:

  Right-arrow or Tab: move the button selection to the right
  Left-arrow or Shift-Tab: move the button selection to the left
  Enter: press the selected button
  Escape: close labnag

The selected button is highlighted with the inner 1px border. Maybe we can
instead use different colors for the selected button, but I prefer the
inner border for now because it doesn't require us to add new color
options or make them inherit labwc's theme.

4 months agolabnag: remove redundant lines in conf_init()
tokyo4j [Thu, 2 Oct 2025 16:13:39 +0000 (01:13 +0900)]
labnag: remove redundant lines in conf_init()

4 months agolabnag: s/LAB_EXIT_TIMEOUT/LAB_EXIT_CANCELLED/
tokyo4j [Thu, 2 Oct 2025 05:43:25 +0000 (14:43 +0900)]
labnag: s/LAB_EXIT_TIMEOUT/LAB_EXIT_CANCELLED/

4 months agoosd: allow window switcher to temporary unshade windows
Consolatis [Fri, 3 Oct 2025 00:10:00 +0000 (02:10 +0200)]
osd: allow window switcher to temporary unshade windows

This can be configured with a new unshade="yes|no"
argument for windowSwitcher in rc.xml

Fixes: #3111
4 months agoview: store title/app_id in view
tokyo4j [Wed, 13 Aug 2025 08:40:25 +0000 (17:40 +0900)]
view: store title/app_id in view

This simplifies our codes and eliminates duplicated
`view.events.new_{title,app_id}` events. This should not change any
behaviors.

4 months agoosd-thumbnail: make sure item->{normal,active}_title are non-null
tokyo4j [Sun, 12 Oct 2025 14:59:04 +0000 (23:59 +0900)]
osd-thumbnail: make sure item->{normal,active}_title are non-null

The if-statement doesn't make sense, because `view_get_string_prop()`
never returns NULL. And if it did, it would cause segfault in
`osd_thumbnail_update()`.

4 months agomenu: remove redundant cast
John Lindgren [Sun, 12 Oct 2025 01:47:40 +0000 (21:47 -0400)]
menu: remove redundant cast

4 months agoosd,ssd: don't cast away const
John Lindgren [Wed, 1 Oct 2025 16:41:00 +0000 (12:41 -0400)]
osd,ssd: don't cast away const

4 months agomenu: use xmlFree() for return value of xmlGetProp()
John Lindgren [Mon, 29 Sep 2025 18:51:17 +0000 (14:51 -0400)]
menu: use xmlFree() for return value of xmlGetProp()

4 months agoosd-classic: add theme options for selected window item
tokyo4j [Wed, 1 Oct 2025 05:25:43 +0000 (14:25 +0900)]
osd-classic: add theme options for selected window item

This commit adds new theme options:
- osd.window-switcher.style-classic.item.active.border.color
- osd.window-switcher.style-classic.item.active.bg.color

These theme options configures the border/background of selected window
item in the `classic` style window switcher. Their default values are
identical to `thumbnail` style window switcher, which means the default
border color is now `osd.label.text.color` with 50% opacity and the
default background color is now `osd.label.text.color` with 15% opacity.

4 months agoaction: simplify action_prompt_command()
tokyo4j [Wed, 1 Oct 2025 02:54:26 +0000 (11:54 +0900)]
action: simplify action_prompt_command()

4 months agobuild: fix build with libinput as a subproject
tokyo4j [Wed, 1 Oct 2025 12:09:17 +0000 (21:09 +0900)]
build: fix build with libinput as a subproject

Unfortunately, has_header_symbol() doesn't work with internal dependencies.

Ref: https://github.com/mesonbuild/meson/issues/13553

4 months agobuild: bump version to 0.9.2
Johan Malm [Fri, 10 Oct 2025 18:50:59 +0000 (19:50 +0100)]
build: bump version to 0.9.2

4 months agoview: fix unexpected view->tiled with SnapToEdge against centered view
tokyo4j [Fri, 10 Oct 2025 08:30:55 +0000 (17:30 +0900)]
view: fix unexpected view->tiled with SnapToEdge against centered view

In 2ac4811, I was missing that windows can be tiled to "center".
As a result, after executing
`<action name="SnapToEdge" combined="yes" direction="left" />` against a
center-tiled window, `view->tiled` is set to `CENTER|LEFT`.

4 months agoNEWS.md: update notes for 0.9.2
Johan Malm [Fri, 19 Sep 2025 19:47:56 +0000 (20:47 +0100)]
NEWS.md: update notes for 0.9.2

4 months agorcxml: move <maximizedDecoration> from <core> to <theme>
tokyo4j [Thu, 9 Oct 2025 12:24:44 +0000 (21:24 +0900)]
rcxml: move <maximizedDecoration> from <core> to <theme>

4 months agofix typo in comment
Tobias Bengfort [Thu, 9 Oct 2025 07:45:36 +0000 (09:45 +0200)]
fix typo in comment

4 months agofix double free for libxml2 < 2.13
Tobias Bengfort [Thu, 9 Oct 2025 07:39:59 +0000 (09:39 +0200)]
fix double free for libxml2 < 2.13

xmlAddChild() only unlinks the second argument since libxml2 2.13.

regression from 503af105

4 months agodesktop-entry: fix wrong description of sfdo-icon flags
tokyo4j [Wed, 8 Oct 2025 09:32:30 +0000 (18:32 +0900)]
desktop-entry: fix wrong description of sfdo-icon flags

4 months agoCI: also run on clients/ changes
Consolatis [Wed, 8 Oct 2025 20:10:24 +0000 (22:10 +0200)]
CI: also run on clients/ changes

4 months agobuild: use spaces instead of tab
Johan Malm [Wed, 8 Oct 2025 19:57:45 +0000 (20:57 +0100)]
build: use spaces instead of tab

4 months agodesktop-entry.c: don't demote error messages with LABWC_DEBUG_LIBSFDO
Consolatis [Wed, 8 Oct 2025 17:47:57 +0000 (19:47 +0200)]
desktop-entry.c: don't demote error messages with LABWC_DEBUG_LIBSFDO

Also add additional logging to tell users how to get
more information about failures to load the icon theme.

4 months agodesktop-entry.c: on detecting a broken icon theme, fall back to hicolor
Consolatis [Wed, 8 Oct 2025 16:50:18 +0000 (18:50 +0200)]
desktop-entry.c: on detecting a broken icon theme, fall back to hicolor

Fixes: #3126
Reported-By: Kreevoz
4 months agoosd-thumbnail: update default colors of selected window item
tokyo4j [Wed, 1 Oct 2025 19:06:48 +0000 (04:06 +0900)]
osd-thumbnail: update default colors of selected window item

Previously, the default values of
`osd.window-switcher.style-thumbnail.item.active.{bg,border}.color`
were blue. But they caused the selected window title in the window
switcher to be unreadable due to duplicated colors of the text and
background with Openbox themes like Numix.

Instead, this commit updates them to follow other themes configurations.
The default border color of the selected window item is now
`osd.label.text.color` with 50% opacity and the background is
`osd.label.text.color` with 15% opacity.

For subpixel antialiasing to work, the background color is calculated by
manually blending `osd.label.text.color` and `osd.bg.color`, rather than
just updating the alpha with 50% or 15%.

5 months agosrc/common/graphic-helpers.c: fix declaration/definition arg name difference
Johan Malm [Wed, 1 Oct 2025 19:50:31 +0000 (20:50 +0100)]
src/common/graphic-helpers.c: fix declaration/definition arg name difference

5 months agoinclude/common/scene-helpers: fix declaration/definition arg name difference
Johan Malm [Wed, 1 Oct 2025 19:48:45 +0000 (20:48 +0100)]
include/common/scene-helpers: fix declaration/definition arg name difference

5 months agoinclude/common/buf.h: fix declaration/definition arg name difference
Johan Malm [Wed, 1 Oct 2025 19:48:15 +0000 (20:48 +0100)]
include/common/buf.h: fix declaration/definition arg name difference

5 months agoinclude/common/box.h: fix declaration/definition arg name difference
Johan Malm [Wed, 1 Oct 2025 19:47:33 +0000 (20:47 +0100)]
include/common/box.h: fix declaration/definition arg name difference

5 months agolabnag: rename options for color
tokyo4j [Wed, 1 Oct 2025 06:22:54 +0000 (15:22 +0900)]
labnag: rename options for color

5 months agoinclude/common/xml.h: fix declaration/definition arg name difference
Johan Malm [Mon, 29 Sep 2025 20:30:04 +0000 (21:30 +0100)]
include/common/xml.h: fix declaration/definition arg name difference

5 months agoPrivatize view_append_children()
Johan Malm [Fri, 26 Sep 2025 18:21:34 +0000 (19:21 +0100)]
Privatize view_append_children()

5 months agoPrivatize desktop_topmost_focusable_view()
Johan Malm [Fri, 26 Sep 2025 18:17:56 +0000 (19:17 +0100)]
Privatize desktop_topmost_focusable_view()

5 months agoPrivatize view_contains_window_type()
Johan Malm [Fri, 26 Sep 2025 18:17:27 +0000 (19:17 +0100)]
Privatize view_contains_window_type()

5 months agoPrivatize output_manager_init()
Johan Malm [Fri, 26 Sep 2025 18:16:01 +0000 (19:16 +0100)]
Privatize output_manager_init()

5 months agoPrivatize xwayland_surface_from_view()
Johan Malm [Fri, 26 Sep 2025 18:15:29 +0000 (19:15 +0100)]
Privatize xwayland_surface_from_view()

5 months agoPrivatize rcxml_parse_xml()
Johan Malm [Fri, 26 Sep 2025 18:14:30 +0000 (19:14 +0100)]
Privatize rcxml_parse_xml()

5 months agoPrivatize private view_get_root()
Johan Malm [Fri, 26 Sep 2025 16:46:20 +0000 (17:46 +0100)]
Privatize private view_get_root()

5 months agobuild: add 'sections' option to show unused functions
Johan Malm [Fri, 26 Sep 2025 16:47:47 +0000 (17:47 +0100)]
build: add 'sections' option to show unused functions

5 months agoCI: use libwlroots-0.19-dev build-dep for Debian
tokyo4j [Mon, 29 Sep 2025 08:07:43 +0000 (17:07 +0900)]
CI: use libwlroots-0.19-dev build-dep for Debian

5 months agoCI: add unit tests
tokyo4j [Mon, 29 Sep 2025 07:13:37 +0000 (16:13 +0900)]
CI: add unit tests

5 months agotest/xml: use xmlBufferContent()
tokyo4j [Mon, 29 Sep 2025 07:04:37 +0000 (16:04 +0900)]
test/xml: use xmlBufferContent()

xmlBuffer->content has been deprecated.

5 months agotest: fix build error in t/xml.c
tokyo4j [Mon, 29 Sep 2025 07:03:36 +0000 (16:03 +0900)]
test: fix build error in t/xml.c

38a1a9b broke `t/xml.c` due to `macros.h` requiring `wlr/version.h`.
This commit fixes it by adding `wlroots` as a direct dependency of the
test executables.

5 months agoaction: fix UAF when using prompt during reconfigure
Johan Malm [Fri, 26 Sep 2025 19:42:31 +0000 (20:42 +0100)]
action: fix UAF when using prompt during reconfigure

Reported-by: @jlindgren90
Fixes #3106

5 months agoCI: fix broken FreeBSD CI by setting -Dlibsfdo:b_ndebug=false
Johan Malm [Fri, 26 Sep 2025 16:52:13 +0000 (17:52 +0100)]
CI: fix broken FreeBSD CI by setting -Dlibsfdo:b_ndebug=false

...because with with

    meson setup build -Dbuildtype=release -Db_ndebug=true \
        --werror --force-fallback-for=libsfdo

we get the following warning:

    In file included from ../subprojects/libsfdo/common/dirs.c:5:
    ../subprojects/libsfdo/include/common/membuild.h: In function ‘sfdo_membuild_validate’:
    ../subprojects/libsfdo/include/common/membuild.h:29:65: error: unused parameter ‘membuild’ [-Werror=unused-parameter]
       29 | static inline void sfdo_membuild_validate(struct sfdo_membuild *membuild) {

...because `sfdo_membuild_validate()` contains nothing but an `assert()`
and that therefore results in an `unused-parameter` warning with `NDEBUG`.

https://gitlab.freedesktop.org/vyivel/libsfdo/-/blob/main/include/common/membuild.h?ref_type=heads#L30

5 months agoAdd translate.h for HAVE_NLS includes/defines
Johan Malm [Wed, 24 Sep 2025 19:25:27 +0000 (20:25 +0100)]
Add translate.h for HAVE_NLS includes/defines

...to shrink labwc.h footprint

5 months agoRemove unused function key_state_nr_pressed_keys()
Johan Malm [Thu, 25 Sep 2025 18:38:13 +0000 (19:38 +0100)]
Remove unused function key_state_nr_pressed_keys()

5 months agoRemove unused function lab_xml_get_node()
Johan Malm [Thu, 25 Sep 2025 18:36:37 +0000 (19:36 +0100)]
Remove unused function lab_xml_get_node()

5 months agoRemove unused function trim_last_field()
Johan Malm [Thu, 25 Sep 2025 18:35:22 +0000 (19:35 +0100)]
Remove unused function trim_last_field()

5 months agoRemove unused function node_layer_popup_from_node()
Johan Malm [Thu, 25 Sep 2025 18:33:55 +0000 (19:33 +0100)]
Remove unused function node_layer_popup_from_node()

5 months agoRemove unused function output_max_scale()
Johan Malm [Thu, 25 Sep 2025 18:27:01 +0000 (19:27 +0100)]
Remove unused function output_max_scale()