Add Pastellplate skin and polish desktop experience - #1
Conversation
|
Fixed the skin-control rendering regression. Root cause: native HTML range thumbs and visible fallback button labels were being drawn on top of the classic skin bitmaps, while the UI had no per-sprite-sheet feature classes. Controls now use the canonical Winamp 2.x/Webamp sprite coordinates with resource-aware fallbacks; Pastellplate now ships complete EQMAIN, TITLEBAR, SHUFREP, POSBAR, and PLEDIT sprite areas. Added DOM/parser regressions and verified the built macOS app with an additional installed skin. |
Replace transformed hit testing with layout zoom, move non-classic actions into the Tonelag menu, and add fixed-width skin selection plus safe deletion.
|
Fixed the follow-up double-size and skin-management issues. Root cause: the UI and native window were both scaled while the interactive layer used |
Use native webview zoom instead of CSS zoom, replace static drag regions with explicit titlebar dragging, and place title controls above the drag surface so their pointer targets stay aligned at 2x.
|
Fixed the remaining 2× mouse hit-testing issue in 03fc80e. Root cause was CSS Verified: |
The full-width title control layer intercepted blank titlebar clicks. Allow unused chrome across main, equalizer, and playlist to initiate native dragging while excluding every interactive control and list or menu region.
|
Improved classic-window dragging in c8e62b1. The full-width title control layer was intercepting blank titlebar clicks, so the main, EQ, and playlist panels now start native dragging from any unused chrome area while excluding buttons, inputs, sliders, labels, menus, and the playlist. The titlebar also shows a move cursor. Skin browser behavior is unchanged. Verified: 22 frontend tests, 44 Rust tests (3 ignored), and a fresh macOS app bundle. |
Imported skins forced the title control layer to relative positioning, separating visible controls from their hit targets. Keep classic coordinates absolute and route EQ and playback snapshots only to windows that consume them so the playlist stays stable.
|
Fixed imported-skin hit targets and playlist refreshes in 1928563.
Verified with the currently selected external skin, 23 frontend tests, 45 Rust tests (3 ignored), and a fresh macOS app bundle. |
What
Why
Pastellplate gives Tonelag a redistributable light alternative to Model 275. The accompanying desktop fixes address the interaction and skin-selection issues found during hands-on macOS testing.
Impact
The currently selected skin remains unchanged. Pastellplate is copied to the persistent skin store on startup and becomes available in the installed-skins list. The generated archive and artwork are MIT OR Apache-2.0.
Checks
pnpm checkcargo test --manifest-path src-tauri/Cargo.toml(41 passed, 3 ignored)pnpm tauri build --bundles appdefault-skin/pastellplate.wszinside Tonelag.app