diff --git a/web/pgadmin/static/css/codemirror.overrides.css b/web/pgadmin/static/css/codemirror.overrides.css index 178b038..1b5fcac 100644 --- a/web/pgadmin/static/css/codemirror.overrides.css +++ b/web/pgadmin/static/css/codemirror.overrides.css @@ -81,3 +81,8 @@ .sql_textarea .CodeMirror-scroll { z-index: 0; } + +/* workaround for codemirrors 'readOnly' option which is set to true instead of 'noCursor' */ +.hide-cursor-workaround .CodeMirror-cursors{ + display: none; +} diff --git a/web/pgadmin/static/js/backform.pgadmin.js b/web/pgadmin/static/js/backform.pgadmin.js index 5bbbf9f..aa811c5 100644 --- a/web/pgadmin/static/js/backform.pgadmin.js +++ b/web/pgadmin/static/js/backform.pgadmin.js @@ -2098,10 +2098,11 @@ define([ // Disable editor if (isDisabled) { - self.sqlCtrl.setOption('readOnly', 'nocursor'); + // set read only mode to true instead of 'nocursor', and hide cursor using a class so that copying is enabled + self.sqlCtrl.setOption('readOnly', true); var cm = self.sqlCtrl.getWrapperElement(); if (cm) { - cm.className += ' cm_disabled'; + cm.className += ' cm_disabled hide-cursor-workaround'; } } diff --git a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js index 56a901a..a84daa3 100644 --- a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js +++ b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js @@ -2019,12 +2019,12 @@ define('tools.querytool', [ } } else { - // Disable codemirror by setting cursor to nocursor and background to dark. + // Disable codemirror by setting readOnly option to true, background to dark, and cursor, hidden. self.init_events(); - self.gridView.query_tool_obj.setOption('readOnly', 'nocursor'); + self.gridView.query_tool_obj.setOption('readOnly', true); var cm = self.gridView.query_tool_obj.getWrapperElement(); if (cm) { - cm.className += ' bg-gray-1 opacity-5'; + cm.className += ' bg-gray-1 opacity-5 hide-cursor-workaround'; } self.disable_tool_buttons(true); self.execute_data_query();