]> git.mdlowis.com Git - proto/labwc.git/log
proto/labwc.git
7 months agoinclude/edges.h: remove unimplemented function
tokyo4j [Sat, 2 Aug 2025 07:25:36 +0000 (16:25 +0900)]
include/edges.h: remove unimplemented function

7 months agoTranslation updates from weblate
Weblate [Wed, 30 Jul 2025 08:01:19 +0000 (10:01 +0200)]
Translation updates from weblate

Co-authored-by: BigELK176 ≡ <BigELK176@gmail.com>
Co-authored-by: Valera <ValeraDX@yandex.ru>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/ru/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/zh_TW/
Translation: Labwc/labwc

7 months agoinclude: move a few types from labwc.h to better locations
John Lindgren [Sat, 26 Jul 2025 20:23:02 +0000 (16:23 -0400)]
include: move a few types from labwc.h to better locations

7 months agoinclude: reduce global includes in labwc.h
John Lindgren [Mon, 28 Jul 2025 05:22:10 +0000 (01:22 -0400)]
include: reduce global includes in labwc.h

7 months agoinclude: split output.h from labwc.h
John Lindgren [Sat, 26 Jul 2025 19:34:45 +0000 (15:34 -0400)]
include: split output.h from labwc.h

7 months agorcxml: simplify the logic to traverse xml tree
tokyo4j [Fri, 11 Apr 2025 19:20:02 +0000 (04:20 +0900)]
rcxml: simplify the logic to traverse xml tree

7 months agostring-helper: add str_space_only()
tokyo4j [Fri, 11 Apr 2025 20:06:08 +0000 (05:06 +0900)]
string-helper: add str_space_only()

7 months agorcxml: rewrite <tablet><map> parser
tokyo4j [Fri, 11 Apr 2025 18:21:13 +0000 (03:21 +0900)]
rcxml: rewrite <tablet><map> parser

7 months agorcxml: rewrite <theme><font> parser
tokyo4j [Fri, 11 Apr 2025 18:09:14 +0000 (03:09 +0900)]
rcxml: rewrite <theme><font> parser

7 months agorcxml: reorder functions
tokyo4j [Fri, 11 Apr 2025 17:50:05 +0000 (02:50 +0900)]
rcxml: reorder functions

7 months agorcxml: rewrite <windowRules> parser
tokyo4j [Fri, 11 Apr 2025 17:40:31 +0000 (02:40 +0900)]
rcxml: rewrite <windowRules> parser

7 months agorcxml: rewrite <windowSwitcher><fields> parser
tokyo4j [Fri, 11 Apr 2025 17:08:45 +0000 (02:08 +0900)]
rcxml: rewrite <windowSwitcher><fields> parser

7 months agorcxml: rewrite <region> parser
tokyo4j [Fri, 11 Apr 2025 16:48:11 +0000 (01:48 +0900)]
rcxml: rewrite <region> parser

7 months agorcxml: rewrite <libinput> parser
tokyo4j [Fri, 11 Apr 2025 16:40:39 +0000 (01:40 +0900)]
rcxml: rewrite <libinput> parser

7 months agorcxml: rewrite <touch> parser
tokyo4j [Fri, 11 Apr 2025 16:33:28 +0000 (01:33 +0900)]
rcxml: rewrite <touch> parser

7 months agorcxml: rewrite <margin> parser
tokyo4j [Fri, 11 Apr 2025 16:27:49 +0000 (01:27 +0900)]
rcxml: rewrite <margin> parser

7 months agorcxml: rewrite <mousebind> parser
tokyo4j [Fri, 11 Apr 2025 18:41:27 +0000 (03:41 +0900)]
rcxml: rewrite <mousebind> parser

7 months agorcxml: rewrite <keybind> parser
tokyo4j [Fri, 11 Apr 2025 18:32:37 +0000 (03:32 +0900)]
rcxml: rewrite <keybind> parser

7 months agorcxml: rewrite action parser
tokyo4j [Fri, 11 Apr 2025 15:57:03 +0000 (00:57 +0900)]
rcxml: rewrite action parser

This commit rewrites the nested action parser into append_actions() which
is used by following commits. At this point, it's not used yet and parsing
"If" action is temporarily disabled.

7 months agocommon/xml: add helpers to parse rc.xml
tokyo4j [Fri, 11 Apr 2025 11:25:12 +0000 (20:25 +0900)]
common/xml: add helpers to parse rc.xml

7 months agorcxml: convert dotted properties into nested nodes before processing
tokyo4j [Wed, 9 Apr 2025 15:43:21 +0000 (00:43 +0900)]
rcxml: convert dotted properties into nested nodes before processing

For example, the following node:

  <keybind name.action="ShowMenu" menu.action="root-menu"
            x.position.action="1" y.position.action="2" />

is converted to:

 <keybind>
   <action>
     <name>ShowMenu</name>
     <menu>root-menu</menu>
     <position>
       <x>1</x>
       <y>2</y>
     </position>
   </action>
 </keybind>

...before processing the entire xml tree. This is a preparation to prevent
breaking changes when we refactor rcxml.c to use recursion instead of
encoding nodes into dotted strings.

7 months agoCONTRIBUTING.md: add section on include order
John Lindgren [Tue, 29 Jul 2025 05:59:40 +0000 (01:59 -0400)]
CONTRIBUTING.md: add section on include order

7 months agoCONTRIBUTING.md: minor updates
John Lindgren [Tue, 29 Jul 2025 05:17:42 +0000 (01:17 -0400)]
CONTRIBUTING.md: minor updates

- style "GLib" with two capitals as in its own upstream docs
- use title-case consistently for headings
- add missing heading to table of contents
- update dead GLib documentation URL

7 months agosrc: include primary header first
John Lindgren [Mon, 28 Jul 2025 05:02:01 +0000 (01:02 -0400)]
src: include primary header first

This is a common practice in C projects, which simply enforces that
each header must compile cleanly without implicit dependencies on
other headers (see also the previous commit).

7 months agoinclude: add missing header dependencies
John Lindgren [Mon, 28 Jul 2025 05:03:22 +0000 (01:03 -0400)]
include: add missing header dependencies

Ensure that headers compile correctly regardless of include order.

7 months agoNEWS.md: update with notes on wlroots changes
Johan Malm [Mon, 28 Jul 2025 19:48:56 +0000 (20:48 +0100)]
NEWS.md: update with notes on wlroots changes

7 months agoFix some warnings from clang-tidy
tokyo4j [Mon, 28 Jul 2025 04:54:10 +0000 (13:54 +0900)]
Fix some warnings from clang-tidy

Notably this fixes a possible null pointer dereference in warp_cursor()
when output_nearest_to_cursor() returns null.

7 months agoTranslation updates from weblate
Weblate [Sat, 19 Jul 2025 18:47:42 +0000 (20:47 +0200)]
Translation updates from weblate

Co-authored-by: Abdullah Albaroty <albaroty@gmail.com>
Co-authored-by: Hugo Carvalho <hugokarvalho@hotmail.com>
Co-authored-by: Moo <hazap@hotmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: kmephistoh <kanhaosmile@gmail.com>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/ar/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/lt/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/pt/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/zh_CN/
Translation: Labwc/labwc

7 months agocursor: also toggle mousebinds with ToggleKeybinds
tokyo4j [Thu, 24 Jul 2025 02:08:03 +0000 (11:08 +0900)]
cursor: also toggle mousebinds with ToggleKeybinds

Mousebinds can still be applied when the cursor is over their decoration

7 months agoRemove seat->nr_inhibited_keybind_views
tokyo4j [Wed, 23 Jul 2025 16:18:36 +0000 (01:18 +0900)]
Remove seat->nr_inhibited_keybind_views

7 months agosrc/xdg.c: prevent interacting with un-initialized xdg toplevels after unmap
Consolatis [Sun, 27 Jul 2025 13:55:43 +0000 (15:55 +0200)]
src/xdg.c: prevent interacting with un-initialized xdg toplevels after unmap

Fixes: #2937
Fixes: #2944
Originally-Reported-By: tranzystorekk via IRC
7 months agostyle: remove newlines after wl_list_for_each_reverse()
tokyo4j [Sat, 26 Jul 2025 23:00:10 +0000 (08:00 +0900)]
style: remove newlines after wl_list_for_each_reverse()

7 months agomenu: add struct menu_parse_context to reduce static vars
John Lindgren [Sat, 19 Jul 2025 03:06:20 +0000 (23:06 -0400)]
menu: add struct menu_parse_context to reduce static vars

The lifetime of the "current_" variables (current_menu, current_item,
current_item_action) is very difficult to understand from reading the
code. It appears that e.g. current_menu could still point to a previous
menu when starting to parse a new one, with unpredictable results.

Let's use a context struct when parsing, and consistently initialize
it when beginning to build a new menu.

Lightly tested with:

- default menus (no menu.xml)
- example static menu from labwc.github.io/getting-started.html
- an added "client-list-combined-menu" sub-menu
- pipe menu generated by `labwc-menu-generator -p`

v2: style fix

7 months agocursor: prevent hi-res mice triggering scroll actions too often
tokyo4j [Mon, 21 Jul 2025 15:19:22 +0000 (00:19 +0900)]
cursor: prevent hi-res mice triggering scroll actions too often

Hi-res mice produces mulitple scroll events with `delta_discrete` != 0
during a single "click". This patch makes them trigger `Scroll` actions
only when the accumulated `delta_discrete` exceeds 120 (= 1 click).

See https://lists.freedesktop.org/archives/wayland-devel/2019-April/040377.html
for how hi-res scroll events are reported.

7 months agobuf: avoid 'new' as variable name
John Lindgren [Fri, 4 Jul 2025 04:17:18 +0000 (00:17 -0400)]
buf: avoid 'new' as variable name

It's just good practice to avoid C++ keywords, in case someone
someday wants to compile this code as C++.

7 months agosession-lock: eliminate pointless compound literal
John Lindgren [Fri, 4 Jul 2025 04:45:59 +0000 (00:45 -0400)]
session-lock: eliminate pointless compound literal

In C++, this would have caused a use-after-free. In C, the unnamed
array remains in scope longer, so it's okay, but still pointless.

7 months agosrc: put designated initializers in member order
John Lindgren [Fri, 4 Jul 2025 04:40:15 +0000 (00:40 -0400)]
src: put designated initializers in member order

Out-of-order named initializers are allowed in C (unlike in C++) but
are still surprising - I don't see a reason not to put them in order.

7 months agosrc: avoid tentative definitions of static data
John Lindgren [Fri, 4 Jul 2025 04:12:21 +0000 (00:12 -0400)]
src: avoid tentative definitions of static data

Having multiple declarations of the same static data (where one is
considered "tentative") is kind of an obscure C feature -- I didn't
even know the name of it until today. It's also forbidden in C++.

In the case of circular dependencies between static data <-> function,
the more typical pattern is to forward-declare the function, then the
data, then provide the function definition. Let's follow that pattern.

7 months agostring-helpers: remove restrict qualifier
John Lindgren [Fri, 4 Jul 2025 04:15:56 +0000 (00:15 -0400)]
string-helpers: remove restrict qualifier

'restrict' is harmful as it encourages the compiler to make dangerous
assumptions while increasing cognitive load on the human programmer.

The extra 1% (or whatever) of performance here is not worth the cost.

7 months agosrc: add braces to switch cases containing declarations
John Lindgren [Fri, 4 Jul 2025 04:42:25 +0000 (00:42 -0400)]
src: add braces to switch cases containing declarations

This limits the scope of the declarations to avoid accidents.

7 months agosrc: prefer 'if' over 'goto' where convenient
John Lindgren [Fri, 4 Jul 2025 04:44:22 +0000 (00:44 -0400)]
src: prefer 'if' over 'goto' where convenient

'goto' should not be used for normal control flow.

v2 add comment in lieu of goto label

7 months agosrc: avoid implicit int/bool -> enum conversions
John Lindgren [Fri, 4 Jul 2025 04:37:39 +0000 (00:37 -0400)]
src: avoid implicit int/bool -> enum conversions

Use the defined enum constants instead.

7 months agokeybind: pointer to string literal should be const
John Lindgren [Fri, 4 Jul 2025 04:18:53 +0000 (00:18 -0400)]
keybind: pointer to string literal should be const

Assigning to (char*) creates a mutable string literal, which was
likely not intended here and wasn't necessary.

7 months agomenu: do not modify literal string constants
John Lindgren [Fri, 4 Jul 2025 03:35:37 +0000 (23:35 -0400)]
menu: do not modify literal string constants

Mutable string literals are a "legacy" C feature best avoided.

v2: move string_truncate_at_pattern() outside fill_item()

7 months agocomments: added short description to view_edge enum
lynxy [Mon, 14 Jul 2025 21:47:42 +0000 (23:47 +0200)]
comments: added short description to view_edge enum

7 months agoactions: prevent users entering invalid direction=any value
lynxy [Wed, 2 Jul 2025 22:39:32 +0000 (00:39 +0200)]
actions: prevent users entering invalid direction=any value

7 months agoactions: added query tiled=any comparison for rc.xml simplification
lynxy [Wed, 2 Jul 2025 22:04:27 +0000 (00:04 +0200)]
actions: added query tiled=any comparison for rc.xml simplification

7 months agoimg: fix apparent double-free in img_svg_render() failure path
John Lindgren [Sun, 13 Jul 2025 01:30:26 +0000 (21:30 -0400)]
img: fix apparent double-free in img_svg_render() failure path

img_svg_render() calls g_object_unref() on the RsvgHandle in its
error path, but the handle is owned by the shared lab_img_data
struct and will be double-freed later by lab_img_destroy().

The double-free was introduced when img_svg_load() was split from
img_svg_render(). The g_object_unref() should have been removed from
img_svg_render() but was missed.

Fixes: 16dbdc64e58d66011bbf319b92de844dab0ca8d9
("ssd: rework titlebar button rendering")

7 months agoxwayland: fix swapped width/height in _NET_WM_ICON stride calculation
John Lindgren [Sun, 13 Jul 2025 01:10:59 +0000 (21:10 -0400)]
xwayland: fix swapped width/height in _NET_WM_ICON stride calculation

Probably slipped through since most window icons are square anyway.

7 months agobuild: bump version to 0.9.0
Johan Malm [Fri, 11 Jul 2025 20:50:42 +0000 (21:50 +0100)]
build: bump version to 0.9.0

7 months agoNEWS.md: update notes for 0.9.0
Johan Malm [Sun, 29 Jun 2025 21:03:18 +0000 (22:03 +0100)]
NEWS.md: update notes for 0.9.0

7 months agodocs: update package maintainer list
Consolatis [Fri, 11 Jul 2025 11:57:50 +0000 (13:57 +0200)]
docs: update package maintainer list

The Arch package is now an official Arch package with
a new maintainer.

The Github account of the Artix Linux maintainer has
been deleted.

8 months agoTranslation updates from weblate
Weblate [Sun, 6 Jul 2025 14:14:10 +0000 (16:14 +0200)]
Translation updates from weblate

Co-authored-by: Batu <bai@baturax.com>
Co-authored-by: Heimen Stoffels <vistausss@fastmail.com>
Co-authored-by: Jan Rolski <wbcwknvstb@proton.me>
Co-authored-by: NorwayFun <temuri.doghonadze@gmail.com>
Co-authored-by: Priit Jõerüüt <lxqtwlate@joeruut.com>
Co-authored-by: Roberalz <lumintnian@outlook.com>
Co-authored-by: Sa'eed M Farahani <silitonix@gmail.com>
Co-authored-by: Standreas <standreas@riseup.net>
Co-authored-by: UTUMI Hirosi <utuhiro78@yahoo.co.jp>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: bittin <bittin@reimu.nl>
Co-authored-by: therealmate <hellogaming91@gmail.com>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/es/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/et/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/eu/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/fa/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/gl/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/hu/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/it/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/ja/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/ka/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/nl/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/pl/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/sv/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/tr/
Translation: Labwc/labwc

8 months agoAdded information about idle screen inhibitor.
Kyuyrii [Wed, 2 Jul 2025 21:56:17 +0000 (18:56 -0300)]
Added information about idle screen inhibitor.

8 months agoDisable all output leasing due to a wlroots UAF
Consolatis [Fri, 4 Jul 2025 22:19:33 +0000 (00:19 +0200)]
Disable all output leasing due to a wlroots UAF

8 months agoFix UAF when granting an output lease
Consolatis [Fri, 4 Jul 2025 22:15:53 +0000 (00:15 +0200)]
Fix UAF when granting an output lease

Wlroots now destroys the wlr_output when granting a lease.
So we can't iterate through the outputs in the request after
granting the lease. This is also not necessary anymore because
they are already destroyed and thus removed from the layout.

8 months agosrc/output.c: remove wlroots 0.18 wlopm with custom-mode workaround
Consolatis [Fri, 4 Jul 2025 22:25:43 +0000 (00:25 +0200)]
src/output.c: remove wlroots 0.18 wlopm with custom-mode workaround

The fix has been included in wlroots 0.19.0.

8 months agosrc/snap-constraints.c: ignore view origin during constraint updates
Andrew J. Hesford [Sat, 5 Jul 2025 01:24:07 +0000 (21:24 -0400)]
src/snap-constraints.c: ignore view origin during constraint updates

8 months agoresistance: refactor snap constraints, use in interactive resistance
Andrew J. Hesford [Fri, 4 Jul 2025 19:17:35 +0000 (15:17 -0400)]
resistance: refactor snap constraints, use in interactive resistance

8 months agoReplace alacritty in default keybind with lab-sensible-terminal
tokyo4j [Sat, 5 Jul 2025 07:25:22 +0000 (16:25 +0900)]
Replace alacritty in default keybind with lab-sensible-terminal

8 months agoTranslation updates from weblate
Weblate [Sat, 5 Jul 2025 13:48:07 +0000 (15:48 +0200)]
Translation updates from weblate

Co-authored-by: Batu <bai@baturax.com>
Co-authored-by: Heimen Stoffels <vistausss@fastmail.com>
Co-authored-by: Jan Rolski <wbcwknvstb@proton.me>
Co-authored-by: NorwayFun <temuri.doghonadze@gmail.com>
Co-authored-by: Priit Jõerüüt <lxqtwlate@joeruut.com>
Co-authored-by: Roberalz <lumintnian@outlook.com>
Co-authored-by: Sa'eed M Farahani <silitonix@gmail.com>
Co-authored-by: Standreas <standreas@riseup.net>
Co-authored-by: UTUMI Hirosi <utuhiro78@yahoo.co.jp>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: bittin <bittin@reimu.nl>
Co-authored-by: therealmate <hellogaming91@gmail.com>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/es/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/et/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/fa/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/hu/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/it/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/ja/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/ka/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/nl/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/pl/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/sv/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/tr/
Translation: Labwc/labwc

8 months agodocs/menu.xml: remove Poweroff to align with builtin menu
Johan Malm [Tue, 1 Jul 2025 21:14:32 +0000 (22:14 +0100)]
docs/menu.xml: remove Poweroff to align with builtin menu

8 months agomenu: add Terminal to default root-menu
Johan Malm [Tue, 1 Jul 2025 20:25:40 +0000 (21:25 +0100)]
menu: add Terminal to default root-menu

8 months agoAdd lab-sensible-terminal
Johan Malm [Mon, 30 Jun 2025 18:59:46 +0000 (19:59 +0100)]
Add lab-sensible-terminal

Related-to: #2843 #2842
8 months agorcxml: revise drag-lock behavior and option names
tokyo4j [Mon, 30 Jun 2025 07:42:45 +0000 (16:42 +0900)]
rcxml: revise drag-lock behavior and option names

This revises the changes done in 22d319c:
- Cancel defaulting to <dragLock>sticky<dragLock>. So labwc now disables
  drag-lock by default, as libinput does.
- Update the options from [yes|no|sticky] to [timeout|no|yes] to
  emphasize that the "sticky" mode (now "yes") is recommended when using
  drag-lock.

8 months agolayers.c: fix UAF bug on TTY change
Johan Malm [Sun, 29 Jun 2025 21:09:16 +0000 (22:09 +0100)]
layers.c: fix UAF bug on TTY change

Call seat_set_focus_layer(seat, NULL) in node-destroy-handler to avoid
seat->focused_layer becoming invalid and causing UAF issues in certain
situations like when outputs (and therefore layer-trees) are destroyed.

Fixes: #2863
Helped-by: @Consolatis
8 months agomain: add feature flags to --version
Consolatis [Sat, 28 Jun 2025 15:35:08 +0000 (17:35 +0200)]
main: add feature flags to --version

8 months agoserver.c: remove wlroots 0.16 era workaround for xwayland drm leases
Consolatis [Sat, 28 Jun 2025 15:36:17 +0000 (17:36 +0200)]
server.c: remove wlroots 0.16 era workaround for xwayland drm leases

We instead rely on the fixes in xwayland being widely available.
This also re-enables VR headsets for X11 applications.

Fixes: #553
8 months agomeson.build: require xwayland version 21.1.9 for xwayland support
Consolatis [Sat, 28 Jun 2025 15:34:53 +0000 (17:34 +0200)]
meson.build: require xwayland version 21.1.9 for xwayland support

This and later xwayland releases ship fixes for drm leased devices
causing lags in Chromium and Electron based applications. We used
to work around the issue by simply not sending drm leases to xwayland
but we can now rely on the fixes being widely available.
See #553 for more information.

8 months agoStrictly use handle_ prefix for signal handlers
tokyo4j [Thu, 26 Jun 2025 09:23:09 +0000 (18:23 +0900)]
Strictly use handle_ prefix for signal handlers

8 months agolayers: don't send configure events in unmap handler
tokyo4j [Fri, 27 Jun 2025 06:10:06 +0000 (15:10 +0900)]
layers: don't send configure events in unmap handler

Alternative to 7bf08af which was reverted in the previous commit.

7bf08af fixed the problem that layer-shell clients are terminated when
it's unmapped, by sending configure events in node-destroy handler
rather than in unmap handler. But it caused a UAF bug when an output
with layer-shell clients is destroyed.

So this patch fixes the original issue by simply skipping the surface in
arrange_one_layer() if it's being unmapped.

8 months agoRevert "layers: arrange layers on destroy"
tokyo4j [Fri, 27 Jun 2025 05:50:29 +0000 (14:50 +0900)]
Revert "layers: arrange layers on destroy"

This reverts commit 7bf08af210968fb174149754ce341988365a131b.

8 months agoTranslation updates from weblate
Weblate [Wed, 25 Jun 2025 18:26:55 +0000 (20:26 +0200)]
Translation updates from weblate

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mirek <mirek.binas@gmail.com>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/sk/
Translation: Labwc/labwc

8 months agoscaled-icon-buffer: reduce the need for updates
Consolatis [Sun, 22 Jun 2025 21:26:59 +0000 (23:26 +0200)]
scaled-icon-buffer: reduce the need for updates

8 months agoscaled-icon-buffer: add icon priority
Consolatis [Sun, 15 Jun 2025 18:21:15 +0000 (20:21 +0200)]
scaled-icon-buffer: add icon priority

Co-Authored-By: tokyo4j <hrak1529@gmail.com>
8 months agosrc/workspaces.c: allow dragged views to be moved to other workspaces
Sumandora [Fri, 27 Jun 2025 11:30:30 +0000 (13:30 +0200)]
src/workspaces.c: allow dragged views to be moved to other workspaces

8 months agossd: work around the translucent titlebar in pixman renderer
tokyo4j [Thu, 26 Jun 2025 10:39:36 +0000 (19:39 +0900)]
ssd: work around the translucent titlebar in pixman renderer

Due to wlroots/pixman bug, the widened 1px buffer for the gradient
titlebar become translucent with WLR_RENDERER=pixman and
WLR_SCALE_FILTER_BILINEAR filter mode. This patch works around this
problem by using WLR_SCALE_FILTER_NEAREST filter mode if pixman
renderer is used.

8 months agoNEWS.md: interim update
Johan Malm [Tue, 24 Jun 2025 19:56:05 +0000 (20:56 +0100)]
NEWS.md: interim update

8 months agoime: revert workarounds for wlroots 0.18.2
tokyo4j [Mon, 23 Jun 2025 19:32:40 +0000 (04:32 +0900)]
ime: revert workarounds for wlroots 0.18.2

The workarounds added in #2498 and #2437 fixed stuck key/modifier bug
caused by wlroots commit e218990. But now that the commit was reverted in
0.19, the workarounds are no longer needed.

Removing the workarounds also fixes a minor regression with Fcitx5+Firefox
that pressing Ctrl+Enter in an input box causes stuck modifier.

8 months agolabwc-theme(5): document x11-color-names
Johan Malm [Mon, 23 Jun 2025 19:01:13 +0000 (20:01 +0100)]
labwc-theme(5): document x11-color-names

8 months agoREADME.md: update keybind section
Johan Malm [Mon, 23 Jun 2025 18:48:12 +0000 (19:48 +0100)]
README.md: update keybind section

8 months agoconfig: use Super modifier instead of Alt for default mousebinds
Johan Malm [Fri, 13 Jun 2025 18:42:43 +0000 (19:42 +0100)]
config: use Super modifier instead of Alt for default mousebinds

...A-Left and A-Right (for move and resize) to avoid interfering with some
clients like CAD programs and games.

8 months agoconfig: deprecate A-F3
Johan Malm [Fri, 13 Jun 2025 18:34:53 +0000 (19:34 +0100)]
config: deprecate A-F3

...because A-F3 is too close to A-F4 and it is better to be agnostic to
choice of launcher.

8 months agoconfig: deprecate A-<arrow> keybinds
Johan Malm [Fri, 13 Jun 2025 17:54:02 +0000 (18:54 +0100)]
config: deprecate A-<arrow> keybinds

...because Alt- keybinds should be for clients to use and the A-<arrow>
default combination is a frequent user complaint because it prevents some
common usage patterns like alt-left/right in web browers.

8 months agoREADME.md: improve the documentation
daniel [Wed, 18 Jun 2025 22:59:40 +0000 (19:59 -0300)]
README.md: improve the documentation

8 months agotheme: change builtin menu fallback button to arrow
Johan Malm [Tue, 17 Jun 2025 20:53:54 +0000 (21:53 +0100)]
theme: change builtin menu fallback button to arrow

8 months agodocs: document gradients
Johan Malm [Sat, 14 Jun 2025 16:36:51 +0000 (12:36 -0400)]
docs: document gradients

(v2: small fixes)

8 months agotheme: support basic vertical titlebar gradients
John Lindgren [Tue, 22 Apr 2025 16:24:06 +0000 (12:24 -0400)]
theme: support basic vertical titlebar gradients

Only Vertical and SplitVertical gradients are supported,
and only for window.*.title.bg.

Not supported at this time:

- horizontal or diagonal gradients
- gradients for window.*.label.bg, buttons, or menus
- any type of border (raised, sunken, etc.)

8 months agossd: allow arbitrary cairo pattern as titlebar background
John Lindgren [Tue, 22 Apr 2025 16:20:15 +0000 (12:20 -0400)]
ssd: allow arbitrary cairo pattern as titlebar background

The titlebar background is now first rendered to a 1px wide buffer,
then stretched horizontally. This allows vertical gradients to be used.

8 months agocommon/font: add scaled_font_buffer_create_for_titlebar()
John Lindgren [Thu, 29 May 2025 16:34:03 +0000 (12:34 -0400)]
common/font: add scaled_font_buffer_create_for_titlebar()

Co-authored-by: tokyo4j <hrak1529@gmail.com>
8 months agocommon/graphic-helpers: add a few cairo pattern helpers
John Lindgren [Thu, 29 May 2025 16:31:41 +0000 (12:31 -0400)]
common/graphic-helpers: add a few cairo pattern helpers

8 months agotheme: parse more color string formats for Openbox compatibility
John Lindgren [Tue, 22 Apr 2025 15:56:15 +0000 (11:56 -0400)]
theme: parse more color string formats for Openbox compatibility

8 months agocommon/graphic-helpers: adopt lookup_named_color from xpm parser
John Lindgren [Tue, 22 Apr 2025 15:47:38 +0000 (11:47 -0400)]
common/graphic-helpers: adopt lookup_named_color from xpm parser

8 months agoDestroy xdg_popups when its parent is destroyed
Consolatis [Wed, 18 Jun 2025 15:40:04 +0000 (17:40 +0200)]
Destroy xdg_popups when its parent is destroyed

Fixes: #2845
8 months agoxwayland: support _NET_WM_ICON
Consolatis [Thu, 29 May 2025 17:17:24 +0000 (19:17 +0200)]
xwayland: support _NET_WM_ICON

8 months agoinput: clear SSD hover effects after touch-up
Jens Peters [Sun, 15 Jun 2025 07:39:19 +0000 (09:39 +0200)]
input: clear SSD hover effects after touch-up

Having a hover effect visible without interaction looks out of
place when there is no cursor (the cursor becomes hidden for/after
touch interaction until next mouse or tablet interaction). Just
clear the hover effect after touch-up to prevent this.
Note that SSD hover effects are still shown during touch-move and
touch-down.

8 months agoinput: use mouse emulation for touch when labwc menu is open
Jens Peters [Fri, 13 Jun 2025 12:59:02 +0000 (14:59 +0200)]
input: use mouse emulation for touch when labwc menu is open

Only use the touch protocol when no labwc menu is open.
This ensure that labwc menus will be closed on first touch
down/up since cursor emulation takes care of closing a
menu.
This prevents that a labwc menu stay open during touch
interactions in native touch mode.

8 months agoinput: handle tablet tool creation internally
Jens Peters [Tue, 10 Jun 2025 17:40:48 +0000 (19:40 +0200)]
input: handle tablet tool creation internally

No need anymore to expose this function.

8 months agoinput: move tablet tool functions into tablet.c
Jens Peters [Tue, 10 Jun 2025 17:37:17 +0000 (19:37 +0200)]
input: move tablet tool functions into tablet.c

Just a big move and a rename of the tablet tool destroy handler.

8 months agoinput: remove zero initialization
Jens Peters [Tue, 10 Jun 2025 15:07:17 +0000 (17:07 +0200)]
input: remove zero initialization

This is already done by `znew()`.