Xopus 5.4

This release brings improved copy/paste functionality and fixes a number of bugs based on customer feedback.

Release date: August 17th 2016

Release notes

New functionality

Improved copy/paste - XML support on the clipboard
With this version, we put the XML structure on the system clipboard when copying in Xopus. This enables users to copy from one document to another without the loss of any information. In the old situation, sometimes information about the structure was lost since content was copied as HTML, and converted back into XML upon pasting into the editor. As not all structures that can be described in XML can be represented in HTML, this extra conversion caused the content to be pasted differently than expected.This issue was especially noticeable when copying tables in documents that use the CALS table model. For example, DITA documents use the CALS table model.

New documentation for implementers
With this release we've included a new Customization section in the product documentation (http://docs.sdl.com/XopusCustomization). This section is written with the intention to help you understand the possibilities and get started implementing Xopus. Previously, we just provided API and configuration references.

A new dialog when you are pasting large amounts of content
To improve the user experience, if it is expected to take more than 1.5 seconds to paste content, then we now show a dialog to inform the user that the application is busy pasting content.

New configuration for an equation-block element
The DITA 1.3 element equation-block is a specialization of the paragraph element (topic/p). Because of that, we applied the paragraph element configuration to equation-block elements automatically. In the case of the paragraph role, the inherited configuration for the equation-block caused the equation-block element to be inserted too often. With the improved default configuration that includes specific configuration for the equation-block element, this element will only be inserted when appropriate.

Copy/paste fixes

We are now able to track content removed by a Cut
The change tracking did not work sometimes when deleting selections within a single element. Specifically, when using Ctrl+X or the "Cut" button in the UI, the deletion was not tracked properly. These changes (deletions) are now tracked correctly, regardless whether using BackspaceDeleteCtrl+X or Cut. Note that changes to selections that cross element boundaries are not tracked yet.

Copying inline elements between documents works as expected
When copying between different documents, spaces around inline elements were unexpectedly removed. This is no longer the case, and content is pasted in the same way it was stored in the original document.

Copying placeholders between documents works as expected
When copying from one document to another, placeholders were pasted as text. Placeholders are now copied and pasted correctly, as-is, and the placeholders in the target document function properly.

Copying multiple paragraphs between document works as expected
There was a problem where the first two paragraphs were merged together when pasting multiple paragraphs from one document to another. This happened in particular with certain documents such as DITA documents. Now multiple paragraphs are copied and pasted correctly from document to document. This fix is a result of the new method where content is copied and pasted in the same way it was stored in the original document; that is, as XML.

Cut would not work the first time if the Clipboard extension was not installed
When the Clipboard extension was not installed, and you tried to use Cut for the first time, the editor would not put the removed content on the clipboard. Now cut content is put on the clipboard, you can used Cut regardless of whether the Clipboard extension is installed or not.

Cut content could not be pasted after undo
After pressing undo, the editor also incorrectly removed any content on the clipboard. For this reason, after an undo, users could not longer paste content in the document. This is fixed so that undo has no effect on the clipboard.

In Firefox, pasting an empty clipboard broke copy/paste functionality
When no text was available on the clipboard, for example after trying to paste an image from Word, attempting to paste broke copy/paste functionality in Firefox. This is now fixed and while there are still situations where there is no content that can be pasted, trying to do this will no longer break the copy/paste functionality.

In IE, pasting code into space-preserving elements resulted in extra unwanted empty lines
When pasting content such as code into a space-preserving element such as a code block, the editor pasted the content incorrectly by adding a blank line after every line break in the source document. This is no longer the case.

In Chrome, you could not paste HTML content properly into space-preserving elements
When copying content such as code from Word, HTML content used to be placed on the clipboard including tags. The HTML content included tags that were not visible in Word but did come from Word. When pasting this content into a space-preserving element such as a code block, the editor pasted the content incorrectly by including the extra unnecessary tags from Word. This problem is fixed in all browsers so that we only paste the text.

In Firefox, only the first line of code would be pasted properly into space-preserving elements
When pasting code from HTML or Word into Firefox, only the first line would be pasted into the code block (or other space-preserving element). The rest of the content would follow in paragraph elements. With this fix, if you were to paste when the cursor is in a code element at the moment of pasting, then all content will be pasted into that element.

In Document View, you could not cut text from an attribute
It was not possible to select text from an attribute in the main document view and cut it. For example in the XML view, or when the attribute is displayed in the main document display using XSLT. With this fix, you can now select and cut text from an attribute.

In IE, we placed tags from the Tags-on View on the clipboard
When copying content from the Tags-on View not only the content was put on the clipboard but also text from the tags as well. With this fix, we copy just the content and nothing extra.

Other fixes

Applying an inline element to an entire cell could break table structure
Before this fix, you could break the table structure when trying to paste an inline element into a specific table selection. The table structure was broken if you selected all the content in a cell, then pressed Shift+Right to expand the selection slightly over the cell boundary and then tried to paste an inline element into this selection. Inserting inline elements into all types of table selections now just changes the selected element only, and will not longer break the table.

Text deleted in Word could be pasted later
When the Word change tracking functionality was on and you started to copy, then all the content would be put on the clipboard including changes such as content deleted earlier in Word. Then you would be able to paste this already deleted content. With this fix, already deleted text cannot be pasted later.

When pasting or adding content with the API, we were preserving too many spaces
When content was pasted or added with the API, we used to keep too many unnecessary spaces. The criterion is that when using xml:space="preserve" then we intend to preserve the space. Otherwise spaces ought to be removed/cleaned up. In this bug the extra, "not preserved" spaces weren't removed. This fix ensures that extra spaces are cleaned upon when pasting and also when using the API to insert content.

Setting UI language did not change the language in one view nor in the API
When using the API method for setting the UI language, Editor.setUILanguage(), the language in most of the UI was updated, but not everywhere. In particular, the language was not set in two places: in the Tags-on view and in the API method for getting the language ( Editor.getUILanguage()). Setting the language with the API now has the same effect as changing the language manually using the UI, and all parts of the product are updated after changing the language.

Find/Replace was not able to search for the "]" and "\" characters
When searching a document for either of the "]" and "\" character, neither character could be found even when part of the document.

Tables with a merged cell copied from Excel could not be pasted
When a selection from an Excel table contained a merged cell, then this could not be pasted.

Crash after deleting a row in between merged cells
The editor crashed in certain circumstances when editing a table. This would occur for example, when a document contained a table with 5 rows, where row 1 and 2 had some cells merged together, and row 4 and 5 had some cells merged together. If you tried to delete the third row of such a table, the editor could crash. We've fixed this problem.

Crash on right-click when using a schema with xs:unique
When using a schema with xs:unique in the definition of an element, the editor could crash when using right click or the delete menu.

The editor could crash in combination with certain xslt stylesheets
When using an XSLT stylesheet that outputs html elements that are not related to a specific xml element (a script tag for example), this could crash the editor. This used to occur for example when using the spell checker and scrolling down in the document.

The XopusNode.getPrettyName method did not work as expected on attributes
In version 4.4. and later, the XopusNode.getPrettyName method did not work as expected when used on attributes. It would not return the "pretty" name specified in the configuration for an attribute, instead the name defined in the XML Schema. This has now been fixed, and this method returns the name defined in the configuration as expected.

Improved behavior when pasting content containing line breaks
Before, when you pasted content with line breaks, for example from Word, the line breaks were converted into line break elements, and then we added a space after the line break element. This is considered incorrect, and has been changed.

Known issues

The IMEEnabled configuration option is deprecated and you should remove it from your configuration
The approach using the miscellaneous IMEEnabled configuration option was abandoned from Xopus 5.2 and later, in favor of the IME overlay that can be shown by pressing Ctrl-E. If you still have the old IMEEnabled configuration set to true, that is<x:IMEEnabled>true</x:IMEEnabled>, this can cause problems in which the editor will freeze on certain editing actions. You should remove the IMEEnabled configuration option.

Inline elements are not pasted into codeblocks, or other space-preserving elements
Only the text, and not the accompanying inline elements are pasted when you are pasting into a codeblock or other space-preserving elements. For example if you were copying a code sample that includes an inline b (bold) element and then tried to paste this, the result is only the text of the code sample will be pasted. We do not paste the bold or other inline elements.

Supported browsers

  • Microsoft Internet Explorer 10
  • Microsoft Internet Explorer 11
  • Google Chrome
  • Mozilla Firefox