Skip to content

Commit 9759a5e

Browse files
committed
Merge pull request jhollingworth#181 from AGoodId/ie-insert-link
Keep track of caret position when showing modal dialog box.
2 parents 6036a29 + c9dafce commit 9759a5e

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/bootstrap-wysihtml5.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,11 +226,16 @@
226226
var urlInput = insertImageModal.find('.bootstrap-wysihtml5-insert-image-url');
227227
var insertButton = insertImageModal.find('a.btn-primary');
228228
var initialValue = urlInput.val();
229+
var caretBookmark;
229230

230231
var insertImage = function() {
231232
var url = urlInput.val();
232233
urlInput.val(initialValue);
233234
self.editor.currentView.element.focus();
235+
if (caretBookmark) {
236+
self.editor.composer.selection.setBookmark(caretBookmark);
237+
caretBookmark = null;
238+
}
234239
self.editor.composer.commands.exec("insertImage", url);
235240
};
236241

@@ -255,6 +260,8 @@
255260
var activeButton = $(this).hasClass("wysihtml5-command-active");
256261

257262
if (!activeButton) {
263+
self.editor.currentView.element.focus(false);
264+
caretBookmark = self.editor.composer.selection.getBookmark();
258265
insertImageModal.modal('show');
259266
insertImageModal.on('click.dismiss.modal', '[data-dismiss="modal"]', function(e) {
260267
e.stopPropagation();
@@ -273,11 +280,16 @@
273280
var urlInput = insertLinkModal.find('.bootstrap-wysihtml5-insert-link-url');
274281
var insertButton = insertLinkModal.find('a.btn-primary');
275282
var initialValue = urlInput.val();
283+
var caretBookmark;
276284

277285
var insertLink = function() {
278286
var url = urlInput.val();
279287
urlInput.val(initialValue);
280288
self.editor.currentView.element.focus();
289+
if (caretBookmark) {
290+
self.editor.composer.selection.setBookmark(caretBookmark);
291+
caretBookmark = null;
292+
}
281293
self.editor.composer.commands.exec("createLink", {
282294
href: url,
283295
target: "_blank",
@@ -307,6 +319,8 @@
307319
var activeButton = $(this).hasClass("wysihtml5-command-active");
308320

309321
if (!activeButton) {
322+
self.editor.currentView.element.focus(false);
323+
caretBookmark = self.editor.composer.selection.getBookmark();
310324
insertLinkModal.appendTo('body').modal('show');
311325
insertLinkModal.on('click.dismiss.modal', '[data-dismiss="modal"]', function(e) {
312326
e.stopPropagation();

0 commit comments

Comments
 (0)