diff --git a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
index ebc7077..615255c 100644
--- a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
+++ b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
@@ -268,34 +268,47 @@ define(
 
         self.render_history_grid();
 
-       // Listen on the panel closed event and notify user to save modifications.
-       _.each(window.top.pgAdmin.Browser.docker.findPanels('frm_datagrid'), function(p) {
-         if(p.isVisible()) {
-           p.on(wcDocker.EVENT.CLOSING, function() {
-             // Only if we can edit data then perform this check
-             var notify = false, msg;
-             if(self.handler.can_edit) {
-               var data_store = self.handler.data_store;
-               if(_.size(data_store.added) ||
-                   _.size(data_store.updated)) {
-                 msg = '{{ _('The data has been modified, but not saved. Are you sure you wish to discard the changes?') }}';
-                 notify = true; 
-               }
-             } else if(self.handler.is_query_tool) {
-               // We will check for modified sql content
-               var sql = self.handler.gridView.query_tool_obj.getValue();
-               sql = sql.replace(/\s+/g, ''); 
-               // If it is an empty query, do nothing.
-               if (sql.length > 0) {
-                 msg = '{{ _('The query has been modified, but not saved. Are you sure you wish to discard the changes?') }}';
-                 notify = true; 
-               } 
-             }
-             if(notify) {return self.user_confirmation(p, msg);}
-             return true;
-           });
-         }
-       });
+        // Listen on the panel closed event and notify user to save modifications.
+        _.each(window.top.pgAdmin.Browser.docker.findPanels('frm_datagrid'), function(p) {
+          if(p.isVisible()) {
+            p.on(wcDocker.EVENT.CLOSING, function() {
+              // Only if we can edit data then perform this check
+              var notify = false, msg;
+              if(self.handler.can_edit) {
+                var data_store = self.handler.data_store;
+                if(_.size(data_store.added) ||
+                    _.size(data_store.updated)) {
+                  msg = '{{ _('The data has been modified, but not saved. Are you sure you wish to discard the changes?') }}';
+                  notify = true;
+                }
+              } else if(self.handler.is_query_tool) {
+                // We will check for modified sql content
+                var sql = self.handler.gridView.query_tool_obj.getValue();
+                sql = sql.replace(/\s+/g, '');
+                // If it is an empty query, do nothing.
+                if (sql.length > 0) {
+                  msg = '{{ _('The query has been modified, but not saved. Are you sure you wish to discard the changes?') }}';
+                  notify = true;
+                }
+              }
+              if(notify) {return self.user_confirmation(p, msg);}
+              return true;
+            });
+            // Set focus on query tool of active panel
+            p.on(wcDocker.EVENT.GAIN_FOCUS, function() {
+              if (!$(p.$container).hasClass('wcPanelTabContentHidden')) {
+                setTimeout(function() {
+                  self.handler.gridView.query_tool_obj.focus();
+                }, 200);
+              }
+            });
+          }
+        });
+
+        // set focus on query tool once loaded
+        setTimeout(function() {
+          self.query_tool_obj.focus();
+        }, 500);
 
         /* We have override/register the hint function of CodeMirror
          * to provide our own hint logic.
@@ -401,8 +414,8 @@ define(
 
       /* To prompt user for unsaved changes */
       user_confirmation: function(panel, msg) {
-        // If there is anything to save then prompt user 
-          alertify.confirm('{{ _('Unsaved changes') }}', msg, 
+        // If there is anything to save then prompt user
+          alertify.confirm('{{ _('Unsaved changes') }}', msg,
             function() {
               // Do nothing as user do not want to save, just continue
               window.onbeforeunload = null;
