From a7ed3742fb4a93629c1f2809e70b0bc52152ea8a Mon Sep 17 00:00:00 2001 From: lashman Date: Fri, 27 Feb 2026 11:14:14 +0200 Subject: [PATCH] Fix GTK CSS warnings and popover cleanup on widget destroy Remove overflow property from .icon-rounded (not valid in GTK CSS). Remove prefers-reduced-motion media query (not supported by GTK CSS engine - reduced motion is handled by gtk-enable-animations setting). Unparent PopoverMenu on widget destroy to prevent finalization warnings when library view refreshes. --- data/resources/style.css | 12 +++--------- src/ui/library_view.rs | 6 ++++++ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/data/resources/style.css b/data/resources/style.css index 966e2ad..c44d14b 100644 --- a/data/resources/style.css +++ b/data/resources/style.css @@ -75,7 +75,6 @@ flowboxchild:focus-visible .card { /* Rounded icon clipping for list view */ .icon-rounded { border-radius: 8px; - overflow: hidden; } /* ===== WCAG AAA Focus Indicators ===== */ @@ -190,14 +189,9 @@ row:focus-visible { } /* ===== Reduced Motion (WCAG AAA 2.3.3) ===== */ -@media (prefers-reduced-motion: reduce) { - * { - transition-duration: 0 !important; - transition-delay: 0 !important; - animation-duration: 0 !important; - animation-delay: 0 !important; - } -} +/* Note: GTK CSS does not support prefers-reduced-motion or !important. + Reduced motion is handled by the GTK toolkit settings instead + (gtk-enable-animations). */ /* ===== Minimum Target Size (WCAG 2.5.8) ===== */ button.flat.circular, diff --git a/src/ui/library_view.rs b/src/ui/library_view.rs index 2110111..028538c 100644 --- a/src/ui/library_view.rs +++ b/src/ui/library_view.rs @@ -607,6 +607,12 @@ fn attach_context_menu(widget: &impl gtk::prelude::IsA, menu_model: popover.set_parent(widget.as_ref()); popover.set_has_arrow(false); + // Unparent the popover when the widget is destroyed to avoid GTK warnings + let popover_cleanup = popover.clone(); + widget.as_ref().connect_destroy(move |_| { + popover_cleanup.unparent(); + }); + // Right-click let click = gtk::GestureClick::new(); click.set_button(3);