Releases: CuarzoSoftware/Louvre
Louvre v2.18.1-1
Louvre (2.18.1-1)
Bug Fixes
- Clients were unable to reuse
wl_surfacesfor popups after the previous role was destroyed. - The
LPointer:enableNaturalScrollingX/Yoptions were behaving incorrectly.
Documentation
- Improved
LPointerScrollEventdocumentation.
-- Eduardo Hopperdietzel [email protected] Sun, 18 May 2025 22:16:50 -0400
Louvre v2.18.0-1
New Experimental Protocols
- lvr-invisible-region: Allows clients to define invisible regions within their surfaces, enabling the compositor to skip rendering invisible pixels. See LSurface::invisibleRegion().
- lvr-svg-path: Provides an efficient way for clients to share paths with the compositor for masking or other purposes.
- lvr-background-blur: Allows clients to request background blurring for surfaces, with optional clipping masks. See the LBackgroundBlur class - thanks to @Fox2Code for contributing ideas and @renhiyama for testing and feedback.
Blur example using Louvre and Kay, with a client made using Marco.
API Changes
- New LBackgroundBlur class to handle surface blur effects.
- New LRRect class for defining rounded rectangles.
- Added LCompositor::eventLoop() for quick access to the main
wl_event_loop. LCompositor::addFdListener()andLCompositor::removeFdListener()are now deprecated,wl_event_loop_add_fdshould be used instead.- Added
LPointerScrollEvent::LegacyWheelsource type for handling older and deprecated Libinput Wheel events. LPointerScrollEventnow includeshasX()andhasY()to indicate if values are provided for each axis.LPointerScrollEvent::axes120()has been replaced bydiscreteAxes().
Internal Changes
- Additional event queues have been removed, only the main
wl_displayevent queue is now used.
Bug Fixes
- Event queues are no longer disabled while the session is inactive. This caused queue overflows and froze the compositor when resuming the session - thanks @jgroboredo and @LeKinaSa for reporting and testing.
- Corrected wrong dispatching of discrete scroll events β thanks @jgroboredo and @LeKinaSa for reporting and testing.
- Fixed a bug in the default
LPointer::pointerButtonEvent()implementation that prevented transient toplevels from gaining keyboard focus.
Dependencies
- Updated the SRM dependency to version 0.12.1, which fixes issues related to hotplugging and screen flashing during session switching.
-- Eduardo Hopperdietzel [email protected] Sat, 10 May 2025 21:46:13 -0400
Louvre v2.17.0-1
Louvre (2.17.0-1)
API Additions
- New API for synchronous handling of POSIX signals. Credits: @jgroboredo and @LeKinaSa
Internal Changes
- Thread-specific data is now managed in a more centralized and clearer way.
-- Eduardo Hopperdietzel [email protected] Fri, 02 May 2025 11:47:18 -0400
Louvre v2.16.3-1
Louvre (2.16.3-1)
Bug Fixes
wlr-screencopy: Remove unnecessary check that was preventing the usage of multi-planar buffers.linux-dmabuf: Allow repeated format/modifier pairs across tranches of the same device if they have different flags.
Thanks @LeKinaSa and @jgroboredo for all your help throughout this never-ending journey! π€£
-- Eduardo Hopperdietzel [email protected] Thu, 17 Apr 2025 22:00:58 -0400
Louvre v2.16.2-1
Louvre (2.16.2-1)
Default Implementation Changes
LToplevelRole::startMoveRequest()andLToplevelRole::startResizeRequest()now ignore requests triggered by pointer button events if the button isn't currently pressed.
Minor API Changes
- Renamed
LPointer::pressedKeys()topressedButtons().
Bug Fixes
- Removed the assumption that toplevels will be unmapped after sending a
close()event. - louvre-views: Fixed a bug causing fullscreen animations to show black on some clients.
- louvre-views: Display fadeout animation of toplevels not only during the first unmap.
-- Eduardo Hopperdietzel [email protected] Sun, 30 Mar 2025 23:12:31 -0300
Louvre v2.16.1-1
Louvre (2.16.1-1)
Bug Fixes
- Resolved infinite loop occurring when one of multiple nested toplevel windows was unmapped.
- Removed extra semicolon in
LToplevelRole.hto prevent compiler warnings. - Thanks @SamuelEnzi!
-- Eduardo Hopperdietzel [email protected] Fri, 28 Mar 2025 08:05:08 -0300
Louvre v2.16.0-1
Louvre (2.16.0-1)
API Additions
- LOutput::oversamplingTexture(): Retrieves the intermediate texture used when a fractional scale is applied and oversampling is enabled.
- LPointer::focusChanged(): Triggered whenever the currently focused surface changes.
Minor API Changes
- Removed const keywords from
LNinePatchView::subViews()to enable modification of subviews. - Removed the center rect from
LNinePatchView::minSize()to allow setting smaller sizes.
Bug Fixes
- Prevented unnecessary
LKeyboard::focusChanged()calls when no actual change occurred.
Thanks again @LeKinaSa and @jgroboredo for testing it!
-- Eduardo Hopperdietzel [email protected] Sun, 09 Mar 2025 21:31:43 -0300
Louvre v2.15.0-1
Louvre (2.15.0-1)
API Additions
- LSeat::eventFilter(): Allows filtering and mutating input events before propagating them to the rest of the stack. Useful for implementing key remapping.
- LNinePatchView class: View for displaying textures using the nine-patch technique.
Documentation
- Fixed broken links.
Thanks to @jgroboredo and @LeKinaSa for all the feedback!
-- Eduardo Hopperdietzel [email protected] Sat, 01 Mar 2025 10:04:14 -0300
Louvre v2.14.1-1
Louvre (2.14.1-1)
Bug Fixes
Wayland Backend: Fixed occasional flickering when no damage is generated withinLOutput::paintGL().LOutput::repaintFilter: Updated internal implementation to reduce CPU consumption and allow cursor plane updates when using the atomic DRM API.
Dependencies
- Updated SRM dependency to version >= 0.12.0.
-- Eduardo Hopperdietzel [email protected] Sat, 08 Feb 2025 08:27:14 -0300
Louvre v2.14.0-1
Louvre (2.14.0-1)
API Additions
- LOutput::repaintFilter(): Intercepts LOutput::repaint() calls, making it easier to retain the last rendered frame. Thanks to @LeKinaSa and @jgroboredo for highlighting the need for this feature.
-- Eduardo Hopperdietzel [email protected] Mon, 27 Jan 2025 17:47:20 -0300
