]> git.mdlowis.com Git - proto/labwc.git/log
proto/labwc.git
19 months agocosmic-workspaces: labwc integration
Consolatis [Tue, 23 Jul 2024 23:04:44 +0000 (01:04 +0200)]
cosmic-workspaces: labwc integration

19 months agocosmic-workspaces: protocol implementation
Consolatis [Tue, 23 Jul 2024 23:04:06 +0000 (01:04 +0200)]
cosmic-workspaces: protocol implementation

19 months agocommon/array.h: add array_add() helper
Consolatis [Fri, 2 Aug 2024 19:57:19 +0000 (21:57 +0200)]
common/array.h: add array_add() helper

19 months agoworkspaces: slight struct reordering
Consolatis [Thu, 25 Jul 2024 19:56:05 +0000 (21:56 +0200)]
workspaces: slight struct reordering

19 months agomultirect: remove destroy listener before freeing
Consolatis [Wed, 24 Jul 2024 16:09:53 +0000 (18:09 +0200)]
multirect: remove destroy listener before freeing

Detected by `-Db_sanitize=address,undefined` for libwayland

19 months agoNEWS.md: update for 0.7.4
Johan Malm [Fri, 19 Jul 2024 20:59:13 +0000 (21:59 +0100)]
NEWS.md: update for 0.7.4

19 months agosrc/xdg-popup.c: take into account CSD borders for unconstraining
tokyo4j [Mon, 22 Jul 2024 07:20:17 +0000 (16:20 +0900)]
src/xdg-popup.c: take into account CSD borders for unconstraining

wlr_xdg_popup_unconstrain_from_box() takes a constraint box relative to
toplevel surface, not window.

19 months agosrc/xdg-popup.c: choose output depending on xdg-positioner
tokyo4j [Sat, 20 Jul 2024 17:33:51 +0000 (02:33 +0900)]
src/xdg-popup.c: choose output depending on xdg-positioner

wlr_popup->current.geometry.{x,y} are usually zero on initial commit, so
xdg-popups were always unconstrained against the output which contains
the top-left of the parent toplevel.

This commit changes xdg-popups to be unconstrained against the output
which contains the top-left of preliminary popup geometry designated by
xdg-positioner given as an argument of "get_popup" or "reposition"
requests.

19 months agolayer-shell: stop sending configure events on surface creation
tokyo4j [Tue, 23 Jul 2024 10:09:48 +0000 (19:09 +0900)]
layer-shell: stop sending configure events on surface creation

With wlroots 0.18, layer-shell's new_surface event is emitted on
zwlr_layer_shell_v1.get_layer_surface request rather than the first
commit. This change layer-shell clients like fuzzel to flicker on launch
because labwc was sending a configure event with fullscreen geometry due
to the absence of geometry hints on get_layer_surface requests.

This commit removes the code that updates the usable area from
new_surface handler, preventing unintended configure events with
fullscreen geometry.

19 months agobackend/drm: Implement support for renderer loss recovery
Christopher Snowhill [Thu, 18 Jul 2024 00:13:51 +0000 (17:13 -0700)]
backend/drm: Implement support for renderer loss recovery

This implementation is nearly identical to Sway's, except that
it also reloads the configuration, to spur on reloading the
server-side decorations.

v2: Fix style.
v3: Add a reset to the magnifier.
v4: Oops, restructure reset handler a bit.
v5: Commit the magnifier reset immediately, before freeing the
    lost allocator and renderer.
v6: Also check for failed render pass, which may return NULL.
v7: Add a second NULL test, just in case.

19 months agosrc/ssd/ssd.c: fix incorrect condition in ssd_part_contains()
tokyo4j [Tue, 23 Jul 2024 08:52:42 +0000 (17:52 +0900)]
src/ssd/ssd.c: fix incorrect condition in ssd_part_contains()

19 months agoxdg: remove useless view_set_ssd_mode() in xdg_toplevel_new()
John Lindgren [Sat, 20 Jul 2024 02:10:24 +0000 (22:10 -0400)]
xdg: remove useless view_set_ssd_mode() in xdg_toplevel_new()

The desired SSD mode is not known at this point. When it is known,
kde-deco/xdg-deco will call view_set_ssd_mode() themselves.

19 months agoxdg: update initial maximize logic for wlroots 0.18
John Lindgren [Fri, 19 Jul 2024 23:22:56 +0000 (19:22 -0400)]
xdg: update initial maximize logic for wlroots 0.18

The initial configure event is now sent explicitly by labwc rather
than by wlroots. We need to move the maximize/fullscreen logic to
the initial commit handling accordingly.

Updates #1956, fixes #1994, replaces #1995.

19 months agoedges.c: fix flicker of snapped windows in nested session
tokyo4j [Tue, 23 Apr 2024 17:01:07 +0000 (02:01 +0900)]
edges.c: fix flicker of snapped windows in nested session

Fixes: #1621
19 months agooutput: allow tearing with atomic mode setting
Christopher Snowhill [Thu, 18 Jul 2024 00:10:04 +0000 (17:10 -0700)]
output: allow tearing with atomic mode setting

Additionally, track errors and abandon the tearing allowance when it
cannot be set for two-seconds' worth of consecutive frames.

19 months agoxwayland: support xinitrc scripts to configure server on launch (#1963)
Andrew J. Hesford [Sat, 20 Jul 2024 08:40:11 +0000 (04:40 -0400)]
xwayland: support xinitrc scripts to configure server on launch (#1963)

19 months agotheme: allow to set window button size (#1965)
Consus [Sat, 20 Jul 2024 08:33:57 +0000 (11:33 +0300)]
theme: allow to set window button size (#1965)

This commit introduces new option "window.button.width". Despite the name
it currently affects both width and height.

19 months agoview: implement `cascade` placement policy
tokyo4j [Fri, 3 May 2024 21:26:27 +0000 (06:26 +0900)]
view: implement `cascade` placement policy

Adds following settings:
<placement>
  <policy>cascade</policy>
  <cascadeOffset x="40" y="30" />
</placement>

"Cascade" policy places a new window at the center of the screen like
"center" policy, but possibly shifts its position to bottom-right so the
new window doesn't cover existing windows.

The algorithm is copied from KWin's implementation:
https://github.com/KDE/kwin/blob/df9f8f8346b5b7645578e37365dabb1a7b02ca5a/src/placement.cpp#L589

Also added some helper functions to manipulate `wlr_box`.

19 months agoxdg: handle initially maximized xdg-shell views better
John Lindgren [Tue, 2 Jul 2024 11:24:29 +0000 (07:24 -0400)]
xdg: handle initially maximized xdg-shell views better

Currently, initially maximized (or fullscreen) xdg-shell views exhibit
one of two issues:

 - some (e.g. GTK and Qt apps) paint an initial frame un-maximized
   (before the "map" event) and only maximize in a later commit

 - others (e.g. foot) maximize immediately without flicker, but never
   store a valid natural size, so we end up using a fallback (640x480)

Under KWin, neither of these issues occur, so I looked into what labwc
is doing wrong. It seems that:

 - wlroots internally sends an initial configure event with a size of
   0x0 to all xdg-shell views. This requests the client to set its own
   preferred (a.k.a. natural) size.

 - For an initially maximized/fullscreen view, the initial configure
   event should contain the maximized/fullscreen size rather than 0x0.
   In labwc, this means we have to call wlr_xdg_toplevel_set_size()
   earlier, i.e. from the new_surface event. Tracing with WAYLAND_DEBUG
   shows that the initial configure event now has the correct geometry,
   matching KWin behavior. With this change, GTK and Qt apps no longer
   paint an incorrect un-maximized frame.

 - However, this means that all xdg-shell views now suffer from the same
   issue as foot, where we never receive a commit with the un-maximized
   (natural) geometry. The correct way to get the natural geometry seems
   to be to wait until we want to un-maximize, and send a configure
   event of 0x0 at that point.

Sending a configure event of 0x0 when un-maximizing is a bit annoying as
it breaks some assumptions in labwc code. In particular:

 - view->natural_geometry may now be unknown (0x0), requiring various
   wlr_box_empty() checks sprinkled around. I added these in all the
   obvious places, but there could be some code paths that I missed.

 - Positioning the newly un-maximized view within view_maximize() no
   longer works since we don't know the natural size. Instead we have to
   run the positioning logic from the surface commit handler. This
   results in some extra complexity, especially for interactive move.
   See the new do_late_positioning() function in xdg.c.

Some TODOs/FIXMEs (non-blocking in my opinion):

 - The view_wants_decorations() check is now duplicated in both the
   new_surface and map event handlers. I'm not sure if this is necessary
   but it seemed like the safest approach for now. More testing would be
   nice, particularly with various combinations of config and client SSD
   preferences.

 - Aside from the interactive move case, the "late positioning" logic
   always centers the view when un-maximizing, and does not invoke any
   of the smart placement logic. If we want to invoke smart placement
   here, I'd appreciate someone with more knowledge of that code to take
   a look and figure out how to do that correctly.

19 months agodocs: add tablet tool section
Jens Peters [Mon, 8 Jul 2024 18:21:49 +0000 (20:21 +0200)]
docs: add tablet tool section

19 months agoinput: log tablet pad capabilities
Jens Peters [Mon, 8 Jul 2024 16:15:25 +0000 (18:15 +0200)]
input: log tablet pad capabilities

19 months agoinput: support tablet tool motion sensitivity configuration
Jens Peters [Fri, 5 Jul 2024 04:33:26 +0000 (06:33 +0200)]
input: support tablet tool motion sensitivity configuration

19 months agoconfig: add configuration for tablet tool motion sensitivity
Jens Peters [Fri, 5 Jul 2024 04:32:28 +0000 (06:32 +0200)]
config: add configuration for tablet tool motion sensitivity

19 months agoinput: support tablet tool motion configuration
Jens Peters [Fri, 5 Jul 2024 04:17:39 +0000 (06:17 +0200)]
input: support tablet tool motion configuration

19 months agoconfig: add configuration for tablet tool motion
Jens Peters [Fri, 5 Jul 2024 04:17:29 +0000 (06:17 +0200)]
config: add configuration for tablet tool motion

19 months agoinput: support tablet tools with relative motion
Jens Peters [Fri, 5 Jul 2024 04:09:37 +0000 (06:09 +0200)]
input: support tablet tools with relative motion

19 months agoinput: fix rotation for tilt
Jens Peters [Fri, 5 Jul 2024 04:05:35 +0000 (06:05 +0200)]
input: fix rotation for tilt

The transformation for relative coordinates
is different than for absolute coordinates.

19 months agoinput: add relative cursor move emulation
Jens Peters [Wed, 3 Jul 2024 19:14:43 +0000 (21:14 +0200)]
input: add relative cursor move emulation

19 months agoxwayland: set initial geometry in map_request handler
John Lindgren [Tue, 13 Feb 2024 00:52:36 +0000 (19:52 -0500)]
xwayland: set initial geometry in map_request handler

Set the initial geometry of maximized/fullscreen views before
actually mapping them, so that they can do their initial layout and
drawing with the correct geometry. This avoids visual glitches and
also avoids undesired layout changes with some apps (e.g. HomeBank).

Fixes: #1320
v2: ensure valid geometry for unmanaged->managed case

19 months agoDisable pango glyph position rounding
Johan Malm [Sun, 14 Jul 2024 07:55:30 +0000 (08:55 +0100)]
Disable pango glyph position rounding

Chase https://github.com/swaywm/sway/commit/8c5b23e592d2334b3324227dd9d1311e46c5fd69

Pango rounds glyph position and widths to nearest integer, which leads to
font dimensions jumping around when rendering with a scale, causing text
geometry to jump around when changing scale.

Disable this rounding to make the geometry stable.

19 months agossd: make borders respect snapped state on Reconfigure
Consolatis [Fri, 19 Jul 2024 19:45:24 +0000 (21:45 +0200)]
ssd: make borders respect snapped state on Reconfigure

Fixes: #1862
19 months agoconfig: initialize some missing defaults
Christopher Snowhill [Thu, 18 Jul 2024 01:01:15 +0000 (18:01 -0700)]
config: initialize some missing defaults

19 months agomagnifier: disable direct scanout when active
Consolatis [Tue, 16 Jul 2024 18:39:48 +0000 (20:39 +0200)]
magnifier: disable direct scanout when active

Fixes: #1980
19 months agoCI: switch Arch and FreeBSD to wlroots 0.18
Consolatis [Wed, 17 Jul 2024 15:49:01 +0000 (17:49 +0200)]
CI: switch Arch and FreeBSD to wlroots 0.18

Also add wlroots0.18-devel to Void, assuming that is what the
package will be called once available. For previous packaging
see https://github.com/void-linux/void-packages/pull/48323/files

19 months agochase: wlroots.wrap: track the wlroots 0.18 branch
Consolatis [Sat, 13 Jul 2024 15:46:39 +0000 (17:46 +0200)]
chase: wlroots.wrap: track the wlroots 0.18 branch

19 months agochase: move to stable tablet protocol and require w-p >= 1.35
Consolatis [Sat, 29 Jun 2024 19:05:02 +0000 (21:05 +0200)]
chase: move to stable tablet protocol and require w-p >= 1.35

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4645

19 months agochase: version pkgconfig, headers, and library
Consolatis [Mon, 27 May 2024 23:52:04 +0000 (01:52 +0200)]
chase: version pkgconfig, headers, and library

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4614

19 months agochase: tablet_pad to tablet
Consolatis [Mon, 18 Mar 2024 23:22:44 +0000 (00:22 +0100)]
chase: tablet_pad to tablet

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4585

19 months agochase: use wayland pointer enums rather than wlr ones
Consolatis [Tue, 19 Mar 2024 00:32:05 +0000 (01:32 +0100)]
chase: use wayland pointer enums rather than wlr ones

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4575

19 months agochase: request initial configure
Consolatis [Tue, 23 Apr 2024 21:37:08 +0000 (23:37 +0200)]
chase: request initial configure

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4396

19 months agochase: backend create now requires event_loop arg
Consolatis [Tue, 19 Mar 2024 00:47:23 +0000 (01:47 +0100)]
chase: backend create now requires event_loop arg

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4443

19 months agochase: output->pending
Consolatis [Mon, 18 Mar 2024 22:53:38 +0000 (23:53 +0100)]
chase: output->pending

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4202

19 months agochase: relative axis direction
Consolatis [Tue, 19 Mar 2024 00:05:35 +0000 (01:05 +0100)]
chase: relative axis direction

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4003

19 months agochase: presentation is now handled internally
Consolatis [Tue, 19 Mar 2024 00:31:23 +0000 (01:31 +0100)]
chase: presentation is now handled internally

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4482

19 months agochase: tearing hint
Consolatis [Mon, 18 Mar 2024 23:19:24 +0000 (00:19 +0100)]
chase: tearing hint

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4480

19 months agochase: let wlr_scene track damage again
Consolatis [Tue, 23 Apr 2024 20:01:35 +0000 (22:01 +0200)]
chase: let wlr_scene track damage again

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4253

19 months agochase: handle xdg new toplevel event
Consolatis [Tue, 19 Mar 2024 01:38:09 +0000 (02:38 +0100)]
chase: handle xdg new toplevel event

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4345

19 months agochase: move xdg destroy signal to toplevel / popup
Consolatis [Mon, 27 May 2024 13:55:46 +0000 (15:55 +0200)]
chase: move xdg destroy signal to toplevel / popup

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4345

19 months agochase: output-layout takes wl_display in constructor
Consolatis [Mon, 18 Mar 2024 22:55:37 +0000 (23:55 +0100)]
chase: output-layout takes wl_display in constructor

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4310

19 months agochase: disable restacking of unmanaged windows
Consolatis [Tue, 23 Apr 2024 23:52:23 +0000 (01:52 +0200)]
chase: disable restacking of unmanaged windows

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4052

19 months agochase: input inhibit removal
Consolatis [Mon, 18 Mar 2024 23:32:47 +0000 (00:32 +0100)]
chase: input inhibit removal

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4440

19 months agochase: wlroots version dep to 0.18
Consolatis [Mon, 18 Mar 2024 22:53:54 +0000 (23:53 +0100)]
chase: wlroots version dep to 0.18

19 months agomenu: fix crash triggered by pipemenu without parent <menu>
Johan Malm [Mon, 15 Jul 2024 20:47:10 +0000 (21:47 +0100)]
menu: fix crash triggered by pipemenu without parent <menu>

...such as the one in the example below:

    <?xml version="1.0" encoding="UTF-8"?>
    <openbox_menu>
      <menu id="root-menu" label="obmenu-generator" execute="obmenu-generator"/>
    </openbox_menu>

We should consider supporting this construct in future.

Reported-by: cry0xen via IRC
19 months agosrc/xdg.c: verify source surface for xdg_activation request
Consolatis [Wed, 10 Jul 2024 18:22:52 +0000 (20:22 +0200)]
src/xdg.c: verify source surface for xdg_activation request

wlroots < 0.17 didn't allow to reliably check the source surface of
an xdg activation request as it reset the surface to NULL when it
was destroyed before the token was used. This happens regularly for
notifications for example. Thus we treated the token as valid even
without checking for the source surface.

wlroots 0.17 added a new_token signal where we can attach information
to the existing token which we can then use when evaluating activation
requests. This patch implements that check.

19 months agoCI: add wlroots 0.17 packages for Arch and FreeBSD
Consolatis [Sun, 14 Jul 2024 19:09:44 +0000 (21:09 +0200)]
CI: add wlroots 0.17 packages for Arch and FreeBSD

19 months agodocs: fix typo in labwc-config.5.scd
Birger Schacht [Sat, 13 Jul 2024 12:14:22 +0000 (14:14 +0200)]
docs: fix typo in labwc-config.5.scd

19 months agobuild: bump version to 0.7.3
Johan Malm [Fri, 12 Jul 2024 16:23:47 +0000 (17:23 +0100)]
build: bump version to 0.7.3

19 months agoNEWS.md: update for 0.7.3
Johan Malm [Mon, 8 Jul 2024 19:09:00 +0000 (20:09 +0100)]
NEWS.md: update for 0.7.3

19 months agoTranslation updates from weblate
Weblate [Wed, 3 Jul 2024 08:01:16 +0000 (10:01 +0200)]
Translation updates from weblate

Co-authored-by: Heimen Stoffels <vistausss@fastmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: tark1998 <tark1998@gmail.com>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/ko/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/nl/
Translation: Labwc/labwc

19 months agomenu: fix small memory leaks
John Lindgren [Mon, 8 Jul 2024 15:09:20 +0000 (11:09 -0400)]
menu: fix small memory leaks

19 months agomenu: try other paths (and fix memory leak) if fopen() fails
John Lindgren [Mon, 8 Jul 2024 15:04:57 +0000 (11:04 -0400)]
menu: try other paths (and fix memory leak) if fopen() fails

19 months agotheme: fix memory leak of button icons
John Lindgren [Mon, 8 Jul 2024 14:56:20 +0000 (10:56 -0400)]
theme: fix memory leak of button icons

20 months agosession-lock: clear focused surface on lock
tokyo4j [Tue, 2 Jul 2024 15:16:30 +0000 (00:16 +0900)]
session-lock: clear focused surface on lock

Before this commit, keyboard events were sent to the focused surface
before the session-lock client maps its surfaces.

20 months agosession-lock: restore focused view on unlock
tokyo4j [Tue, 2 Jul 2024 13:33:47 +0000 (22:33 +0900)]
session-lock: restore focused view on unlock

Before this commit, the topmost view is focused on unlock. This commit
changes it to remember the focused view on lock then restore it on
unlock.

20 months agosession-lock: never allow multiple session-locks
tokyo4j [Tue, 2 Jul 2024 13:04:02 +0000 (22:04 +0900)]
session-lock: never allow multiple session-locks

I forgot to set session_lock_manager->lock, so it was always NULL.
This barely worked, but allowed multiple session-locks and conflicted
with comments in session-lock.h.

20 months agosession-lock: refactor
tokyo4j [Tue, 2 Jul 2024 13:03:45 +0000 (22:03 +0900)]
session-lock: refactor

No changes in logic.

20 months agosession-lock: remove cruft
tokyo4j [Tue, 2 Jul 2024 13:01:30 +0000 (22:01 +0900)]
session-lock: remove cruft

The color to fill screen with is always black and we don't need reset
its color on every session-lock destruction.

20 months agoxwayland: allow persistence
Andrew J. Hesford [Wed, 3 Jul 2024 17:43:04 +0000 (13:43 -0400)]
xwayland: allow persistence

Closes: #1958.
20 months agoRemove subprojects/seatd.wrap as no longer needed
Johan Malm [Tue, 2 Jul 2024 19:51:51 +0000 (20:51 +0100)]
Remove subprojects/seatd.wrap as no longer needed

20 months agossd/ssd-shadow.c: fix memory leak
Consolatis [Tue, 2 Jul 2024 18:49:53 +0000 (20:49 +0200)]
ssd/ssd-shadow.c: fix memory leak

Before this patch, we were leaking memory [0] because the
shadow implementation did not free the ssd_parts on destruction.

There was also no check if shadows were actually enabled via
rc.xml or not so this also impacted people who were not using
shadows but were not setting the shadow size via their theme to 0.

[0] 44 bytes per ssd_part * 8 parts * 2 states == 704 bytes per
view closed. Note that Reconfigure also re-creates the SSD, thus
we were also leaking 704 bytes * nr_views per Reconfigure.

20 months agoxdg: support xdg-shell v3 with popup repositioning
John Lindgren [Thu, 27 Jun 2024 23:17:38 +0000 (19:17 -0400)]
xdg: support xdg-shell v3 with popup repositioning

See https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3514
which added support on the wlroots side.

We now re-run popup positioning (for both xdg-shell and layer-shell
popups) when the "reposition" event is received. This allows popups that
change size (such as qmpanel's applications menu) to be positioned
correctly.

xdg-shell v3 also gives the compositor some additional "hints" for popup
positioning (reactive, parent_size, and parent_configure_serial) which
are available but we don't make use of currently.

20 months agomagnifier: fix flickering on simultaneous gamma changes
Consolatis [Mon, 17 Jun 2024 14:36:07 +0000 (16:36 +0200)]
magnifier: fix flickering on simultaneous gamma changes

Gamma changes take another code path and thus did not
render the magnifier. This patch consalidates both
code paths and therefore also renders the magnifier on
gamma changes.

Fixes: #1905
20 months agomenu: support menu.overlap.x with pipemenus
Johan Malm [Fri, 28 Jun 2024 17:27:43 +0000 (18:27 +0100)]
menu: support menu.overlap.x with pipemenus

No inteded functional change intended with refactoring of
get_submenu_position().

Fixes #1870

20 months agoview: don't try to restore to very small width/height on unmaximize
tokyo4j [Wed, 19 Jun 2024 02:48:39 +0000 (11:48 +0900)]
view: don't try to restore to very small width/height on unmaximize

Thonny (Python IDE made with Tk) may set the window geometry to 1x1 and
maximizes the window before mapping. This set `view->natural_geometry`
to 1x1, so labwc tried to restore the window geometry to it on
unmaximize, causing validation errors in `ssd_update_geometry()` as its
width and height are smaller than `LAB_MIN_VIEW_{WIDTH,HEIGHT}`.

This commit fixes it by not allowing geometries smaller than
`LAB_MIN_VIEW_{WIDTH,HEIGHT}` in `view->natural_geometry`.

20 months agossd: set squared corners for tiled views conditionally
Jens Peters [Sat, 22 Jun 2024 21:40:19 +0000 (23:40 +0200)]
ssd: set squared corners for tiled views conditionally

Respect the snapping settings for notify-client.

20 months agossd: extend border over squared corners
Jens Peters [Sat, 22 Jun 2024 21:27:37 +0000 (23:27 +0200)]
ssd: extend border over squared corners

20 months agossd: show squared corners when the view is tiled
Jens Peters [Sat, 22 Jun 2024 13:12:12 +0000 (15:12 +0200)]
ssd: show squared corners when the view is tiled

20 months agoaction: remember initial direction of PreviousView
droc12345 [Wed, 26 Jun 2024 21:03:56 +0000 (16:03 -0500)]
action: remember initial direction of PreviousView

...when cycling windows. Also make the toggling of direction when shift
is pressed relative to the initial direction. For example if W-j is
bound to PreviousWindow, subsequent key presses will continue to
cycle backwards unless shift if pressed.

Add documentation for using shift/arrow keys in Next/Previous

20 months agoRemove fuzzy for capitalized translations
stefonarch [Tue, 25 Jun 2024 11:01:45 +0000 (13:01 +0200)]
Remove fuzzy for capitalized translations

20 months agodnd: show dnd icon above layer-shell surfaces
tokyo4j [Tue, 25 Jun 2024 12:20:12 +0000 (21:20 +0900)]
dnd: show dnd icon above layer-shell surfaces

20 months agoTranslation updates from weblate
Weblate [Mon, 24 Jun 2024 19:19:25 +0000 (21:19 +0200)]
Translation updates from weblate

Co-authored-by: Abdullah Albaroty <albaroty@gmail.com>
Co-authored-by: Jan Rolski <wbcwknvstb@proton.me>
Co-authored-by: Priit Jõerüüt <lxqtwlate@joeruut.com>
Co-authored-by: Standreas <standreas@riseup.net>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/ar/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/de/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/et/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/it/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/pl/
Translation: Labwc/labwc

20 months agoTranslation updates from weblate
Weblate [Sun, 23 Jun 2024 12:19:01 +0000 (14:19 +0200)]
Translation updates from weblate

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

20 months agoUpdated labwc.pot file
stefonarch [Sun, 23 Jun 2024 10:56:59 +0000 (12:56 +0200)]
Updated labwc.pot file

20 months agosrc/main.c: initialize locale after reading environments file
tokyo4j [Sat, 22 Jun 2024 21:51:22 +0000 (06:51 +0900)]
src/main.c: initialize locale after reading environments file

This makes the locale for client-menu items and workspace names follow
the env var `LANG` defined in `~/.config/environments`.

20 months agopo/meson.build: minor formatting
tokyo4j [Sat, 22 Jun 2024 21:46:16 +0000 (06:46 +0900)]
po/meson.build: minor formatting

20 months agoinput: test if tablet device is a libinput device
Jens Peters [Sun, 16 Jun 2024 07:10:46 +0000 (09:10 +0200)]
input: test if tablet device is a libinput device

Otherwise we might end with a failed assertion if the
tablet or pad isn't a libinput device.

Fixes https://github.com/labwc/labwc/issues/1916

20 months agoaction: add ToggleTabletMouseEmulation
Jens Peters [Sun, 16 Jun 2024 06:47:48 +0000 (08:47 +0200)]
action: add ToggleTabletMouseEmulation

Useful for switching between application-defined and
mapped tablet  pad buttons. Also for quickly troubleshooting
tablet behavior.

20 months agomenu: capitalize Roll Up/Down
Johan Malm [Fri, 14 Jun 2024 21:17:03 +0000 (22:17 +0100)]
menu: capitalize Roll Up/Down

...because it seems like better English and is more consistent with other
menu entries.

Same for 'Move Left' and 'Move Right'

20 months agoTypo
Simon Long [Fri, 14 Jun 2024 09:24:49 +0000 (10:24 +0100)]
Typo

20 months agoUse existing reset_keybind function
Simon Long [Fri, 14 Jun 2024 09:23:04 +0000 (10:23 +0100)]
Use existing reset_keybind function

20 months agoMove extern to h file
Simon Long [Thu, 13 Jun 2024 10:04:30 +0000 (11:04 +0100)]
Move extern to h file

20 months agoFix release keybindings being triggered after mouse bindings
Simon Long [Thu, 13 Jun 2024 09:57:34 +0000 (10:57 +0100)]
Fix release keybindings being triggered after mouse bindings

20 months agoImplement <resize><drawContents>
tokyo4j [Wed, 29 May 2024 02:06:39 +0000 (11:06 +0900)]
Implement <resize><drawContents>

<resize><drawContents>[yes|no] configures whether to let the clients
redraw its window content content while resizing.

When <resize><drawContents> is set to no, a multi-rect is shown to
indicate the geometry of the resized window.

20 months agosrc/theme.c: add zero_array() macro
tokyo4j [Mon, 20 May 2024 06:19:37 +0000 (15:19 +0900)]
src/theme.c: add zero_array() macro

20 months agomenu: ignore <item> without parent <menu>
Johan Malm [Thu, 13 Jun 2024 20:00:44 +0000 (21:00 +0100)]
menu: ignore <item> without parent <menu>

...to avoid assert() in item_create() because current_menu is NULL.

Reproduce crash with...

    <?xml version="1.0" encoding="utf-8"?>
    <openbox_menu>
      <item label="foo"/>
    </openbox_menu>

20 months agodocs: clarify tablet button mapping
Jens Peters [Mon, 10 Jun 2024 17:45:45 +0000 (19:45 +0200)]
docs: clarify tablet button mapping

20 months agoinput: support tablet-v2 pad notifications
Jens Peters [Tue, 4 Jun 2024 18:21:12 +0000 (20:21 +0200)]
input: support tablet-v2 pad notifications

20 months agoinput: track tablets and tablet-pads at seat
Jens Peters [Tue, 4 Jun 2024 18:14:30 +0000 (20:14 +0200)]
input: track tablets and tablet-pads at seat

20 months agoinput: run mousebind action only on button pressed
Jens Peters [Tue, 11 Jun 2024 04:41:24 +0000 (06:41 +0200)]
input: run mousebind action only on button pressed

20 months agoTranslation updates from weblate
Weblate [Fri, 7 Jun 2024 05:11:14 +0000 (07:11 +0200)]
Translation updates from weblate

Co-authored-by: The Silitonix <silitonix@gmail.com>