]>
git.mdlowis.com Git - proto/labwc.git/log
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.
tokyo4j [Mon, 9 Jun 2025 20:18:20 +0000 (05:18 +0900)]
server: remove server->sig{int,term,chld}_source in server_finish()
tokyo4j [Mon, 9 Jun 2025 20:13:07 +0000 (05:13 +0900)]
server: eliminate use of global vars
tokyo4j [Mon, 9 Jun 2025 20:22:04 +0000 (05:22 +0900)]
Bump wl_compositor version from 5 to 6
tokyo4j [Mon, 9 Jun 2025 08:04:34 +0000 (17:04 +0900)]
CI: use wlroots019 package for FreeBSD
tokyo4j [Mon, 9 Jun 2025 07:57:23 +0000 (16:57 +0900)]
CI: use wlroots0.19 package for Arch Linux
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.
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.
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.
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.
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).
Jens Peters [Sun, 1 Jun 2025 21:41:29 +0000 (23:41 +0200)]
config: formatting to improve readability
may [Fri, 6 Jun 2025 21:08:53 +0000 (23:08 +0200)]
libinput: implement threeFingerDrag feature
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
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()
tokyo4j [Sat, 7 Jun 2025 07:28:08 +0000 (16:28 +0900)]
view: simplify freeing of view->icon
Consolatis [Fri, 6 Jun 2025 23:51:56 +0000 (01:51 +0200)]
view.c: free icon name on view destroy
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
Johan Malm [Fri, 6 Jun 2025 21:30:40 +0000 (22:30 +0100)]
labwc-config(5): add example to unset mousebind
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().
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.
tokyo4j [Fri, 30 May 2025 11:58:15 +0000 (20:58 +0900)]
buffer: add buffer_create_from_wlr_buffer()
tokyo4j [Fri, 30 May 2025 11:55:31 +0000 (20:55 +0900)]
buffer: add buffer_resize()
tokyo4j [Fri, 23 May 2025 23:31:08 +0000 (08:31 +0900)]
view: add destroy signal
DreamMaoMao [Fri, 6 Jun 2025 00:10:18 +0000 (08:10 +0800)]
feat: add left-occupied and right-occupied to workspaces_find
DreamMaoMao [Thu, 5 Jun 2025 11:33:12 +0000 (19:33 +0800)]
view.c: add new NO_OMNIPRESENT criteria
dd [Thu, 5 Jun 2025 20:46:58 +0000 (04:46 +0800)]
ssd: add configurable drop-shadows for tiled windows
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
Johan Malm [Mon, 2 Jun 2025 20:25:52 +0000 (21:25 +0100)]
labwc-config(5): describe environment file comment syntax
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
Consolatis [Sun, 1 Jun 2025 21:27:01 +0000 (23:27 +0200)]
CI: wlroots package for Arch has been renamed
tokyo4j [Thu, 29 May 2025 02:14:39 +0000 (11:14 +0900)]
docs: update documentations for osd fields
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.
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.
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
Consolatis [Tue, 27 May 2025 16:55:00 +0000 (18:55 +0200)]
src/layers.c: send fractional scale before map
tokyo4j [Tue, 27 May 2025 07:11:49 +0000 (16:11 +0900)]
Rename some handler functions to be more consistent
tokyo4j [Tue, 27 May 2025 07:11:15 +0000 (16:11 +0900)]
xdg-popup: use CONNECT_SIGNAL() macro
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
zeusgoose [Sat, 24 May 2025 15:44:39 +0000 (10:44 -0500)]
documentation: s/view/window/
Johan Malm [Fri, 23 May 2025 20:38:32 +0000 (21:38 +0100)]
NEWS.md: minor fix to make github markdown render correctly
tokyo4j [Fri, 23 May 2025 05:11:57 +0000 (14:11 +0900)]
CONTRIBUTING.md: document use of braces in switch statements
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.
Consolatis [Fri, 23 May 2025 11:27:06 +0000 (13:27 +0200)]
server.c: add missing privileged protocols
Consolatis [Fri, 23 May 2025 11:26:23 +0000 (13:26 +0200)]
Protocols: use upstream wayland-protocols for ext-workspace-v1.xml
tokyo4j [Thu, 22 May 2025 06:42:41 +0000 (15:42 +0900)]
common/img/img-xbm: avoid using global variables
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
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.
alex-huff [Thu, 22 May 2025 20:22:05 +0000 (15:22 -0500)]
layer-shell: only configure initialized layer surfaces
Fixes #2736
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.
zeusgoose [Thu, 22 May 2025 15:39:39 +0000 (15:39 +0000)]
drm_syncobj check backend support for timelines
ref: https://github.com/swaywm/sway/commit/
17e2e52c6d1bf4bfebde8f6b2869702aacc3750a
zeusgoose [Wed, 21 May 2025 23:19:39 +0000 (23:19 +0000)]
drm_syncobj_v1
ref: https://github.com/swaywm/sway/commit/
05e895c4638293a6bfe594ff0cae4eaab63b740e
Andri Yngvason [Sun, 8 Dec 2024 20:52:57 +0000 (20:52 +0000)]
Enable ext-image-copy-capture-v1
John Lindgren [Wed, 14 Feb 2024 03:25:20 +0000 (22:25 -0500)]
xwayland: better support for keyboard focus grabs
Use the new grab_focus signal as a more reliable way to tell when an
unmanaged (override-redirect) surface wants focus.
John Lindgren [Sat, 20 Jul 2024 15:25:10 +0000 (11:25 -0400)]
xwayland: use wlr_xwayland_surface_offer_focus()
Offer focus by sending WM_TAKE_FOCUS to a client window supporting it.
The client may accept or ignore the offer. If it accepts, the surface will
emit a focus_in signal notifying the compositor that it has received focus.
The compositor should then call wlr_xwayland_surface_activate(surface, true).
This is a more compatible method of giving focus to windows using the
Globally Active input model (see wlr_xwayland_icccm_input_model()) than
calling wlr_xwayland_surface_activate() unconditionally, since there is no
reliable way to know in advance whether these windows want to be focused.
v2: add caution not to use view_offer_focus() directly
v3: remove obsolete comment
tokyo4j [Wed, 21 May 2025 12:15:38 +0000 (21:15 +0900)]
config: reorder if-statements for aesthetics
tokyo4j [Wed, 21 May 2025 11:51:13 +0000 (20:51 +0900)]
config: drop xwayland persistence workaround for wlroots < 0.18.2
We enabled xwayland persistence for wlroots < 0.18.2 to prevent crashes,
but it's no longer needed since we now depend on wlroots 0.19.
tokyo4j [Wed, 21 May 2025 11:43:17 +0000 (20:43 +0900)]
common/box: drop box_contains()
Johan Malm [Tue, 20 May 2025 20:15:45 +0000 (21:15 +0100)]
docs/autostart: add example for delayed start
Johan Malm [Wed, 21 May 2025 05:33:02 +0000 (06:33 +0100)]
labwc-actions(5): add example for ShowMenu with wtype
Related-to: #2726
Consolatis [Sat, 8 Feb 2025 16:13:40 +0000 (17:13 +0100)]
Update to wlroots 0.19.0 release
John Lindgren [Sun, 2 Feb 2025 21:02:47 +0000 (16:02 -0500)]
chase wlroots: remove #include <wlr/types/wlr_matrix.h>
Ref:
9b55737cf512ae5132b10633b83e099d46fa259f
("Make wlr_matrix private API")
Consolatis [Tue, 15 Apr 2025 04:40:40 +0000 (06:40 +0200)]
chase wlroots: add wlr_buffer_finish() to buffer destroy handler
Ref:
7963ba6a0deb5b696050d914ac395bca9c4c06b2
("buffer: introduce wlr_buffer_finish()")
Consolatis [Wed, 27 Nov 2024 03:27:21 +0000 (04:27 +0100)]
chase wlroots: new presentation_time version MR 4858
Ref:
4c74a8843a08a39d6278de4a26759d93155feb2c
("presentation-time: bump protocol version to v2")
Consolatis [Wed, 27 Nov 2024 03:48:45 +0000 (04:48 +0100)]
chase wlroots: use WLR_PRIVATE (MR 4842)
Ref:
6006023a377868187f73d2e0922bbe952072684f
("Use WLR_PRIVATE for private fields")
tokyo4j [Fri, 25 Apr 2025 09:35:05 +0000 (18:35 +0900)]
chase wlroots: simplify transforms in scene-helpers (MR 4819/4845)
Ref:
009515161bd97d8f920d72d31ef462f2608688e8
("scene: Only accept buffer coordinates for damage")
Note:
MR 4819 is immediately followed by MR 4845.
MR 4819 removes return value of wlr_damage_ring_add().
MR 4845 applies applies buffer-local coordinates for
scene_output->damage_ring instead of transformed coordinates.
Consolatis [Wed, 27 Nov 2024 03:51:25 +0000 (04:51 +0100)]
chase wlroots: wlr_damage_ring_add no return val (MR 4817)
Ref:
502eb38d80eb5a273f5481ec8559cb35d726f5da
("damage_ring: Remove return value of wlr_damage_ring_add/wlr_damage_ring_add_box")
Consolatis [Wed, 27 Nov 2024 03:14:08 +0000 (04:14 +0100)]
chase wlroots: wlr_xdg_surface_get_geometry remove MR 4788
Ref:
5c98d1a04a1439bf40c6e516086cfaff2d67f135
("xdg-surface: fix window geometry handling")
tokyo4j [Mon, 19 May 2025 06:03:41 +0000 (15:03 +0900)]
chase wlroots: let scene restack xwayland surfaces (MR 4756)
Ref:
1133bc15ceb2c2bcb6df692acda6bfa39a292ab5
("Transparently restack xwayland surfaces")
In addition, MR 4772 makes sure the hidden windows are stacked at the
bottom, just like what we did with XWAYLAND_VIEW_HIDDEN.
Consolatis [Wed, 27 Nov 2024 02:53:28 +0000 (03:53 +0100)]
chase wlroots: xwayland separate maximized axis MR 4670
Ref:
ceb4fcedca30d323a05836b0872bfe773a047ccc
("xwm: expose individual axis for _set_maximized()")
Consolatis [Wed, 27 Nov 2024 02:41:58 +0000 (03:41 +0100)]
chase wlroots: _wants_focus and input_model renames MR 2434
Ref:
d3b7e040af46ab03114d5a40e9ed0c7c6aff15be
("wlr_xwayland_surface: fix prefix of two functions")
Consolatis [Wed, 27 Nov 2024 02:35:45 +0000 (03:35 +0100)]
chase wlroots: wlr_surface_accepts args MR 2434
Ref:
5ecbd23c1d44119cb32b345782d50c9664853109
("wlr_surface: fix argument order consistency")
John Lindgren [Sun, 2 Feb 2025 19:22:24 +0000 (14:22 -0500)]
chase wlroots: pin to first 0.19.0-dev commit
Ref:
b10516e1e8352f3140d68fa580b0ed32e13c2d58
("build: bump version to 0.19.0-dev")
Consolatis [Sat, 17 May 2025 18:37:32 +0000 (20:37 +0200)]
CI: Void: use wlroots0.19-devel distro package
Consolatis [Sat, 17 May 2025 18:32:10 +0000 (20:32 +0200)]
CI: allow Debian to build the wlroots subproject
tokyo4j [Sat, 17 May 2025 15:07:48 +0000 (00:07 +0900)]
scaled-scene-buffer: guard against negative sizes
tokyo4j [Sun, 4 May 2025 14:40:25 +0000 (23:40 +0900)]
graphic-helper: properly handle very small multi_rects
For example, alacritty can be resized to 1x1 and the size of the
scene-rects inside the multi_rect for the window switcher preview could
be negative.
tokyo4j [Sun, 4 May 2025 13:33:12 +0000 (22:33 +0900)]
ssd: guard against negative sizes
We always create a SSD for 0x0 window since decorations are usually
requested before a window is mapped. Thus the sizes of some buffers/rects
like edge shadows could be negative, which is asserted in wlroots 0.19.
tokyo4j [Mon, 14 Apr 2025 11:55:45 +0000 (20:55 +0900)]
osd: guard against negative sizes
This fixes the broken look of osd with very small width like:
osd.window-switcher.width: 1
tokyo4j [Sat, 3 May 2025 10:57:49 +0000 (19:57 +0900)]
menu: guard against negative sizes
For example, the size of a scene_rect for a menu item background could be
negative with:
menu.width.max: 0
menu.width.min: 0
Consolatis [Wed, 27 Nov 2024 06:39:30 +0000 (07:39 +0100)]
xwayland.c: support both axis for client side maximize requests
Orfeas [Thu, 15 May 2025 21:30:24 +0000 (00:30 +0300)]
keyboard.c: don't broadcast modifiers from virtual keyboards
Fixes: #2723
Consolatis [Fri, 9 May 2025 13:51:31 +0000 (15:51 +0200)]
CI: verify early exit on missing fonts
tokyo4j [Thu, 8 May 2025 10:28:15 +0000 (19:28 +0900)]
Gracefully exit when no fonts are installed
...rather than emitting ugly errors like:
labwc: ../src/buffer.c:85: buffer_adopt_cairo_surface: Assertion
`cairo_image_surface_get_format(surface) == CAIRO_FORMAT_ARGB32' failed.
tokyo4j [Sat, 3 May 2025 15:57:54 +0000 (00:57 +0900)]
ssd-shadow: flip top-right/bottom-left corner instead of rotating
This simplifies corner_scale_crop().
Jens Peters [Fri, 25 Apr 2025 12:37:06 +0000 (14:37 +0200)]
docs: document scroll wheel emulation actions
Jens Peters [Fri, 25 Apr 2025 12:21:30 +0000 (14:21 +0200)]
cursor: add scroll emulation for cursor motion
Jens Peters [Mon, 21 Apr 2025 16:18:21 +0000 (18:18 +0200)]
cursor: introduce cursor_emulate_axis()
Jens Peters [Wed, 16 Apr 2025 17:16:06 +0000 (19:16 +0200)]
action: add scroll-wheel-emulation actions
tokyo4j [Sat, 3 May 2025 11:58:39 +0000 (20:58 +0900)]
rcxml: validate total osd field width
Before this patch, window switcher fields could overflow if the sum of
<windowSwitcher><fields><field width=""> exceeds 100%.
Jens Peters [Fri, 2 May 2025 12:19:08 +0000 (14:19 +0200)]
cursor: relocate cursor_emulate functions
Jens Peters [Wed, 16 Apr 2025 16:25:43 +0000 (18:25 +0200)]
cursor: remove unused parameter
This makes msec() also unused.
Jens Peters [Tue, 15 Apr 2025 19:43:00 +0000 (21:43 +0200)]
cursor: use CONNECT_SIGNAL macro
Rename functions accordingly.
Johan Malm [Fri, 2 May 2025 15:01:34 +0000 (16:01 +0100)]
build: bump version to 0.8.4
Johan Malm [Tue, 15 Apr 2025 19:16:25 +0000 (20:16 +0100)]
NEWS.md: update notes for 0.8.4
Weblate [Fri, 2 May 2025 13:26:02 +0000 (15:26 +0200)]
Translation updates from weblate
Co-authored-by: Syahmin Sukhairi <kuimax@yahoo.com>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/id/
Translation: Labwc/labwc
Weblate [Wed, 30 Apr 2025 08:01:24 +0000 (10:01 +0200)]
Translation updates from weblate
Co-authored-by: knm100 <ckdeneon@163.com>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/zh_CN/
Translation: Labwc/labwc
Simon Long [Tue, 29 Apr 2025 08:18:17 +0000 (09:18 +0100)]
Parse touch configs in reverse order to enable overriding
Also reverse searching of default configs
Johan Malm [Wed, 23 Apr 2025 19:03:14 +0000 (20:03 +0100)]
font: use PangoStyle enum
Johan Malm [Wed, 23 Apr 2025 19:01:26 +0000 (20:01 +0100)]
font: use PangoWeight enum
No change in functionality.
Suggested-by: @spl237