Opened 10 years ago

Closed 10 years ago

#3739 closed Bug (fixed)

Bullet/Number list feature not working

Reported by: Damian Owned by: Wiktor Walc
Priority: Normal Milestone: CKEditor 3.0
Component: General Version:
Keywords: Confirmed IBM Review+ Cc:

Description

The bullet and number list features cause JS exceptions when invoked, causing them to not function properly and in some browsers makes them unusable.

To reproduce:

  1. Open Ajax sample
  2. In an empty document click bullet/list button

A bullet/number list might be started but an exception occurs in both IE and FF. In FF this error is caused:

R is not a function
[Break on this error] y.appendTo(x);w=[new d.range(u)];if(y.is...rn t;};function o(q,r){var s=l(q),t=q.$;

Pressing enter to continue the list causes the list to disappear and other unexpected behaviors.

An FCK bookmark is also left in the body when viewing source:

<span _fck_bookmark="1" id="cke_bm_82S" style="display: none;">&nbsp;</span>

Attachments (2)

3739.patch (1.2 KB) - added by Wiktor Walc 10 years ago.
ckreleaser.jar (1.1 MB) - added by Wiktor Walc 10 years ago.

Download all attachments as: .zip

Change History (8)

comment:1 Changed 10 years ago by Garry Yao

Keywords: Confirmed added
Owner: set to Garry Yao
Status: newassigned

comment:2 Changed 10 years ago by Garry Yao

It's a release build only problem, and I'm afraid something are messed up in the release code, because the error stack is shown as:

R()
focusManager()
resetDirty()
focus()
focus()
event()
event()
onclick

This stack is absolutely ridiculous for a 'Numbered List' command call.

comment:3 Changed 10 years ago by Wiktor Walc

Owner: changed from Garry Yao to Wiktor Walc
Status: assignednew

The problem was in invalid compression of this piece of code:

( mergeSibling = function( rtl ){

	var sibling = listNode[ rtl ? 'getPrevious' : 'getNext' ].call( listNode, true );
	if ( sibling && sibling.getName && sibling.getName() == listCommand.type )
	{
		sibling.remove();
		sibling.moveChildren( listNode );
	}
} )();

it was compressed by CKReleaser to:

G = function(I) {
	var J = y[I ? 'getPrevious' : 'getNext'].call(y, true);
	if (J && J.getName && J.getName() == H.type) {
		J.remove();
		J.moveChildren(y);
	}
}();

(surrounding brackets are missing).

Changed 10 years ago by Wiktor Walc

Attachment: 3739.patch added

Changed 10 years ago by Wiktor Walc

Attachment: ckreleaser.jar added

comment:4 Changed 10 years ago by Wiktor Walc

Keywords: Review? added

Copy ckreleaser.jar to ckeditor/_dev/releaser/ckreleaser directory and run ckeditor/_dev/releaser/release.bat to test the patch.

comment:5 Changed 10 years ago by Frederico Caldeira Knabben

Keywords: Review+ added; Review? removed

comment:6 Changed 10 years ago by Wiktor Walc

Resolution: fixed
Status: newclosed

Fixed with [3681] and [3682].

Note: See TracTickets for help on using tickets.
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy