diff --git a/addons/web_editor/static/lib/summernote/src/js/module/Editor.js b/addons/web_editor/static/lib/summernote/src/js/module/Editor.js
index df80f6c9e38ba2a4ba44c75f22d2005271f2e72d..40b7c95e98d2da886289c8e61c774b06e9a89993 100644
--- a/addons/web_editor/static/lib/summernote/src/js/module/Editor.js
+++ b/addons/web_editor/static/lib/summernote/src/js/module/Editor.js
@@ -680,9 +680,26 @@ define([
      * @return {String} [return.url=""]
      */
     this.getLinkInfo = function ($editable) {
-      // ODOO: modification
-      // this.focus($editable);
-      this.focus($editable.closest(':not(form)'));
+      // ODOO MODIFICATION START
+      var selection;
+      var currentSelection = null;
+      if (document.getSelection) {
+        selection = document.getSelection();
+        if (selection.getRangeAt && selection.rangeCount) {
+          currentSelection = selection.getRangeAt(0);
+        }
+      }
+      // ODOO MODIFICATION END
+
+      this.focus($editable);
+
+      // ODOO MODIFICATION START
+      if (currentSelection && document.getSelection) {
+        selection = document.getSelection();
+        selection.removeAllRanges();
+        selection.addRange(currentSelection);
+      }
+      // ODOO MODIFICATION END
 
       var rng = range.create().expand(dom.isAnchor);