yoda-v2: color_picker Theme ref + context_menu/menu ungate winit

Two perf + correctness wins packaged as +yoda-v2 (version bump 0.1.0-yoda
-> 0.1.0-yoda.2):

1. color_picker::draw() — use the theme: &Theme parameter already passed
   to draw() instead of THEME.lock().unwrap().clone() which cloned the
   whole Theme on every redraw (src/widget/color_picker/mod.rs:622).
   Upstreamable.

2. Dropped feature = "winit" from 21 combined cfg attrs in context_menu.rs,
   menu/menu_bar.rs, menu/menu_inner.rs. These triple-gates (wayland +
   winit + surface-message) were silently disabling all context-menu and
   menubar popup creation in yoda apps (which don't activate the winit
   feature). Now the code only gates on wayland + surface-message, which
   is our actual runtime path. Matches the ungate we already did on
   surface/action.rs in Phase 3d.

cargo check --lib passes. All 4 consumer apps rebuilt + installed as
+yoda-v2 (backup of previous yoda binaries in .pre-yoda-v2 siblings).
This commit is contained in:
Lionel DARNIS 2026-04-23 18:43:52 +02:00
parent aec3eb615f
commit 8ab7b15807
5 changed files with 6 additions and 23 deletions

View file

@ -6,7 +6,6 @@
#[cfg(all(
feature = "wayland",
target_os = "linux",
feature = "winit",
feature = "surface-message"
))]
use crate::app::cosmic::{WINDOWING_SYSTEM, WindowingSystem};
@ -67,7 +66,6 @@ impl<Message: Clone + 'static> ContextMenu<'_, Message> {
#[cfg(all(
feature = "wayland",
target_os = "linux",
feature = "winit",
feature = "surface-message"
))]
#[allow(clippy::too_many_lines)]
@ -377,7 +375,6 @@ impl<Message: 'static + Clone> Widget<Message, crate::Theme, crate::Renderer>
#[cfg(all(
feature = "wayland",
target_os = "linux",
feature = "winit",
feature = "surface-message"
))]
if matches!(WINDOWING_SYSTEM.get(), Some(WindowingSystem::Wayland))
@ -421,7 +418,6 @@ impl<Message: 'static + Clone> Widget<Message, crate::Theme, crate::Renderer>
#[cfg(all(
feature = "wayland",
target_os = "linux",
feature = "winit",
feature = "surface-message"
))]
if matches!(WINDOWING_SYSTEM.get(), Some(WindowingSystem::Wayland)) {
@ -443,7 +439,6 @@ impl<Message: 'static + Clone> Widget<Message, crate::Theme, crate::Renderer>
#[cfg(all(
feature = "wayland",
target_os = "linux",
feature = "winit",
feature = "surface-message"
))]
if matches!(WINDOWING_SYSTEM.get(), Some(WindowingSystem::Wayland))
@ -482,7 +477,6 @@ impl<Message: 'static + Clone> Widget<Message, crate::Theme, crate::Renderer>
#[cfg(all(
feature = "wayland",
target_os = "linux",
feature = "winit",
feature = "surface-message"
))]
if matches!(WINDOWING_SYSTEM.get(), Some(WindowingSystem::Wayland))