mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-14 19:26:51 -04:00
* Layers panel: Shift+Plus/Minus cycle blend modes; effects dropped on the Trash are deleted (#3102) - blend_keys.rs: Shift+Plus / Shift+Minus step to the next / previous blend mode, wrapping: the brush's mode with the Brush or Pencil (tools.setBrush), the Gradient's with the Gradient tool, otherwise the active layer's (layer.setProps; groups include Pass Through, the Background is left alone). One undo step per press. - panels.rs: an effect row dragged onto the footer's Delete button deletes that effect, the "Effects" row clears the whole style (layer.layerStyle.clear). - engine: layer.layerStyle.clear takes an optional "effect" index ("Delete Effect" step); bad indices and layers return Err. - scorecard UI-217-14 -> done (its wheel, footer drop and thumbnail checker parts were already on main via #1961, #965). Co-Authored-By: Claude Opus 5.5 <[email protected]> * Layers panel: Shift+Plus/Minus step the blend mode on a German layout too (#3102) On layouts with a key of its own for `+` (German, Italian, Spanish) Shift+`+` types `*`, which egui has no key for, so egui-winit reports the physical key: `]` on German. That matched Shift+] (Increase Brush Hardness) before the blend keys ever saw it. Shift+`-` types `_` and arrives as the physical `/`. shortcuts::layout_symbols now turns such a fallback press (Shift, the key equal to its physical key, not a digit, next to the text `*` or `_`) into `+` / `-` before any shortcut is dispatched. A US Shift+] still arrives as `}` and keeps raising the hardness; US Shift+8 (`*`) stays a digit for the opacity keys. Co-Authored-By: Claude Opus 5.5 <[email protected]> * Shortcuts: Ö / # are the brush keys on a German layout (#3109) Photoshop's German shortcuts step the brush size with Ö / # and the hardness with Shift+Ö / Shift+#, since [ and ] need AltGr there (and that press carries Alt on the Mac and Windows, which the shortcut match rejects). egui can't name ö or #, so they arrived as the physical ; and \ and matched nothing; Shift+# types ' and arrived as Quote. shortcuts::layout_symbols (from #3102) now reads a table of typed symbol and Shift: ö / Ö -> [, # / ' -> ], next to * -> + and _ -> -. It runs at the top of shortcuts::handle (unless a text field has focus), so Liquify's and the Magnetic Lasso's [ ] get the German keys too. Only presses whose key egui took from the physical key or from that very text change, and never digits. Co-Authored-By: Claude Opus 5.5 <[email protected]> * Brush keys: layout table plus bracket-position fallback for every layout (#3109) Co-Authored-By: Claude Opus 5.5 <[email protected]> * layout_keys: drop unused field, fmt Co-Authored-By: Claude Opus 5.5 <[email protected]> * Drop shortcuts::layout_symbols left by the merge: layout_keys::apply replaces it Co-Authored-By: Claude Opus 5.5 <[email protected]> --------- Co-authored-by: Claude Opus 5.5 <[email protected]> Co-authored-by: Brandon Thomas <[email protected]>