// Setup number formats from config or default\r
t.numlist = ed.getParam("advlist_number_styles") || buildFormats("default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman");\r
t.bullist = ed.getParam("advlist_bullet_styles") || buildFormats("default,circle,disc,square");\r
+\r
+ if (tinymce.isIE && /MSIE [2-7]/.test(navigator.userAgent))\r
+ t.isIE7 = true;\r
},\r
\r
createControl: function(name, cm) {\r
- var t = this, btn, format;\r
+ var t = this, btn, format, editor = t.editor;\r
\r
if (name == 'numlist' || name == 'bullist') {\r
// Default to first item if it's a default item\r
\r
each(format.styles, function(value, name) {\r
// Format doesn't match\r
- if (t.editor.dom.getStyle(node, name) != value) {\r
+ if (editor.dom.getStyle(node, name) != value) {\r
state = false;\r
return false;\r
}\r
};\r
\r
function applyListFormat() {\r
- var list, ed = t.editor, dom = ed.dom, sel = ed.selection;\r
+ var list, dom = editor.dom, sel = editor.selection;\r
\r
// Check for existing list element\r
list = dom.getParent(sel.getNode(), 'ol,ul');\r
\r
// Switch/add list type if needed\r
if (!list || list.nodeName == (name == 'bullist' ? 'OL' : 'UL') || hasFormat(list, format))\r
- ed.execCommand(name == 'bullist' ? 'InsertUnorderedList' : 'InsertOrderedList');\r
+ editor.execCommand(name == 'bullist' ? 'InsertUnorderedList' : 'InsertOrderedList');\r
\r
// Append styles to new list element\r
if (format) {\r
list = dom.getParent(sel.getNode(), 'ol,ul');\r
-\r
if (list) {\r
dom.setStyles(list, format.styles);\r
- list.removeAttribute('_mce_style');\r
+ list.removeAttribute('data-mce-style');\r
}\r
}\r
+\r
+ editor.focus();\r
};\r
\r
btn = cm.createSplitButton(name, {\r
});\r
\r
btn.onRenderMenu.add(function(btn, menu) {\r
+ menu.onHideMenu.add(function() {\r
+ if (t.bookmark) {\r
+ editor.selection.moveToBookmark(t.bookmark);\r
+ t.bookmark = 0;\r
+ }\r
+ });\r
+\r
menu.onShowMenu.add(function() {\r
- var dom = t.editor.dom, list = dom.getParent(t.editor.selection.getNode(), 'ol,ul'), fmtList;\r
+ var dom = editor.dom, list = dom.getParent(editor.selection.getNode(), 'ol,ul'), fmtList;\r
\r
if (list || format) {\r
fmtList = t[name];\r
if (!list)\r
menu.items[format.id].setSelected(1);\r
}\r
+ \r
+ editor.focus();\r
+\r
+ // IE looses it's selection so store it away and restore it later\r
+ if (tinymce.isIE) {\r
+ t.bookmark = editor.selection.getBookmark(1);\r
+ }\r
});\r
\r
- menu.add({id : t.editor.dom.uniqueId(), title : 'advlist.types', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
+ menu.add({id : editor.dom.uniqueId(), title : 'advlist.types', 'class' : 'mceMenuItemTitle', titleItem: true}).setDisabled(1);\r
\r
each(t[name], function(item) {\r
- item.id = t.editor.dom.uniqueId();\r
+ // IE<8 doesn't support lower-greek, skip it\r
+ if (t.isIE7 && item.styles.listStyleType == 'lower-greek')\r
+ return;\r
+\r
+ item.id = editor.dom.uniqueId();\r
\r
menu.add({id : item.id, title : item.title, onclick : function() {\r
format = item;\r