diff options
Diffstat (limited to 'lib/scripts/media.js')
-rw-r--r-- | lib/scripts/media.js | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 70807bda2..1e9d0328f 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -941,15 +941,26 @@ var dw_mediamanager = { function dw_mediamanager_item_select(edid, mediaid, opts, align, keepopen) { var alignleft = ''; var alignright = ''; + + // Get the 2 characters after the cursor to check if we're currently inside an image tag + var cursorInImageTag = false; + var textArea = jQuery('#' + edid)[0]; + var selection = DWgetSelection(textArea); + selection.end = selection.end + 2; + var charsAfterCursor = selection.getText(); + if (charsAfterCursor === '}}') { + cursorInImageTag = true; + } + if (align !== '1') { alignleft = align === '2' ? '' : ' '; alignright = align === '4' ? '' : ' '; } - if (keepopen) { - insertTags(edid, '{{' + alignleft + mediaid + opts + alignright + '|}}', '', ''); - } else { - insertTags(edid, '{{' + alignleft + mediaid + opts + alignright + '|', '}}', ''); + if (keepopen && cursorInImageTag) { + selection.start = selection.start + 2; + DWsetSelection(selection); } + insertTags(edid, '{{' + alignleft + mediaid + opts + alignright + '|', '}}', ''); } jQuery(dw_mediamanager.init); |