head 1.1; access; symbols; locks; strict; comment @ * @; 1.1 date 2026.07.20.17.42.40; author kikadf; state Exp; branches; next ; commitid Pn5M1tnFNrYFXpOG; desc @@ 1.1 log @ labwc: update to 0.20.1 * 0.20.1 This is a small bug fix release. Fixed - Handle titles with no visible characters, for example the left-to-right mark (‎) @@Consolatis [#3630] - Protect against SIGABRT when TTY switching in unusual circumstances by ensuring that xdg-shell windows have sensible width and height before trying to set size on configure. This protects against an edge case experienced when switching between labwc on one TTY and Xfce on XOrg on another TTY. @@johanmalm @@Tamaranch [#3617] * 0.20.0 This is the first release using wlroots-0.20 and therefore has an increased risk of teething issues. Many thanks to @@Consolatis for leading the effort to port across [#2956]. In terms of new features, the most noteworthy ones include: (i) the frequently requested show-desktop action; (ii) initial toplevel capture support to screenshot specific windows; (iii) menu accelerators/shortcuts; and (iv) HDR10 support when running with the Vulkan renderer option. The eagle-eyed amongst you will have noticed the sudden jump from labwc 0.9.7 to 0.20.0. The reason for this is to align the minor number to that of the wlroots version against which the compositor is linked. The 0.9.x series has turned into a maintenance branch named v0.9 with bug fixes only, for anyone preferring to build with wlroots-0.19. Note to maintainers: libinput >=1.26 is required in support of tablet tool pressure range configuration. wlroots >=0.20.1 is required to avoid some bugs that we do not want labwc to ship with. For details, see: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5325 Added - Partially support toplevel-capture. Note that the following are not yet implemented: (i) XWayland child windows; (ii) XWayland unmanaged windows (e.g. popups); (iii) xdg child window positioning; (iv) xdg subsurfaces; and (v) xdg popup positioning. [#2968] @@Consolatis - Add command line option -t|--title to set the labwc window title when running nested [#3577] @@mdsib - Add support for HDR10 output @@kode54 @@Consolatis [#3424] - Include wlroots version in --version string @@Consolatis [#3567] [#3581] - Implement menu accelerators (one-letter mnemonics to quickly select/exec items from the current menu) @@ch3rn1ka [#3505] - Add Next/PreviousWindowImmediate actions @@elviosak @@johanmalm [#3547] - Add labnag options --details-border-color and --details-margin @@st0rm-shad0w [#3527] - Add config option to defer raise-on-focus by a small amount when raiseOnFocus is enabled @@joske [#3513] - Install labwc-session.target systemd user unit when the systemd dependency is available @@joske [#3534] - Add onbutton to config option . Also add associated option . @@diniamo [#3540] - Add overrideInhibition option to [#3507] @@drougas - Add action ToggleShowDesktop to hide/unhide windows, and default keybind Super-d to trigger this action [#3500] [#3595] @@johanmalm - Add config option so that privileged protocols can be restricted [#3493] @@xi - Add action DebugToggleKeyStateIndicator to show a key-state on-screen display (OSD) for debugging. [#3499] @@johanmalm @@tokyo4j - Add support for color-management-v1 and color-representation-manager-v1 protocols [#3469] @@ManuLinares - Add configuration option to enable tablet tool pressure range libinput settings [#2916] @@jp7677 - Add wl_fixes interface [#2956] @@kode54 Fixed - Enable labnag long option --exclusive-zone [#3576] @@st0rm-shad0w - Position chromium popup correctly when a window is maximized on a multi- output setup @@elviosak [#3547] - Run session activation environment update synchronously to avoid a race condition with the autostart script [#3543] @@joske - Allow interactive resize on fully maximized windows so that a resize initiated by modifier plus right-mouse-button-drag is not ignored [#3525] @@bjorn - Gracefully handle missing XWayland packages, so that a labwc compositor which has been built with XWayland support (which is optional) can be run even if XWayland is not installed. [#3401] @@quite - Rework how XWayland window initial geometry is set to ensure that the natural geometry does not exceed the usable output area when handling initial maximize/fullscreen requests. [#3439] @@jlindgren90. - For XWayland windows, sync always-on-top state back to X.Org Server. This makes wmctrl -b toggle,above work. [#3446] @@jlindgren90 - Fix missing title and icon with XWayland client override-redirect toggle. There are no known issues with clients, so this is purely for preventative purposes. [#3450] @@jlindgren90 - Update titlebar title when set to empty and fix an associated issue causing the title to be misplaced outside of the titlebar when the window is resized. [#3443] @@tokyo4j - When running nested, exit compositor when last output is destroyed because in this situation, each output corresponds to a window in the parent compositor and, unlike DRM outputs, these cannot be reconnected after being destroyed. [#3440] @@marler8997 - Allow policy-based placement to apply when an initially-maximized/fullscreen view is restored to floating geometry. [#3387] [#3502] @@jlindgren90 Changed - Change the default keybinds for XF86Audio{LowerVolume,RaiseVolume,Mute} to use pactl instead of amixer [#3484] @@DanielRRRR - Drop cosmic-workspace protocol [#3031] @@tokyo4j @ text @$NetBSD$ * Fix ctype usage --- src/common/string-helpers.c.orig 2026-07-20 14:31:10.046865838 +0000 +++ src/common/string-helpers.c @@@@ -28,7 +28,7 @@@@ rtrim(char *s) return; } char *end = s + len - 1; - while (end >= s && isspace(*end)) { + while (end >= s && isspace((unsigned char)*end)) { end--; } *(end + 1) = '\0'; @@@@ -37,7 +37,7 @@@@ rtrim(char *s) char * string_strip(char *s) { - while (isspace(*s)) { + while (isspace((unsigned char)*s)) { s++; } rtrim(s); @@@@ -200,7 +200,7 @@@@ bool str_space_only(const char *s) { for (; *s; s++) { - if (!isspace(*s)) { + if (!isspace((unsigned char)*s)) { return false; } } @