Hi, I am Neethu Mariya Joy, an undergraduate pursuing BE in Computer Science at BITS Pilani.
I've attempted to fix https://redmine.postgresql.org/issues/2309. Codemirrors catches all the keyboard and mouse events when 'readOnly' option is set to 'noCursor' and does not allow copying. So, I've set 'readOnly' option to true. In order to hide the cursor, I've added a class 'hide-cursor-workaround' and applied css styles to hide the cursor. I'm attaching my patch as bug2309.diff below as per the contribution guidelines. Hope this helps. Thank you for your consideration! Sincerely, Neethu Mariya Joy GitHub <https://github.com/Roboneet> | Linkedin <https://www.linkedin.com/in/neethu-mariya-joy-653655128/>
diff --git a/web/pgadmin/tools/sqleditor/static/css/sqleditor.css b/web/pgadmin/tools/sqleditor/static/css/sqleditor.css index 1e29c3f..69381e5 100644 --- a/web/pgadmin/tools/sqleditor/static/css/sqleditor.css +++ b/web/pgadmin/tools/sqleditor/static/css/sqleditor.css @@ -601,4 +601,9 @@ input.editor-checkbox:focus { .ajs-body .warn-footer { font-size: 13px; line-height: 3em; +} + +/* workaround for codemirrors 'readOnly' option which is set to true instead of 'noCursor' */ +.hide-cursor-workaround .CodeMirror-cursors{ + display: none; } \ No newline at end of file diff --git a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js index 349c9a0..91dbe3a 100644 --- a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js +++ b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js @@ -2016,12 +2016,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();