aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/lib/scripts/media.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/scripts/media.js')
-rw-r--r--lib/scripts/media.js19
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);