Commit graph

1897 commits

Author SHA1 Message Date
Johan Malm
eb41fb1e0b build: bump version to 0.7.0 2023-12-22 17:03:32 +00:00
Johan Malm
5d53ab0675 NEWS.md: update notes for 0.7.0 2023-12-22 16:59:37 +00:00
Weblate
6be5983af9 Translation updates from weblate
Co-authored-by: Heimen Stoffels <vistausss@fastmail.com>
Co-authored-by: Jan Rolski <wbcwknvstb@proton.me>
Co-authored-by: Roberalz <lumintnian@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/es/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/eu/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/gl/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/nl/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/pl/
Translation: Labwc/labwc
2023-12-22 16:58:42 +00:00
Jens Peters
44c79c4963 xwayland: Prevents usage of invalid data pointer
There are situations where the data pointer of a parent is NULL.
Checking for NULL first fixes e.g. a segmentation fault in CLion
when opening the settings window from a popup menu.

See also https://github.com/labwc/labwc/issues/1351#issuecomment-1867475324
2023-12-22 11:24:49 +01:00
daniel
1e807ce654 Add Portuguese translation 2023-12-21 22:29:21 +00:00
Weblate
f5f00ee9bd Translation updates from weblate
Co-authored-by: Standreas <standreas@riseup.net>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/de/
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/it/
Translation: Labwc/labwc
2023-12-21 22:28:50 +00:00
Weblate
9ea6104fce Translation updates from weblate
Co-authored-by: Standreas <standreas@riseup.net>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.lxqt-project.org/projects/labwc/labwc/
Translation: Labwc/labwc
2023-12-21 18:08:02 +00:00
John Lindgren
a3f880716f xwayland: fix issue with panel getting stuck offscreen
For unknown reasons, XWayland surfaces that are completely offscreen
seem not to generate commit events. In rare cases, this can prevent an
offscreen window from moving onscreen (since we wait for a commit event
that never occurs). As a workaround, move offscreen surfaces
immediately.

This fixes an issue that I can reproduce by having qmpanel displayed on
a (larger) external monitor, then undocking the laptop so that qmpanel
requests a simultaneous move+resize to the (smaller) laptop display.
2023-12-21 06:01:46 +00:00
Johan Malm
3101b0c5b1 menu: move ToggleOmnipresent to workspaces
...and rename it to "Always on Visible Workspace"

Issue: #1316
2023-12-21 02:47:44 +01:00
Johan Malm
b7ee8b16f3 theme: move more button fallback logic to theme.c
...and simplify button_xbm_load() by splitting it into one function that
loads an xbm file and another that creates an icon from a builtin
bitmap.
2023-12-21 02:42:23 +01:00
Consolatis
27de4e6398 theme: create hover button fallbacks
...by copying the non-hover variant and adding a transparent overlay.

Co-authored-by: @johanmalm
2023-12-21 02:42:23 +01:00
John Lindgren
d207e97992 theme: use non-hover button variants as fallback
Some themes don't have hover variants for button pixmaps.
It looks better visually to use the non-hover variants as fallbacks
rather than the built-in 6x6 pixmaps.
2023-12-21 02:42:23 +01:00
Johan Malm
6a2a52c0ad seat: do not update active_view on layer-shell keyboard focus
...because layer-shell clients are not views and we want to be able to
use foreign-toplevel protocol on the active view even if a client such as
a panel has taken keyboard focus.

Written-by: @Consolatis

Fixes: #1336
2023-12-19 20:34:07 +00:00
Johan Malm
3a959cc74b s/focused_view/active_view/ 2023-12-19 20:34:07 +00:00
John Lindgren
447c67df62 output: do not call wlr_scene_output_layout_add_output() twice
Fixes an assertion failure that occurred if reconfiguring outputs after
an output had been disabled using wlopm --off.

Fixes: #1303
2023-12-19 01:03:08 +01:00
01micko
17cbfb7299 docs: add png|svg icon descriptions for themes, fix minor typo 2023-12-16 20:16:19 +00:00
Andrew J. Hesford
7eae03117e fix: fall-through to default cursor in cursor_get_from_edge()
When assertions are disabled, providing an unexpected input to
cursor_get_from_edge will cause the non-void function to terminate
without a return value. This may be effectively unreachable in practice.
However, returning a default cursor as a fall-through case will both
silence a compiler warning and prevent catastrophy should the function
ever be called with a permitted value.
2023-12-16 20:11:05 +00:00
Florian
ee0617ae23 CONTRIBUTING.md: update deprecated meson command 2023-12-16 18:37:17 +00:00
01micko
481b849152 labwc.pot: update for new OmniPresent menu
closes #1311
2023-12-12 07:28:11 +01:00
Tomi Ollila
c5852db5b5 docs/labwc-theme.5.scd: made text fit in max 80-column wide lines
For general consistency and better readability as source.
2023-12-11 21:58:35 +00:00
kyak
268191fce8
Add theme option to configure boxes from workspace OSD
This allows to configure width and height of "boxes" displayed in the
workspace OSD. A setting of `0` disables the boxes.
2023-12-11 10:41:33 +01:00
kyak
45e0dad3f1
src/output.c: fix strncpy warning
Fixes #1307
2023-12-11 10:33:06 +01:00
Johan Malm
5cc6a5b3e1 theme: partially revert c79b8ba
...so that svg and png icons only support the max_toggled_hover format.

There is no need to support max_hover_toggled because there are no
backward compatibility considerations as Openbox does not handle png and
svg icons.
2023-12-09 22:19:23 +01:00
Johan Malm
393f8fadab theme: use max_toggled_hover.xbm
...and treat max_hover_toggled.xbm as an alternative name supported for
compatibility reasons.

Use the following button filename schema: "BUTTON [TOGGLED] [STATE]"
with the words separted by underscore and with the following meaning:
  - BUTTON can be one of 'max', 'iconify', 'close', 'menu'
  - TOGGLED is either 'toggled' or nothing
  - STATE is 'hover' or nothing.

This is consistent with the openbox.org wiki and it is believed that this
is how the vast majority of extant openbox themes out there are written.

But please be aware that it is actually different to vanilla Openbox which
uses: "BUTTON [STATE] [TOGGLED]" following a commit in 2014 which broke
themes and led to some distros patching Openbox:
35e92e4c2a

Arch Linux and Debian patch Openbox to keep the old syntax (the one that
this commit aligns us with).
https://gitlab.archlinux.org/archlinux/packaging/packages/openbox/-/blob/main/debian-887908.patch?ref_type=heads
2023-12-09 22:19:23 +01:00
Johan Malm
aef39a238c theme: make button array definition easier to read
No functional change intended.
2023-12-09 22:19:23 +01:00
kyak
111b955b53
Implement key binds to control virtual outputs (#1287)
Add actions `VirtualOutputAdd` and `VirtualOutputRemove`
2023-12-09 09:01:11 +00:00
Andrew J. Hesford
e303281333 view: continue move-to-edge behavior to adjacent outputs 2023-12-09 08:50:32 +00:00
Johan Malm
59dc4b702a labwc-config(5): update <margin> description
...to include that it is a workaround which is usually not required.
2023-12-08 23:56:00 +01:00
Johan Malm
8d220536e0 Partially revert a bit more of ddc9047
...to enable re-size of nested labwc instances
2023-12-08 22:13:02 +00:00
Johan Malm
b05b5ba0cf Partially revert ddc9047
...to just call wlr_scene_output_commit() as was previously the case and
thus avoid freezing screens reported by a number of users.

Fixes: #1273
2023-12-08 22:13:02 +00:00
Consolatis
1149b31c7f src/ssd: refactor button hover and maximize toggle 2023-12-08 20:55:50 +00:00
Consolatis
02aa000b0d src/layers.c: move popups from the background layer to the top layer
Previously we would only do that for the bottom layer.

Fixes #1293

Reported-by: @spl237
2023-12-07 11:11:47 +01:00
Ludgie
b34d074063
feat: implement <font place="InactiveWindow"> (ref scope: 2.4.7) (#1292)
* feat: implement <font place="InactiveWindow"> (ref scope: 2.4.7)
* docs: add inactivewindow
2023-12-07 09:28:27 +01:00
Consolatis
d59b1d0966 src/layers.c: calculate usable_area before positioning clients
This ensures that the usable area is completely calculated
before non exclusive-zone clients are positioned / resized.

Fixes #1285
Reported-by: @spl237
2023-12-06 22:04:07 +00:00
Johan Malm
5bc58fc381 theme: fix icon bug
Do not carry over previous alt_filename for icons that don't have one.
2023-12-06 23:02:23 +01:00
Simon Long
c79b8ba8a7
Support hover icons in titlebar (#1280)
Allow both max_toggled_hover and max_hover_toggled names for icons
2023-12-06 20:33:26 +00:00
Consus
5d2f594626 Implement cursor-shape-v1 protocol
This protocol allows Wayland clients to request a buffer for a cursor
shape from a compositor.

Tested with foot.
2023-12-05 09:59:40 +01:00
Consus
3118886097 Fix a typo 2023-12-05 09:59:40 +01:00
Consus
3ca0d8a171 Unwrap #define value
In the name of constistency do not wrap the value in parenthesis if the
value is a single number.
2023-12-03 23:04:35 +01:00
Consus
e36c065c7b Implement fractional-scale-v1 protocol
This protocol allows Wayland clients to properly scale on outputs with
fractional scale factor.

Tested with foot and transmission-qt (Qt6).
2023-12-03 23:04:35 +01:00
nullableVoidPtr
bf326cc8f1 chase (dnd): refactor to use wlroot's scene_drag_icon 2023-12-03 18:24:26 +00:00
nullableVoidPtr
41891209fc chase: use wlroots tree node getters 2023-12-03 18:24:26 +00:00
Consolatis
e841d44b6f src/output.c: ensure we don't carry around a stale output pointer
Prevent carrying around the wlr_output->data pointer when
destroying an output. The set_gamma handler may be called
during the destruction of a wlr_output after our own
destroy handler has already been called. This patch resets
the wlr_output->data pointer in our destroy handler and
adds a check in the set_gamma handler to verify the output
is actually valid.

Fixes #1270

Reported-by: @Flrian
2023-12-02 15:27:00 +01:00
Johan Malm
fcf21e1464 chase: handle gamma-control-v1 set_gamma events
References:
- https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4046
- https://github.com/swaywm/sway/pull/7494/files

Fixes: #1262
2023-12-01 22:30:17 +00:00
Johan Malm
9c1c96f993 Add ResizeTo action
Fixes: #1261
2023-12-01 21:23:42 +00:00
Jens Peters
590ec0c77d keyboard: allow back by arrow-up or arrow-left in cycle view OSD
All non-modifier keys cycle forward which makes sense for
e.g. tab but is not very intuitive for arrow-up or arrow-left.
Handle those keys separately to provide a feel of navigation
by arrow keys in the cycle view OSD.
2023-11-30 22:39:01 +00:00
John Lindgren
738ae6c5d5 keyboard: break up handle_compositor_keybindings()
This function has grown quite large over time. Breaking out various
smaller functions makes the logic easier to follow.

No functional change intended, but there is a minor logical change:

- Due to factoring out match_keybinding(), each keypress can only
  match a single keybinding now. Previously, it was theoretically
  possible for a single keypress to map to multiple keysyms which could
  each match a different keybinding.
2023-11-30 20:42:16 +00:00
John Lindgren
83e67b32b6 xwayland: treat X11 panel views as if fixedPosition rule is set 2023-11-29 06:48:31 +00:00
John Lindgren
0a5255f062 output,xwayland: Add support for _NET_WM_STRUT_PARTIAL
Account for space taken up by XWayland panels (as indicated by the
_NET_WM_STRUT_PARTIAL property) in the usable_area calculation.

This makes it possible to use labwc in a "transitional" setup, where it
replaces the X11 window manager and compositor, but most other parts of
a existing X11 desktop environment can still be used via XWayland.

(Some remaining drawbacks of such a setup would be the lack of desktop
icons, and native Wayland clients not showing up in X11-based taskbars.)
2023-11-29 06:48:31 +00:00
Dima Krasner
a9076f2a01 use the GTK+ 3 notebook header color as the default active title color 2023-11-28 21:55:33 +00:00