]> git.mdlowis.com Git - proto/labwc.git/log
proto/labwc.git
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()`.

8 months agoinput: move tablet axis members to tablet tool
Jens Peters [Sun, 8 Jun 2025 06:27:25 +0000 (08:27 +0200)]
input: move tablet axis members to tablet tool

It doesn't matter much since those are about the combination
of tablet and tablet tool. That said, this feels slightly more
natural.
As a consequence we always create a tablet tool and decide
indirectly via `tablet_get_coords()` and the returning surface
if mouse emulation should be used or not. Now we can also
add a `motion_mode` to the tablet tool which is slightly cleaner.

8 months agoBump xdg-shell version from 3 to 6
tokyo4j [Mon, 9 Jun 2025 21:50:41 +0000 (06:50 +0900)]
Bump xdg-shell version from 3 to 6

- Send xdg_toplevel.wm_capabilities
- Send xdg_toplevel.configure_bounds so that clients can map a window that
  fits within the usable area, without relying on
  view_constrain_size_to_that_of_usable_area() which is called after map.
- (The new "suspended" state should be handled by wlr_scene in the future)

8 months agoconfig: add <core><primarySelection>
Johan Malm [Fri, 13 Jun 2025 19:08:52 +0000 (20:08 +0100)]
config: add <core><primarySelection>

...to enable/disable primary selection clipboard support. This only works
on launch.

The reason it is useful to be able to disable this is that some clients
(like browsers) support middle-button-click to start scrolling up/down.

With some clients can be disabled via

   gsettings set org.gnome.desktop.interface gtk-enable-primary-paste false

...but for others (like chromium and electron based programs) a compositor
setting is required.

Fixes: #2815
8 months agocursor: omit pointer cursor shape for tablet tool
Jens Peters [Sun, 8 Jun 2025 09:38:25 +0000 (11:38 +0200)]
cursor: omit pointer cursor shape for tablet tool

Omit cursor notifications from a pointer when a tablet
tool (stylus/pen) is in proximity. This is equivalent
to `handle_request_set_cursor()` and prevents a resize
cursor for out-of-surface scrolling with a tablet tool in
recent GTK4 (which uses the cursor shape protocol).

8 months agodesktop: give focus to a modal dialog rather than its parent
John Lindgren [Fri, 13 Jun 2025 15:00:26 +0000 (11:00 -0400)]
desktop: give focus to a modal dialog rather than its parent

Fixes: #2722
8 months agoWayland protocols: support ext_data_control_manager_v1
Consolatis [Fri, 13 Jun 2025 15:22:04 +0000 (17:22 +0200)]
Wayland protocols: support ext_data_control_manager_v1

8 months agoWayland protocols: support wp_alpha_modifier_v1
Consolatis [Fri, 13 Jun 2025 15:14:45 +0000 (17:14 +0200)]
Wayland protocols: support wp_alpha_modifier_v1

8 months agoserver.c: prefix protocol version define with LAB_
Consolatis [Fri, 13 Jun 2025 15:23:37 +0000 (17:23 +0200)]
server.c: prefix protocol version define with LAB_

8 months agoscene-helpers: use wlr_scene_output_needs_frame
Consolatis [Fri, 13 Jun 2025 16:27:55 +0000 (18:27 +0200)]
scene-helpers: use wlr_scene_output_needs_frame

8 months agoxwayland: fix possible loss of focus when multiple views are unmapped
John Lindgren [Wed, 11 Jun 2025 20:12:56 +0000 (16:12 -0400)]
xwayland: fix possible loss of focus when multiple views are unmapped

Due to the asynchronous nature of view_offer_focus(), there was a race
condition that could result in no view remaining active when multiple
views were unmapped at once. Check for this and prevent it.

8 months agoxwayland: correctly return seat focus from menus/tooltips in CLion
John Lindgren [Wed, 11 Jun 2025 19:40:37 +0000 (15:40 -0400)]
xwayland: correctly return seat focus from menus/tooltips in CLion

CLion's main window uses the Globally Active input model, and since
8fb2ecefcbd6 it is given focus asynchronously via view_offer_focus().
However, we need to return seat focus immediately after an unmanaged
surface (e.g. popup) is unmapped, or focus is lost completely.

8 months agoxwayland: handle rare case of focus_in event occurring before map
John Lindgren [Wed, 11 Jun 2025 19:10:10 +0000 (15:10 -0400)]
xwayland: handle rare case of focus_in event occurring before map

This fixes a timing-dependent issue where the CLion main window was
sometimes not correctly focused at startup.

8 months agoNEWS.md: interim update
Johan Malm [Tue, 10 Jun 2025 18:01:46 +0000 (19:01 +0100)]
NEWS.md: interim update

8 months agoxwayland: always offer focus in Globally Active case
John Lindgren [Mon, 9 Jun 2025 15:11:32 +0000 (11:11 -0400)]
xwayland: always offer focus in Globally Active case

In 9e3785f8cd7a, a heuristic was added to assume that NORMAL and DIALOG
window types were always focusable. (This was before we had the "offer
focus" mechanism in place.)

However, we should still call wlr_xwayland_surface_offer_focus() for
these views, in case they actually don't want focus. (This is uncommon
but has recently been seen with WeChat popups, which have both NORMAL
and UTILITY type.)

To make this possible, refine view_wants_focus() to return either
LIKELY or UNLIKELY for Globally Active input windows. This decouples
the question of "should we try to focus this view" from the actual
mechanism used to do so.

8 months agoReplace scaled_rect_buffer with lab_scene_rect
tokyo4j [Mon, 9 Jun 2025 07:28:34 +0000 (16:28 +0900)]
Replace scaled_rect_buffer with lab_scene_rect

This fixes the gap between menu items and the menu border in an output
with a fractional scale due to the semantic gap between cairo and
wlroots's position-independent scene renderer.

8 months agoReplace multi_rect with lab_scene_rect
tokyo4j [Mon, 9 Jun 2025 07:27:17 +0000 (16:27 +0900)]
Replace multi_rect with lab_scene_rect

lab_scene_rect accepts the arbitrary number of borders and a background
color.

8 months agoserver: remove server->sig{int,term,chld}_source in server_finish()
tokyo4j [Mon, 9 Jun 2025 20:18:20 +0000 (05:18 +0900)]
server: remove server->sig{int,term,chld}_source in server_finish()

8 months agoserver: eliminate use of global vars
tokyo4j [Mon, 9 Jun 2025 20:13:07 +0000 (05:13 +0900)]
server: eliminate use of global vars

8 months agoBump wl_compositor version from 5 to 6
tokyo4j [Mon, 9 Jun 2025 20:22:04 +0000 (05:22 +0900)]
Bump wl_compositor version from 5 to 6

8 months agoCI: use wlroots019 package for FreeBSD
tokyo4j [Mon, 9 Jun 2025 08:04:34 +0000 (17:04 +0900)]
CI: use wlroots019 package for FreeBSD

8 months agoCI: use wlroots0.19 package for Arch Linux
tokyo4j [Mon, 9 Jun 2025 07:57:23 +0000 (16:57 +0900)]
CI: use wlroots0.19 package for Arch Linux

8 months agoinput: emulate cursor axis for tablet tool mouse
Jens Peters [Fri, 6 Jun 2025 05:14:38 +0000 (07:14 +0200)]
input: emulate cursor axis for tablet tool mouse

We only have to deal with non-high-res mouses, so we can
emulate it even without having delta_discrete being
exposed by wlroots.

8 months agoinput: always use mouse emulation for tablet tool mouse
Jens Peters [Fri, 6 Jun 2025 05:14:21 +0000 (07:14 +0200)]
input: always use mouse emulation for tablet tool mouse

Using mouse emulation for a tablet tool mouse is just a practical
decision to let such a tool work more smootly, e.g. it avoids weird
menu issues in GTK applications. Since such a tool doesn't have
pen specifix axis like pressure or distance, no functionality is lost.

A solution fully in line with the protocol, which would pass the tool
mouse buttons to the client, would leave us with  e.g. non-working
buttons in current GTK4 since they don't handle the buttons
reported from the tool mouse.
May be this changes in future. But for now, let's just be practical.

8 months agoinput: do not bind motion mode to tablet
Jens Peters [Fri, 6 Jun 2025 05:05:47 +0000 (07:05 +0200)]
input: do not bind motion mode to tablet

Instead, always derive it from the current tool. This prevents any
mismatches when working with multiple tools.

8 months agoinput: add tool_v2 NULL check
Jens Peters [Wed, 4 Jun 2025 20:23:38 +0000 (22:23 +0200)]
input: add tool_v2 NULL check

Should be quite unusual, but tool_v2 can be NULL.

8 months agoconfig: support tablet tool mouse buttons
Jens Peters [Sun, 1 Jun 2025 21:09:52 +0000 (23:09 +0200)]
config: support tablet tool mouse buttons

Those are regular mouse buttons, but attached
to a tablet tool (which looks like a mouse).

8 months agoconfig: formatting to improve readability
Jens Peters [Sun, 1 Jun 2025 21:41:29 +0000 (23:41 +0200)]
config: formatting to improve readability

9 months agolibinput: implement threeFingerDrag feature
may [Fri, 6 Jun 2025 21:08:53 +0000 (23:08 +0200)]
libinput: implement threeFingerDrag feature

9 months agolibinput: support <dragLock>sticky<dragLock> and enable it by default
tokyo4j [Sat, 7 Jun 2025 10:27:05 +0000 (19:27 +0900)]
libinput: support <dragLock>sticky<dragLock> and enable it by default

It is recommended by libinput:
https://lists.freedesktop.org/archives/wayland-devel/2024-November/043860.html

9 months agoscaled-icon-buffer: don't render twice in scaled_icon_buffer_set_view()
tokyo4j [Sat, 7 Jun 2025 07:34:40 +0000 (16:34 +0900)]
scaled-icon-buffer: don't render twice in scaled_icon_buffer_set_view()

9 months agoview: simplify freeing of view->icon
tokyo4j [Sat, 7 Jun 2025 07:28:08 +0000 (16:28 +0900)]
view: simplify freeing of view->icon

9 months agoview.c: free icon name on view destroy
Consolatis [Fri, 6 Jun 2025 23:51:56 +0000 (01:51 +0200)]
view.c: free icon name on view destroy

9 months agoEnsure the view signals are initialized early
Consolatis [Sat, 7 Jun 2025 02:26:35 +0000 (04:26 +0200)]
Ensure the view signals are initialized early

This prevents a crash observed by the scaled-icon-buffer listening
to the `view->events.set_icons` signal before it is initialized.
For this to happen, the application needs to use the kde decoration
protocol and set it on the xdg_surface before creating the xdg_toplevel.

Fixes: #2798
9 months agolabwc-config(5): add example to unset mousebind
Johan Malm [Fri, 6 Jun 2025 21:30:40 +0000 (22:30 +0100)]
labwc-config(5): add example to unset mousebind

9 months agoscaled-icon-buffer: fix window icons not loaded after Reconfigure
tokyo4j [Fri, 6 Jun 2025 19:09:27 +0000 (04:09 +0900)]
scaled-icon-buffer: fix window icons not loaded after Reconfigure

This patch fixes the issue that window icons become the fallback
one after Reconfigure, by setting scaled_icon_buffer->view_app_id (and
other properties) in scaled_icon_buffer_set_view().

The reason why the window icons were displayed before Reconfigure is that
applications usually enable decorations and then set app_id which fires
handle_view_set_icon().

9 months agoSupport xdg-toplevel-icon protocol
tokyo4j [Fri, 30 May 2025 11:58:48 +0000 (20:58 +0900)]
Support xdg-toplevel-icon protocol

This patch also changes the semantics of scaled_icon_buffer: rather than
calling scaled_icon_buffer_set_app_id() every time an app_id is set, we
can now call scaled_icon_buffer_set_view() just once so that multiple
scaled_icon_buffers bound to a window are automatically updated when an
app_id is set or new icon is set via xdg-toplevel-icon-v1.

9 months agobuffer: add buffer_create_from_wlr_buffer()
tokyo4j [Fri, 30 May 2025 11:58:15 +0000 (20:58 +0900)]
buffer: add buffer_create_from_wlr_buffer()

9 months agobuffer: add buffer_resize()
tokyo4j [Fri, 30 May 2025 11:55:31 +0000 (20:55 +0900)]
buffer: add buffer_resize()

9 months agoview: add destroy signal
tokyo4j [Fri, 23 May 2025 23:31:08 +0000 (08:31 +0900)]
view: add destroy signal

9 months agofeat: add left-occupied and right-occupied to workspaces_find
DreamMaoMao [Fri, 6 Jun 2025 00:10:18 +0000 (08:10 +0800)]
feat: add left-occupied and right-occupied to workspaces_find

9 months agoview.c: add new NO_OMNIPRESENT criteria
DreamMaoMao [Thu, 5 Jun 2025 11:33:12 +0000 (19:33 +0800)]
view.c: add new NO_OMNIPRESENT criteria

9 months agossd: add configurable drop-shadows for tiled windows
dd [Thu, 5 Jun 2025 20:46:58 +0000 (04:46 +0800)]
ssd: add configurable drop-shadows for tiled windows

9 months agoxdg: add missing tracking of configure serials
John Lindgren [Wed, 4 Jun 2025 18:35:00 +0000 (14:35 -0400)]
xdg: add missing tracking of configure serials

In some cases, we would schedule a configure event but not record that
we had done so, leaving view->pending_configure_serial incorrect. This
caused incorrect handling of in-flight commits that had not yet taken
the new configure into account, such as assuming that the client had
ignored the configured size and incorrectly resetting view->pending.

Fixes: #2774
9 months agolabwc-config(5): describe environment file comment syntax
Johan Malm [Mon, 2 Jun 2025 20:25:52 +0000 (21:25 +0100)]
labwc-config(5): describe environment file comment syntax

9 months agolayers: arrange layers on destroy
Johan Malm [Tue, 10 Oct 2023 20:51:58 +0000 (21:51 +0100)]
layers: arrange layers on destroy

...rather than unmap because that is the approach of sway and it also
avoids wshowkeys crashing.

Fixes: #1153
9 months agoCI: wlroots package for Arch has been renamed
Consolatis [Sun, 1 Jun 2025 21:27:01 +0000 (23:27 +0200)]
CI: wlroots package for Arch has been renamed

9 months agodocs: update documentations for osd fields
tokyo4j [Thu, 29 May 2025 02:14:39 +0000 (11:14 +0900)]
docs: update documentations for osd fields

9 months agoosd: always show output name with <field content="output">
tokyo4j [Wed, 28 May 2025 19:50:51 +0000 (04:50 +0900)]
osd: always show output name with <field content="output">

Before this patch, output names were not shown if there's only one output.

9 months agoosd: always show title with <field content="title">
tokyo4j [Wed, 28 May 2025 19:47:41 +0000 (04:47 +0900)]
osd: always show title with <field content="title">

Before this patch, titles were not shown if they are identical to the
identifiers.

9 months agoAdd scroll method libinput option
Consolatis [Tue, 27 May 2025 12:19:21 +0000 (14:19 +0200)]
Add scroll method libinput option

<libinput>
  <device>
    <scrollMethod>none|twofinger|edge</scrollMethod>
  </device>
</libinput>

Fixes: #2766
9 months agosrc/layers.c: send fractional scale before map
Consolatis [Tue, 27 May 2025 16:55:00 +0000 (18:55 +0200)]
src/layers.c: send fractional scale before map

9 months agoRename some handler functions to be more consistent
tokyo4j [Tue, 27 May 2025 07:11:49 +0000 (16:11 +0900)]
Rename some handler functions to be more consistent

9 months agoxdg-popup: use CONNECT_SIGNAL() macro
tokyo4j [Tue, 27 May 2025 07:11:15 +0000 (16:11 +0900)]
xdg-popup: use CONNECT_SIGNAL() macro

9 months agoTranslation updates from weblate
Weblate [Sun, 25 May 2025 21:26:43 +0000 (23:26 +0200)]
Translation updates from weblate

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

9 months agodocumentation: s/view/window/
zeusgoose [Sat, 24 May 2025 15:44:39 +0000 (10:44 -0500)]
documentation: s/view/window/

9 months agoNEWS.md: minor fix to make github markdown render correctly
Johan Malm [Fri, 23 May 2025 20:38:32 +0000 (21:38 +0100)]
NEWS.md: minor fix to make github markdown render correctly

9 months agoCONTRIBUTING.md: document use of braces in switch statements
tokyo4j [Fri, 23 May 2025 05:11:57 +0000 (14:11 +0900)]
CONTRIBUTING.md: document use of braces in switch statements

9 months agoAdd -Wshadow + reformat switch cases
tokyo4j [Fri, 23 May 2025 04:09:15 +0000 (13:09 +0900)]
Add -Wshadow + reformat switch cases

Adding -Wshadow will prevent unintentional variable overrides.

Also, wrapping switch cases with declarations with braces will make our
logic more robust by limiting lifetimes of variables.

9 months agoserver.c: add missing privileged protocols
Consolatis [Fri, 23 May 2025 11:27:06 +0000 (13:27 +0200)]
server.c: add missing privileged protocols

9 months agoProtocols: use upstream wayland-protocols for ext-workspace-v1.xml
Consolatis [Fri, 23 May 2025 11:26:23 +0000 (13:26 +0200)]
Protocols: use upstream wayland-protocols for ext-workspace-v1.xml

9 months agocommon/img/img-xbm: avoid using global variables
tokyo4j [Thu, 22 May 2025 06:42:41 +0000 (15:42 +0900)]
common/img/img-xbm: avoid using global variables

9 months agoxwayland: use wlr_xwayland_surface_has_window_type()
John Lindgren [Wed, 21 May 2025 15:43:50 +0000 (11:43 -0400)]
xwayland: use wlr_xwayland_surface_has_window_type()

This eliminates a bit of logic, including an extra XWayland connection.

See also:
https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4553

9 months agotreewide: remove empty statements in switch cases
John Lindgren [Thu, 22 May 2025 14:53:58 +0000 (10:53 -0400)]
treewide: remove empty statements in switch cases

For longer cases, factor out the logic to new functions.
For very short cases, just move the declaration before the switch.

v2: in one case, replace the switch with if/else.

9 months agolayer-shell: only configure initialized layer surfaces
alex-huff [Thu, 22 May 2025 20:22:05 +0000 (15:22 -0500)]
layer-shell: only configure initialized layer surfaces

Fixes #2736

9 months agowlroots.wrap: use branch not tag
Johan Malm [Thu, 22 May 2025 21:25:27 +0000 (22:25 +0100)]
wlroots.wrap: use branch not tag

Make revision= track the 0.19 branch rather than a specific tag.