Index: typo3/sysext/rtehtmlarea/htmlarea/htmlarea-gecko.js
===================================================================
--- typo3/sysext/rtehtmlarea/htmlarea/htmlarea-gecko.js (révision 10066)
+++ typo3/sysext/rtehtmlarea/htmlarea/htmlarea-gecko.js (copie de travail)
@@ -211,8 +211,32 @@
}
return type;
};
-
/*
+ * Return the ranges of the selection
+ */
+HTMLArea.Editor.prototype.getSelectionRanges = function(selection) {
+ if (!selection) {
+ var selection = this._getSelection();
+ }
+ var ranges = [];
+ for (var i = selection.rangeCount; --i >= 0;) {
+ ranges.push(selection.getRangeAt(i));
+ }
+ return ranges;
+};
+/*
+ * Add ranges to the selection
+ */
+HTMLArea.Editor.prototype.setSelectionRanges = function(ranges, selection) {
+ if (!selection) {
+ var selection = this._getSelection();
+ }
+ this.emptySelection(selection);
+ for (var i = ranges.length; --i >= 0;) {
+ this.addRangeToSelection(selection, ranges[i]);
+ }
+};
+/*
* Retrieves the selected element (if any), just in the case that a single element (object like and image or a table) is selected.
*/
HTMLArea.Editor.prototype.getSelectedElement = function(selection) {
Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/ContextMenu/context-menu.js
===================================================================
--- typo3/sysext/rtehtmlarea/htmlarea/plugins/ContextMenu/context-menu.js (révision 10066)
+++ typo3/sysext/rtehtmlarea/htmlarea/plugins/ContextMenu/context-menu.js (copie de travail)
@@ -185,6 +185,9 @@
*/
showMenu: function (event, target) {
this.showContextItems(target);
+ if (!Ext.isIE) {
+ this.ranges = this.editor.getSelectionRanges();
+ }
var iframeEl = this.editor.iframe.getEl();
this.menu.showAt([Ext.get(target).getX() + iframeEl.getX(), Ext.get(target).getY() + iframeEl.getY()]);
},
@@ -240,6 +243,9 @@
* Handler invoked when a menu item is clicked on
*/
onItemClick: function (item, event) {
+ if (!Ext.isIE) {
+ this.editor.setSelectionRanges(this.ranges);
+ }
var button = this.getButton(item.getItemId());
if (button) {
button.fireEvent('HTMLAreaEventContextMenu', button, event);