Index: plugins/tags/_admin.php
===================================================================
--- plugins/tags/_admin.php	(revision 1518)
+++ plugins/tags/_admin.php	(revision 1609)
@@ -321,8 +321,7 @@
 		
 		echo
-		'<fieldset><legend>'.__('Tags').'</legend>'.
 		'<p><label for="user_tag_list_format">'.__('Tags list format:').'</label> '.
 		form::combo('user_tag_list_format',$combo,$value).
-		'</p></fieldset>';
+		'</p>';
 	}
 	
Index: plugins/themeEditor/_admin.php
===================================================================
--- plugins/themeEditor/_admin.php	(revision 1454)
+++ plugins/themeEditor/_admin.php	(revision 1609)
@@ -50,13 +50,9 @@
 		$core->auth->user_prefs->addWorkspace('interface');
 
-		echo
-		'<fieldset><legend>'.__('Theme Editor').'</legend>'.
-		
+		echo		
 		'<p><label for="colorsyntax" class="classic">'.
 		form::checkbox('colorsyntax',1,$core->auth->user_prefs->interface->colorsyntax).'</label>'.
-		__('Syntax color').
-		'<br class="clear" />'. //Opera sucks
-		'</p>'.
-		'</fieldset>';
+		__('Syntax color for theme editor').
+		'</p>';
 	}
 }
Index: plugins/widgets/_default_widgets.php
===================================================================
--- plugins/widgets/_default_widgets.php	(revision 1179)
+++ plugins/widgets/_default_widgets.php	(revision 1610)
@@ -47,7 +47,8 @@
 $__widgets->langs->setting('class',__('CSS class:'),'');
 
-$__widgets->create('categories',__('Categories list'),array('defaultWidgets','categories'),null,'List of categories');
+$__widgets->create('categories',__('Categories'),array('defaultWidgets','categories'),null,'List of categories');
 $__widgets->categories->setting('title',__('Title:'),__('Categories'));
 $__widgets->categories->setting('postcount',__('With entries counts'),0,'check');
+$__widgets->categories->setting('with_empty',__('Include empty categories'),0,'check');
 $__widgets->categories->setting('homeonly',__('Display on:'),0,'combo',
 	array(__('All pages') => 0, __('Home page only') => 1, __('Except on home page') => 2));
Index: plugins/widgets/_widgets_functions.php
===================================================================
--- plugins/widgets/_widgets_functions.php	(revision 1280)
+++ plugins/widgets/_widgets_functions.php	(revision 1610)
@@ -77,5 +77,5 @@
 		}
 
-		$rs = $core->blog->getCategories(array('post_type'=>'post'));
+		$rs = $core->blog->getCategories(array('post_type'=>'post','without_empty'=> !$w->with_empty));
 		if ($rs->isEmpty()) {
 			return;
Index: plugins/widgets/dragdrop.js
===================================================================
--- plugins/widgets/dragdrop.js	(revision 1657)
+++ plugins/widgets/dragdrop.js	(revision 1659)
@@ -1,2 +1,15 @@
+/*
+# -- BEGIN LICENSE BLOCK ---------------------------------------
+#
+# This file is part of Dotclear 2.
+#
+# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
+# Licensed under the GPL version 2.0 license.
+# See LICENSE file or
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+#
+# -- END LICENSE BLOCK -----------------------------------------
+*/
+
 $(function() {
 	
@@ -72,5 +85,5 @@
 	
 	// add
-	$( "#widgets > li" ).draggable({
+	$( "#widgets-ref > li" ).draggable({
 		tolerance: "move",
 		cursor: "move",
@@ -79,5 +92,5 @@
 		revert: "invalid",
 		start: function( event, ui ) {
-			ui.helper.css({'width': $('#widgets > li').css('width')});
+			ui.helper.css({'width': $('#widgets-ref > li').css('width')});
 		}
 	});
Index: plugins/widgets/index.php
===================================================================
--- plugins/widgets/index.php	(revision 1657)
+++ plugins/widgets/index.php	(revision 1659)
@@ -195,5 +195,5 @@
 '<h3>'.__('Available widgets').'</h3>'.
 '<p>'.__('Move widgets from this list to one of the sidebars.').'</p>'.
-'<ul id="widgets">';
+'<ul id="widgets-ref">';
 
 $j = 0;
@@ -201,7 +201,7 @@
 	echo
 	'<li>'.form::hidden(array('w[void][0][id]'),html::escapeHTML($w->id())).
-	'<p class="widget-name">'.form::field(array('w[void][0][order]'),2,3,0,'hidden-if-drag','',0,'title="'.__('order').'"').' '.$w->name().
+	'<p class="widget-name">'.form::field(array('w[void][0][order]'),2,3,0,'hide','',0,'title="'.__('order').'"').' '.$w->name().
 	($w->desc() != '' ? ' <span class="form-note">'.__($w->desc()).'</span>' : '').'</p>'.
-	'<p class="remove-if-drag"><label class="classic">'.__('Append to:').'</label> '.
+	'<p class="manual-move remove-if-drag"><label class="classic">'.__('Append to:').'</label> '.
 	form::combo(array('addw['.$w->id().']'),$append_combo).'</p>'.
 	'<div class="widgetSettings hidden-if-drag">'.$w->formSettings('w[void][0]',$j).'</div>'.
Index: plugins/widgets/style.css
===================================================================
--- plugins/widgets/style.css	(revision 1657)
+++ plugins/widgets/style.css	(revision 1659)
@@ -1,33 +1,17 @@
-#listWidgets {
-	float: left;
-	width: 46%;
-	background: #eee;
-	padding: 1.5em 1% 0; 
-	margin: 0 1% 0 0;
-}
-#widgets > li {
-	border: 1px solid #ccc;
-	margin-bottom: .5em;
-	background: #fff;
-	min-height: 3em;
-	padding: 0 0 4px 0;
-	list-style: none;
-}
-#widgets .widget-name, #widgets .js-remove {
-	background: #fff;
-	margin-bottom: 0;
-	padding: 4px 8px; 
-}
-#widgets .js-hide {
-	display: none;
-}
-#widgets .widget-name {
-	min-height: 3em;
-	padding-bottom: 0;
-}
-#listWidgets h3 {
-	color: #333;
-}
+/*
+# -- BEGIN LICENSE BLOCK ---------------------------------------
+#
+# This file is part of Dotclear 2.
+#
+# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
+# Licensed under the GPL version 2.0 license.
+# See LICENSE file or
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+#
+# -- END LICENSE BLOCK -----------------------------------------
+*/
 
+
+/* ------------------------------------------------------------- side bars */
 #sidebarsWidgets {
 	float: left;
@@ -35,7 +19,4 @@
 	margin: 0 0 0 1%;
 	padding: 0 1%;
-}
-#sidebarsControl {
-	clear: left;
 }
 .widgets.fieldset {
@@ -47,5 +28,5 @@
     border-bottom: 1px dashed #FF0000;
 }
-#widgets, #dndnav, #dndextra, #dndcustom {
+#dndnav, #dndextra, #dndcustom {
 	padding: 1em 0;
 	margin: 1em 0 0;
@@ -60,20 +41,8 @@
 	list-style: none;
 }
-
-.sortable-delete > li {
-	margin-bottom: 3px;
-}
-.sortable-delete li.sortable-delete-placeholder {
-    border: 0 none;
-    color: #666666;
-    font-size: 1rem;
-    font-weight: normal;
-    text-align: center;
-}
-
-#dndnav li.ui-sortable-placeholder,
-#dndextra li.ui-sortable-placeholder,
-#dndcustom li.ui-sortable-placeholder,
-.sortable-delete li.ui-sortable-placeholder {
+#dndnav > li.ui-sortable-placeholder,
+#dndextra > li.ui-sortable-placeholder,
+#dndcustom > li.ui-sortable-placeholder,
+.sortable-delete > li.ui-sortable-placeholder {
 	border: 1px dashed #999;
 	height: 2rem;
@@ -81,40 +50,7 @@
 }
 
-#dndnav .form-note, #dndextra .form-note, #dndcustom .form-note {
+.sortable-delete {
 	display: none;
 }
-
-
-.widget-name {
-	background: #eef;
-	color: #000;
-	padding: 4px 6px;
-	margin: 0;
-	font-weight: bold;
-}
-.widget-name span {
-	display: block;
-	font-style: normal;
-	font-size: 1.1rem;
-}
-.widget-name img {
-	cursor: pointer;
-	margin-bottom: -1px;
-}
-.removeWidget {
-	padding: 8px 6px;
-	margin: 0;
-}
-
-.widgetSettings {
-	border-top: 1px solid #ddd;
-	padding: 8px 6px;
-	background: #f5f5f5;
-}
-
-.sortable-delete {
-    display: none;
-}
-
 .sortable-delete.if-drag {
     border: 1px solid #999999;
@@ -129,15 +65,95 @@
     display: block;
 }
+.sortable-delete > li {
+	margin-bottom: 3px;
+}
+.sortable-delete > li.sortable-delete-placeholder {
+    border: 0 none;
+    color: #FF0000;
+    font-size: 1rem;
+    font-weight: normal;
+    text-align: center;
+}
 
-#widgets .widgetSettings {
+.widget-name {
+	background: #eef;
+	color: #000;
+	padding: 4px 6px;
+	margin: 0;
+	font-weight: bold;
+}
+.widget-name img {
+	cursor: pointer;
+	margin-bottom: -1px;
+}
+.widget-name a.aexpand,
+.widget-name a.aexpand:link,
+.widget-name a.aexpand:visited {
+    border: 0 none;
+    color: #000000;
+    text-decoration: none;
+}
+#dndnav .form-note,
+#dndextra .form-note,
+#dndcustom .form-note {
 	display: none;
 }
-.hideControls .widgetSettings {
-	display: none;
+.removeWidget {
+	padding: 8px 6px;
+	margin: 0;
 }
-.hideControl {
+.widgetSettings {
+	border-top: 1px solid #ddd;
+	padding: 8px 6px;
+	background: #f5f5f5;
+}
+
+#sidebarsControl {
+	clear: left;
+}
+
+/* ------------------------------------------------------------- list Widgets ref */
+#listWidgets {
+	float: left;
+	width: 46%;
+	background: #eee;
+	padding: 1.5em 1% 0; 
+	margin: 0 1% 0 0;
+}
+#listWidgets h3 {
+	color: #333;
+}
+
+#widgets-ref {
+	padding: 1em 0;
+	margin: 1em 0 0;
+}
+#widgets-ref > li {
+	border: 1px solid #ccc;
+	margin-bottom: .5em;
+	background: #fff;
+	min-height: 3em;
+	padding: 0 0 4px 0;
+	list-style: none;
+}
+#widgets-ref .widget-name,
+#widgets-ref .manual-move {
+	background: #fff;
+	margin-bottom: 0;
+	padding: 4px 8px 0;
+}
+#widgets-ref .widget-name {
+	min-height: 3em;
+}
+#widgets-ref .widget-name .form-note {
+	display: block;
+	font-style: normal;
+	font-size: 1.1rem;
+}
+#widgets-ref .widgetSettings {
 	display: none;
 }
 
+/* ------------------------------------------------------------- help */
 #widgets-tpl dt {
 	margin: 1em 0 0 0;
Index: plugins/widgets/widgets.js
===================================================================
--- plugins/widgets/widgets.js	(revision 1651)
+++ plugins/widgets/widgets.js	(revision 1659)
@@ -1,4 +1,21 @@
+/*
+# -- BEGIN LICENSE BLOCK ---------------------------------------
+#
+# This file is part of Dotclear 2.
+#
+# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
+# Licensed under the GPL version 2.0 license.
+# See LICENSE file or
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+#
+# -- END LICENSE BLOCK -----------------------------------------
+*/
+
 dotclear.postExpander = function(line) {
 	var title = $(line).find('.widget-name');
+	title.find('.form-note').remove();
+	order = title.find('input[name*=order]');
+	link = $('<a href="#" alt="expand" class="aexpand"/>').append(title.text());
+	title.empty().append(order).append(link);
 	
 	var img = document.createElement('img');
@@ -7,6 +24,9 @@
 	img.className = 'expand';
 	$(img).css('cursor','pointer');
-	img.line = line;
-	img.onclick = function() { dotclear.viewPostContent(this.line); };
+	img.onclick = function() { dotclear.viewPostContent($(this).parents('li')); };
+	link.click(function(e) {
+		e.preventDefault();
+		dotclear.viewPostContent($(this).parents('li'));
+	});
 	
 	title.prepend(img);
@@ -15,13 +35,13 @@
 dotclear.viewPostContent = function(line,action) {
 	var action = action || 'toogle';
-	var img = $(line).find('.expand');
+	var img = line.find('.expand');
 	var isopen = img.attr('alt') == dotclear.img_plus_alt;
 	
 	if( action == 'close' || ( action == 'toogle' && !isopen ) ) {
-		$(line).find('.widgetSettings').hide();
+		line.find('.widgetSettings').hide();
 		img.attr('src', dotclear.img_plus_src);
 		img.attr('alt', dotclear.img_plus_alt);
 	} else if ( action == 'open' || ( action == 'toogle' && isopen ) ) {
-		$(line).find('.widgetSettings').show();
+		line.find('.widgetSettings').show();
 		img.attr('src', dotclear.img_minus_src);
 		img.attr('alt', dotclear.img_minus_alt);
@@ -39,5 +59,5 @@
 	$('#dndnav > li, #dndextra > li, #dndcustom > li').each(function() {
 		dotclear.postExpander(this);
-		dotclear.viewPostContent(this, 'close');
+		dotclear.viewPostContent($(this), 'close');
 	});
 	
