diff --git a/src/PanelUI.js b/src/PanelUI.js index d3c62534d..0b1ac6d91 100644 --- a/src/PanelUI.js +++ b/src/PanelUI.js @@ -142,6 +142,10 @@ export default function PanelUI({ } } + function is_xml_selected() { + return lang === lang_xml; + } + const dropdown_selected_signal = listenProperty( dropdown_ui_lang, "selected", @@ -194,6 +198,7 @@ export default function PanelUI({ panel.start = start; panel.stop = stop; panel.update = update; + panel.is_xml_selected = is_xml_selected; panel.panel = panel_ui; return panel; diff --git a/src/window.js b/src/window.js index 6a7a40610..1e05a8728 100644 --- a/src/window.js +++ b/src/window.js @@ -197,12 +197,14 @@ export default function Window({ application, session }) { return; } + if (buffer.text === code) { + return; + } + const { cursor_position } = buffer; code_view.replaceText(code, false); buffer.place_cursor(buffer.get_iter_at_offset(cursor_position)); - - return code; } function formatRustCode(text) { @@ -260,9 +262,11 @@ export default function Window({ application, session }) { } if (panel_ui.panel.visible) { - await format(langs.xml.document.code_view, (text) => { - return xml.format(text, 2); - }); + if (panel_ui.is_xml_selected()) { + await format(langs.xml.document.code_view, (text) => { + return xml.format(text, 2); + }); + } } }