Make the Text tool delete empty text layers when clicking away wth LMB (#2192)

Fix additions of layers when using left click

Fixes: https://discord.com/channels/731730685944922173/881073965047636018/1327376421034922045
This commit is contained in:
mTvare
2025-01-12 18:17:44 -08:00
committed by GitHub
parent 3582126ded
commit d692538736
3 changed files with 7 additions and 7 deletions
@@ -63,7 +63,7 @@ pub enum TextToolMessage {
Interact, Interact,
PointerMove { center: Key, lock_ratio: Key }, PointerMove { center: Key, lock_ratio: Key },
PointerOutsideViewport { center: Key, lock_ratio: Key }, PointerOutsideViewport { center: Key, lock_ratio: Key },
TextChange { new_text: String, is_right_click: bool }, TextChange { new_text: String, is_left_or_right_click: bool },
UpdateBounds { new_text: String }, UpdateBounds { new_text: String },
UpdateOptions(TextOptionsUpdate), UpdateOptions(TextOptionsUpdate),
} }
@@ -577,10 +577,10 @@ impl Fsm for TextToolFsmState {
responses.add(FrontendMessage::TriggerTextCommit); responses.add(FrontendMessage::TriggerTextCommit);
TextToolFsmState::Editing TextToolFsmState::Editing
} }
(TextToolFsmState::Editing, TextToolMessage::TextChange { new_text, is_right_click }) => { (TextToolFsmState::Editing, TextToolMessage::TextChange { new_text, is_left_or_right_click }) => {
tool_data.new_text = new_text; tool_data.new_text = new_text;
if !is_right_click { if !is_left_or_right_click {
tool_data.set_editing(false, font_cache, responses); tool_data.set_editing(false, font_cache, responses);
responses.add(NodeGraphMessage::SetInput { responses.add(NodeGraphMessage::SetInput {
+2 -2
View File
@@ -172,8 +172,8 @@ export function createInputManager(editor: Editor, dialog: DialogState, portfoli
} }
if (!inTextInput && !inContextMenu) { if (!inTextInput && !inContextMenu) {
const isRightClick = e.button === 2; const isLeftOrRightClick = e.button === 2 || e.button === 0;
if (textToolInteractiveInputElement) editor.handle.onChangeText(textInputCleanup(textToolInteractiveInputElement.innerText), isRightClick); if (textToolInteractiveInputElement) editor.handle.onChangeText(textInputCleanup(textToolInteractiveInputElement.innerText), isLeftOrRightClick);
else viewportPointerInteractionOngoing = isTargetingCanvas instanceof Element; else viewportPointerInteractionOngoing = isTargetingCanvas instanceof Element;
} }
+2 -2
View File
@@ -433,8 +433,8 @@ impl EditorHandle {
/// A text box was committed /// A text box was committed
#[wasm_bindgen(js_name = onChangeText)] #[wasm_bindgen(js_name = onChangeText)]
pub fn on_change_text(&self, new_text: String, is_right_click: bool) -> Result<(), JsValue> { pub fn on_change_text(&self, new_text: String, is_left_or_right_click: bool) -> Result<(), JsValue> {
let message = TextToolMessage::TextChange { new_text, is_right_click }; let message = TextToolMessage::TextChange { new_text, is_left_or_right_click };
self.dispatch(message); self.dispatch(message);
Ok(()) Ok(())