Index: /FCKeditor/branches/developers/martinkou/editor/plugins/dragresizetable/fckplugin.js
===================================================================
--- /FCKeditor/branches/developers/martinkou/editor/plugins/dragresizetable/fckplugin.js	(revision 460)
+++ /FCKeditor/branches/developers/martinkou/editor/plugins/dragresizetable/fckplugin.js	(revision 461)
@@ -213,13 +213,21 @@
 			colElements[i].parentNode.removeChild( colElements[i] ) ;
 
-		// Find the place for adding new <col> elements.
-			colParent = table ;
-		
-		// Generate <col> elements.
-		for ( var i = colArray.length - 1 ; i >= 0 ; i-- )
-		{
-			var col = FCK.EditorDocument.createElement( "col" ) ;
-			col.width = colArray[i].width ;
-			colParent.insertBefore( col, colParent.childNodes[0] ) ;
+		// Set new cell widths.
+		for ( var r = 0 ; r < table.rows.length ; r++ )
+		{
+			var row = table.rows.item( r ) ;
+			var colIndex = 0 ;
+			for ( var c = 0 ; c < row.cells.length ; c++ )
+			{
+				var cell = row.cells.item( c ) ;
+				var colSpan = parseInt( cell.colSpan ) ;
+				if ( colSpan != colSpan )
+					colSpan = 1 ;
+				var cellWidth = 0 ;
+				for ( var i = colIndex ; i < colIndex + colSpan ; i++ )
+					cellWidth += colArray[i].width ;
+				cell.width = cellWidth ;
+				colIndex += colSpan ;
+			}
 		}
 	},
@@ -395,5 +403,4 @@
 			var paddingBar = FCKDragTableHandler._ResizeBar ;
 			paddingBar.style.position = "absolute" ;
-			paddingBar.style.backgroundColor = "transparent" ;
 			paddingBar.style.cursor = "e-resize" ;
 			if ( FCKBrowserInfo.IsIE )
@@ -406,4 +413,25 @@
 			FCKTools.AddEventListener( document, "mouseup", FCKDragTableHandler._ResizeBarMouseUpListener ) ;
 			FCKTools.AddEventListener( FCK.EditorDocument, "mouseup", FCKDragTableHandler._ResizeBarMouseUpListener ) ;
+
+			// IE doesn't let the tranparent part of the padding block to receive mouse events unless there's something inside.
+			// So we need to create a spacer image to fill the block up.
+			var filler = document.createElement( "img" ) ;
+			filler.border = 0 ;
+			filler.src = FCKConfig.EditorPath + "/editor/images/spacer.gif" ;
+			filler.style.position = "absolute" ;
+			paddingBar.appendChild( filler ) ;
+
+			// Disable drag and drop, and selection for the filler image.
+			var disabledListener = function( evt )
+			{
+				if ( ! evt )
+					evt = window.event ;
+				if ( evt.preventDefault )
+					evt.preventDefault() ;
+				else
+					evt.returnValue = false ;
+			}
+			FCKTools.AddEventListener( filler, "dragstart", disabledListener ) ;
+			FCKTools.AddEventListener( filler, "selectstart", disabledListener ) ;
 		}
 
@@ -423,10 +451,19 @@
 			cs = 0 ;
 		var barWidth = Math.max( bw+100, cs+100 ) ;
-		paddingBar.innerHTML = "" ;
 		paddingBar.style.width = barWidth + "px" ;
 		paddingBar.style.left = ( offset.x + mouse.x + FCKDragTableHandler._GetWindowScrollX( w ) - barWidth / 2 ) +  "px" ;
+		var filler = paddingBar.getElementsByTagName( "img" )[0] ;
+		filler.style.width = paddingBar.offsetWidth + "px" ;
+		filler.style.height = paddingBar.offsetHeight + "px" ;
 
 		barWidth = Math.max( bw, cs, 3 ) ;
-		var visibleBar = document.createElement( "div" ) ;
+		var visibleBar = null ;
+		if ( paddingBar.getElementsByTagName( "div" ).length < 1 )
+		{
+			visibleBar = document.createElement( "div" ) ;
+			paddingBar.appendChild( visibleBar ) ;
+		}
+		else
+			visibleBar = paddingBar.getElementsByTagName( "div" )[0] ;
 		visibleBar.style.position = "absolute" ;
 		visibleBar.style.backgroundColor = "blue" ;
@@ -435,5 +472,4 @@
 		visibleBar.style.left = "50px" ;
 		visibleBar.style.top = "0px" ;
-		paddingBar.appendChild( visibleBar ) ;
 	},
 	"_HideResizeBar" : function()
