Commit graph

2342 commits

Author SHA1 Message Date
Johan Malm
307f199158 build: bump version to 0.7.3 2024-07-12 17:27:36 +01:00
Johan Malm
80ae55136e NEWS.md: update for 0.7.3 2024-07-12 17:19:00 +01:00
Weblate
c7b3f4f9d8 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
2024-07-08 21:11:46 +01:00
John Lindgren
b1a6a36582 menu: fix small memory leaks 2024-07-08 19:44:50 +01:00
John Lindgren
3ca1e94b1f menu: try other paths (and fix memory leak) if fopen() fails 2024-07-08 19:44:50 +01:00
John Lindgren
5979cc137a theme: fix memory leak of button icons 2024-07-08 19:44:50 +01:00
tokyo4j
1b122422f5 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.
2024-07-07 15:48:32 +09:00
tokyo4j
6bc93cf468 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.
2024-07-07 15:48:32 +09:00
tokyo4j
880522d142 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.
2024-07-07 15:48:32 +09:00
tokyo4j
11f02075c2 session-lock: refactor
No changes in logic.
2024-07-07 15:48:32 +09:00
tokyo4j
30694c2174 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.
2024-07-07 15:48:32 +09:00
Andrew J. Hesford
9153c22dab xwayland: allow persistence
Closes: #1958.
2024-07-04 05:19:19 +02:00
Johan Malm
370d62beda Remove subprojects/seatd.wrap as no longer needed 2024-07-02 22:06:57 +02:00
Consolatis
a466591e0d 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.
2024-07-02 20:34:25 +01:00
John Lindgren
a98f2635ea 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.
2024-07-01 20:16:31 +01:00
Consolatis
45b197b8a4 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
2024-06-29 23:36:41 +02:00
Johan Malm
b8c3e064e7 menu: support menu.overlap.x with pipemenus
No inteded functional change intended with refactoring of
get_submenu_position().

Fixes #1870
2024-06-28 19:58:01 +02:00
tokyo4j
74e1ba72e3 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`.
2024-06-28 14:07:26 +02:00
Jens Peters
3b605b0142 ssd: set squared corners for tiled views conditionally
Respect the snapping settings for notify-client.
2024-06-27 22:29:11 +01:00
Jens Peters
2c979fe269 ssd: extend border over squared corners 2024-06-27 22:29:11 +01:00
Jens Peters
98347e454e ssd: show squared corners when the view is tiled 2024-06-27 22:29:11 +01:00
droc12345
f2755a4e2e
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
2024-06-26 22:03:56 +01:00
stefonarch
7f94486773 Remove fuzzy for capitalized translations 2024-06-25 15:03:29 +02:00
tokyo4j
f4f5a02b0a dnd: show dnd icon above layer-shell surfaces 2024-06-25 14:56:57 +02:00
Weblate
9fc41a9730 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
2024-06-24 21:28:13 +01:00
Weblate
7440c5096a Translation updates from weblate
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/
Translation: Labwc/labwc
2024-06-23 14:32:17 +01:00
stefonarch
832c007e6b Updated labwc.pot file 2024-06-23 12:33:36 +01:00
tokyo4j
2e00630d80 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`.
2024-06-23 01:02:03 +02:00
tokyo4j
edd674f96b po/meson.build: minor formatting 2024-06-23 01:02:03 +02:00
Jens Peters
1495708095 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
2024-06-18 22:14:40 +01:00
Jens Peters
b63c6a0fc2 action: add ToggleTabletMouseEmulation
Useful for switching between application-defined and
mapped tablet  pad buttons. Also for quickly troubleshooting
tablet behavior.
2024-06-18 22:13:28 +01:00
Johan Malm
1dadb12807 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'
2024-06-15 21:31:00 +01:00
Simon Long
99893e63c3 Typo 2024-06-15 21:22:58 +01:00
Simon Long
2573162a4f Use existing reset_keybind function 2024-06-15 21:22:58 +01:00
Simon Long
e6c239e783 Move extern to h file 2024-06-15 21:22:58 +01:00
Simon Long
5b1ab48abf Fix release keybindings being triggered after mouse bindings 2024-06-15 21:22:58 +01:00
tokyo4j
bb1d0b4352 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.
2024-06-15 21:17:01 +01:00
tokyo4j
25415eb7ab src/theme.c: add zero_array() macro 2024-06-15 21:17:01 +01:00
Johan Malm
4ee538c6cd 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>
2024-06-13 23:17:16 +02:00
Jens Peters
dc27be2471 docs: clarify tablet button mapping 2024-06-13 21:23:37 +01:00
Jens Peters
3c0cea92f2 input: support tablet-v2 pad notifications 2024-06-13 21:23:37 +01:00
Jens Peters
61e5e0e4d9 input: track tablets and tablet-pads at seat 2024-06-13 21:23:37 +01:00
Jens Peters
ca317506c0 input: run mousebind action only on button pressed 2024-06-13 21:23:37 +01:00
Weblate
85a8f3aea3 Translation updates from weblate
Co-authored-by: The Silitonix <silitonix@gmail.com>
2024-06-13 21:22:11 +01:00
Johan Malm
d4756f62eb keyboard: handle onRelease keybind after long press
...that is longer than the specified repeatDelay interval.
2024-06-12 20:50:23 +01:00
Consolatis
067c59e526 xwayland: reset cursor image on cursor theme reload
As wlr_xwayland caches the pixel data when not yet started
up due to the delayed lazy startup approach, we do have to
re-set the xwayland cursor image when reloading the cursor
theme. Otherwise the first X11 client connected will cause
the xwayland server to use the cached (and destroyed) pixel
data.

To reproduce:
- Compile with b_sanitize=address,undefined
- Start labwc (nothing in autostart that could create
  a X11 connection, e.g. no GTK or X11 application)
- Reconfigure
- Start some X11 client
2024-06-11 21:40:06 +01:00
Johan Malm
9ff7f27dab NEWS.md: interim update 2024-06-10 19:53:26 +01:00
Consolatis
d044b869c4 src/button/button-svg: reduce debug log spam 2024-06-10 19:52:37 +01:00
Simon Long
84c222a84f Add onRelease option to <keybind>
...to make keybind actions fire on the release event rather then when the
key is first pressed. This is useful for binding actions to modifier keys
only. The most likely use-case for this is the binding of a Super key to a
menu, for example:

    <keybind key="Super_L" onRelease="yes">
      <action name="Execute" command="rofi -show drun"/>
    </keybind>

If another keybind is issued between the press and release, the on-release
keybind is cancelled.

Co-authored-by: @johanmalm
2024-06-09 21:15:58 +01:00
Jens Peters
f6c91c8d13 input: always notify all tablet axis
Notify all axis based on the capabilities of the
tablet tool. At least GTK applications expect
this for e.g. smooth pressure or distance events.
2024-06-08 22:33:00 +01:00