diff --git a/docs/en_US/release_notes_9_16.rst b/docs/en_US/release_notes_9_16.rst index 8d891e268ba..d33387ce5a5 100644 --- a/docs/en_US/release_notes_9_16.rst +++ b/docs/en_US/release_notes_9_16.rst @@ -52,6 +52,7 @@ Bug fixes | `Issue #9766 `_ - Fixed an issue where a server's custom foreground colour was not applied to the object counts (children count) and column type labels shown in the object explorer. | `Issue #9828 `_ - Fix tool calls failing against OpenAI-compatible providers that emit empty/null name, arguments, or id fields in streaming continuation deltas. | `Issue #9854 `_ - Fix the JSON editor stripping trailing fractional zeros (e.g. 10.00) and rewriting large integers in jsonb values, which corrupted unmodified numbers when saving. + | `Issue #9864 `_ - Fixed a regression where the rectangular (block/column) text selection in the code editor stopped working; restored the default Alt+drag selection without re-introducing the crosshair cursor on Alt+F5 (#9570). | `Issue #9868 `_ - Warn before opening a very large JSON/JSONB value in the data grid cell editor, which could freeze pgAdmin, and let the user choose whether to proceed. | `Issue #9875 `_ - Fixed an issue where EXPLAIN and EXPLAIN ANALYZE failed to execute when blank lines separated clauses in the SQL query. | `Issue #9810 `_ - Use the ServerManager's passfile for the credential gate in connect() so the check matches the passfile actually used for the connection, and warn on conflicting passfile/passexec settings. @@ -65,4 +66,5 @@ Bug fixes | `Issue #9987 `_ - Fix "AttributeError: 'PgAdmin' object has no attribute 'login_manager'" crash when running setup.py user-management commands (add-user, update-user) from the CLI. | `Issue #9988 `_ - Provide an actionable error when 'openid' is in OAUTH2_SCOPE but OAUTH2_SERVER_METADATA_URL is not set, instead of a cryptic Authlib failure. | `Issue #10027 `_ - Fix the spurious "Crypt key is missing" error and logged traceback in the Query Tool new-connection endpoints after a backend restart, by surfacing it as the standard CRYPTKEY_MISSING response so the client recovers transparently. - | `Issue #10059 `_ - Fix the generated SQL for editing a SQL-language function/procedure whose body contains the word "return" (e.g. a RETURNING clause), which was wrongly treated as a SQL-standard body and produced a statement without the AS $BODY$ wrapper. + | `Issue #10029 `_ - Fixed a regression where the rectangular (block/column) text selection in the code editor stopped working; restored the default Alt+drag selection without re-introducing the crosshair cursor on Alt+F5 (#9570). + | `Issue #10059 `_ - Fix the generated SQL for editing a SQL-language function/procedure whose body contains the word "return" (e.g. a RETURNING clause), which was wrongly treated as a SQL-standard body and produced a statement without the AS $BODY$ wrapper. \ No newline at end of file diff --git a/web/pgadmin/static/js/components/ReactCodeMirror/components/Editor.jsx b/web/pgadmin/static/js/components/ReactCodeMirror/components/Editor.jsx index 935ba415e54..013aa3a03cf 100644 --- a/web/pgadmin/static/js/components/ReactCodeMirror/components/Editor.jsx +++ b/web/pgadmin/static/js/components/ReactCodeMirror/components/Editor.jsx @@ -25,7 +25,6 @@ import { drawSelection, dropCursor, rectangularSelection, - crosshairCursor, highlightActiveLine, EditorView, keymap, @@ -120,8 +119,12 @@ function insertTabWithUnit({ state, dispatch }) { const defaultExtensions = [ highlightSpecialChars(), dropCursor(), - rectangularSelection({ eventFilter: (e) => e.altKey && e.ctrlKey }), - crosshairCursor({ key: 'Control' }), + // rectangularSelection() restores the default Alt+drag block (column) + // selection. crosshairCursor is intentionally not used: it displayed a + // crosshair cursor whenever Alt was held - including for the Alt+F5 run + // shortcut (#9570). Omitting it keeps that fix while restoring the block + // selection that was lost. #9864 #10029 + rectangularSelection(), EditorState.allowMultipleSelections.of(true), indentOnInput(), syntaxHighlighting,