<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>qooxdoo News &#187; Bugs</title>
	<atom:link href="http://news.qooxdoo.org/category/bugs/feed" rel="self" type="application/rss+xml" />
	<link>http://news.qooxdoo.org</link>
	<description>News from the qooxdoo open-source JS framework</description>
	<lastBuildDate>Sat, 04 Sep 2010 10:47:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mouse Capturing</title>
		<link>http://news.qooxdoo.org/mouse-capturing</link>
		<comments>http://news.qooxdoo.org/mouse-capturing#comments</comments>
		<pubDate>Fri, 16 Oct 2009 06:59:44 +0000</pubDate>
		<dc:creator>Fabian Jakobs</dc:creator>
				<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Issues]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://news.qooxdoo.org/?p=2415</guid>
		<description><![CDATA[Yesterday we have found solution for a really annoying problem. The problem was that we didn't receive mouse events during drag operation in IE and Firefox if the cursor left the browser viewport. This was especially a problem for our scroll bars. Since qooxdoo 0.8 we render scroll bars using qooxdoo widgets. If the scrollbar [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday we have found solution for a <a href="http://bugzilla.qooxdoo.org/show_bug.cgi?id=2891">really annoying problem</a>. The problem was that we didn't receive mouse events during drag operation in IE and Firefox if the cursor left the browser viewport. This was especially a problem for our scroll bars. Since qooxdoo 0.8 we render scroll bars using qooxdoo widgets. If the scrollbar was near the browser's edge and the user dragged the scroll bar knob outside of the browser window, scrolling just stopped. Thanks to qooxdoo user Petr Kobalíček, who pointed out that other frameworks can handle this situation, this issue could finally be resolved.</p>
<p>You can see the difference in this screen cast:</p>
<p><object width="528" height="467"><param name="movie" value="http://content.screencast.com/users/fjakobs/folders/Jing/media/af2b17df-95e1-4618-a7e7-8471c0290b9d/jingswfplayer.swf"></param><param name="quality" value="high"></param><param name="bgcolor" value="#FFFFFF"></param><param name="flashVars" value="thumb=http://content.screencast.com/users/fjakobs/folders/Jing/media/af2b17df-95e1-4618-a7e7-8471c0290b9d/FirstFrame.jpg&containerwidth=528&containerheight=467&content=http://content.screencast.com/users/fjakobs/folders/Jing/media/af2b17df-95e1-4618-a7e7-8471c0290b9d/00000003.swf&advseek=true"></param><param name="allowFullScreen" value="true"></param><param name="scale" value="showall"></param><param name="allowScriptAccess" value="always"></param><param name="base" value="http://content.screencast.com/users/fjakobs/folders/Jing/media/af2b17df-95e1-4618-a7e7-8471c0290b9d/"></param>
<p><embed src="http://content.screencast.com/users/fjakobs/folders/Jing/media/af2b17df-95e1-4618-a7e7-8471c0290b9d/jingswfplayer.swf" quality="high" bgcolor="#FFFFFF" width="528" height="467" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/fjakobs/folders/Jing/media/af2b17df-95e1-4618-a7e7-8471c0290b9d/FirstFrame.jpg&containerwidth=528&containerheight=467&content=http://content.screencast.com/users/fjakobs/folders/Jing/media/af2b17df-95e1-4618-a7e7-8471c0290b9d/00000003.swf&advseek=true" allowFullScreen="true" base="http://content.screencast.com/users/fjakobs/folders/Jing/media/af2b17df-95e1-4618-a7e7-8471c0290b9d/" scale="showall"></embed></object></p>
<p>A basic building block for drag operations in qooxdoo is a concept called mouse capturing. It was fist introduced by Microsoft with Internet Explorer 5 but unfortunately no other browser vendor has implemented it (<a href="http://msdn.microsoft.com/en-us/library/ms537630%28VS.85%29.aspx">MSDN</a>). Mouse capturing allows web developers to tell the browser that all mouse events should be dispatched on the same DOM element. This is especially useful for drag operations or menus, when all mouse events should go to the dragged element even if the mouse cursor is not directly above the element.</p>
<p>This can be easily demonstrated by looking at a simplistic drag and drop implementation:</p>
<pre class="javascript">&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> draggable<span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> dragging = <span style="color: #003366; font-weight: bold;">null</span>;
&nbsp;
    addListener<span style="color: #66cc66;">&#40;</span>element, <span style="color: #3366CC;">&quot;mousedown&quot;</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> e = window.<span style="color: #006600;">event</span>;
        dragging = <span style="color: #66cc66;">&#123;</span>
            mouseX: e.<span style="color: #006600;">clientX</span>,
            mouseY: e.<span style="color: #006600;">clientY</span>,
            startX: parseInt<span style="color: #66cc66;">&#40;</span>element.<span style="color: #006600;">style</span>.<span style="color: #006600;">left</span><span style="color: #66cc66;">&#41;</span>,
            startY: parseInt<span style="color: #66cc66;">&#40;</span>element.<span style="color: #006600;">style</span>.<span style="color: #006600;">top</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#125;</span>;
        element.<span style="color: #006600;">setCapture</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    addListener<span style="color: #66cc66;">&#40;</span>element, <span style="color: #3366CC;">&quot;losecapture&quot;</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        dragging = <span style="color: #003366; font-weight: bold;">null</span>;
    <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    addListener<span style="color: #66cc66;">&#40;</span>element, <span style="color: #3366CC;">&quot;mousemove&quot;</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>!dragging<span style="color: #66cc66;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span>;
&nbsp;
        <span style="color: #003366; font-weight: bold;">var</span> e = window.<span style="color: #006600;">event</span>;
        <span style="color: #003366; font-weight: bold;">var</span> top = dragging.<span style="color: #006600;">startY</span> + <span style="color: #66cc66;">&#40;</span>e.<span style="color: #006600;">clientY</span> - dragging.<span style="color: #006600;">mouseY</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #003366; font-weight: bold;">var</span> left = dragging.<span style="color: #006600;">startX</span> + <span style="color: #66cc66;">&#40;</span>e.<span style="color: #006600;">clientX</span> - dragging.<span style="color: #006600;">mouseX</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
        element.<span style="color: #006600;">style</span>.<span style="color: #006600;">top</span> = <span style="color: #66cc66;">&#40;</span>Math.<span style="color: #006600;">max</span><span style="color: #66cc66;">&#40;</span><span style="color: #CC0000;">0</span>, top<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #3366CC;">&quot;px&quot;</span>;
        element.<span style="color: #006600;">style</span>.<span style="color: #006600;">left</span> = <span style="color: #66cc66;">&#40;</span>Math.<span style="color: #006600;">max</span><span style="color: #66cc66;">&#40;</span><span style="color: #CC0000;">0</span>, left<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #3366CC;">&quot;px&quot;</span>;
    <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>;
&nbsp;
draggable<span style="color: #66cc66;">&#40;</span>document.<span style="color: #006600;">getElementById</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;drag&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;</pre>
<p><a href="http://news.qooxdoo.org/wp-content/uploads/2009/10/drag-ie1.html" target="_blank">open demo</a> (works only in IE). While dragging try moving the cursor out of the browser window.</p>
<p>In the <em>mousedown</em> handler the current mouse and element position is stored in a drag session and then mouse capturing is started. From this point on all mouse events will be dispatched on the dragged element even if the mouse cursor is not over the element. The mouse can even leave the viewport as long as the mouse button is pressed. Mouse capturing ends when the mouse button is released, an alert box is opened or the browser loses focus. Note that all listeners can be attached directly to the element.</p>
<p>To get the same behavior in non IE browsers is a little bit tricky because none do support mouse capturing. For this reason we cannot attach the <em>mousemove</em> listener to the dragged element. Instead we need to attach it to the <em>document</em>. Since mouse events bubble up the DOM tree the <em>document</em> will receive all move events. One problem with this approach is that while bubbling up an intermediate event listener might manually stop the bubbling by calling <em>stopPropagation</em>. In this case the event would never reach the document and the drag would be broken. To fix this we have to attach the listeners to the event capturing phase. This can be easily confused with mouse capturing but it has nothing to do with it. In the W3C <a href="http://www.w3.org/TR/DOM-Level-2-Events/events.html">DOM event model</a> bubbling events have two phases. First in the capturing phase the event bubbles from the document down to the event target. Afterwards in the bubbling phase it bubbles back from the target to the document. The bubbling phase is much better known because IE doesn't support the capturing phase at all. If the <em>mousemove</em> listener is added to the capturing phase of the <em>document</em> no other listener will be able to block it.</p>
<pre class="javascript">&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> draggable<span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> dragging = <span style="color: #003366; font-weight: bold;">null</span>;
&nbsp;
    addListener<span style="color: #66cc66;">&#40;</span>element, <span style="color: #3366CC;">&quot;mousedown&quot;</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> e = window.<span style="color: #006600;">event</span> || e;
        dragging = <span style="color: #66cc66;">&#123;</span>
            mouseX: e.<span style="color: #006600;">clientX</span>,
            mouseY: e.<span style="color: #006600;">clientY</span>,
            startX: parseInt<span style="color: #66cc66;">&#40;</span>element.<span style="color: #006600;">style</span>.<span style="color: #006600;">left</span><span style="color: #66cc66;">&#41;</span>,
            startY: parseInt<span style="color: #66cc66;">&#40;</span>element.<span style="color: #006600;">style</span>.<span style="color: #006600;">top</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#125;</span>;
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>element.<span style="color: #006600;">setCapture</span><span style="color: #66cc66;">&#41;</span> element.<span style="color: #006600;">setCapture</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    addListener<span style="color: #66cc66;">&#40;</span>element, <span style="color: #3366CC;">&quot;losecapture&quot;</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        dragging = <span style="color: #003366; font-weight: bold;">null</span>;
    <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    addListener<span style="color: #66cc66;">&#40;</span>document, <span style="color: #3366CC;">&quot;mouseup&quot;</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        dragging = <span style="color: #003366; font-weight: bold;">null</span>;
    <span style="color: #66cc66;">&#125;</span>, <span style="color: #003366; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #003366; font-weight: bold;">var</span> dragTarget = element.<span style="color: #006600;">setCapture</span> ? element : document;
&nbsp;
    addListener<span style="color: #66cc66;">&#40;</span>dragTarget, <span style="color: #3366CC;">&quot;mousemove&quot;</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>!dragging<span style="color: #66cc66;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span>;
&nbsp;
        <span style="color: #003366; font-weight: bold;">var</span> e = window.<span style="color: #006600;">event</span> || e;
        <span style="color: #003366; font-weight: bold;">var</span> top = dragging.<span style="color: #006600;">startY</span> + <span style="color: #66cc66;">&#40;</span>e.<span style="color: #006600;">clientY</span> - dragging.<span style="color: #006600;">mouseY</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #003366; font-weight: bold;">var</span> left = dragging.<span style="color: #006600;">startX</span> + <span style="color: #66cc66;">&#40;</span>e.<span style="color: #006600;">clientX</span> - dragging.<span style="color: #006600;">mouseX</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
        element.<span style="color: #006600;">style</span>.<span style="color: #006600;">top</span> = <span style="color: #66cc66;">&#40;</span>Math.<span style="color: #006600;">max</span><span style="color: #66cc66;">&#40;</span><span style="color: #CC0000;">0</span>, top<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #3366CC;">&quot;px&quot;</span>;
        element.<span style="color: #006600;">style</span>.<span style="color: #006600;">left</span> = <span style="color: #66cc66;">&#40;</span>Math.<span style="color: #006600;">max</span><span style="color: #66cc66;">&#40;</span><span style="color: #CC0000;">0</span>, left<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #3366CC;">&quot;px&quot;</span>;
    <span style="color: #66cc66;">&#125;</span>, <span style="color: #003366; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>;
&nbsp;
draggable<span style="color: #66cc66;">&#40;</span>document.<span style="color: #006600;">getElementById</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;drag&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;</pre>
<p><a href="http://news.qooxdoo.org/wp-content/uploads/2009/10/drag1.html" target="_blank">open demo</a></p>
<p>If a mouse button is pressed and dragged out of the browser window, Firefox will continue to fire mouse events on the <em>document</em>. Opera, Safari and Chrome are a little more tolerant and fire the events on the <em>document.documentElement</em> as well. For this reason we must attach the listener to the <em>document</em> and not the <em>document.documentElement</em> or <em>document.body</em>.</p>
<p>Because if its usefulness we emulate the IE mouse capturing behavior in our cross browser event handling layer. The fix for IE was to call the native <em>setCapture</em> method. Since we used the emulated mouse capturing support for IE as well we've lost the side effect of receiving mouse events when the mouse left the browser window. In Firefox we just had to switch the event target from <em>document.documentElement</em> to <em>document</em> in our generic mouse event handler. With both fixes in place, mouse capturing and drag and drop operations now really work as expected on all supported browsers.</p>
]]></content:encoded>
			<wfw:commentRss>http://news.qooxdoo.org/mouse-capturing/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>qooxdoo now SSL safe</title>
		<link>http://news.qooxdoo.org/qooxdoo-now-ssl-safe</link>
		<comments>http://news.qooxdoo.org/qooxdoo-now-ssl-safe#comments</comments>
		<pubDate>Wed, 15 Jul 2009 08:39:47 +0000</pubDate>
		<dc:creator>Alex Steitz</dc:creator>
				<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://news.qooxdoo.org/?p=1916</guid>
		<description><![CDATA[Whenever an application is delivered in SSL and an image is used as CSS background-image and referenced with HTTP or as a relative URL IE does warn the user of Unsecure Elements at the page. Though this warning is reasonable the goal should be to not let happen this when an user starts your application [...]]]></description>
			<content:encoded><![CDATA[<p>Whenever an application is delivered in SSL and an image is used as CSS background-image and referenced with HTTP or as a relative URL IE does warn the user of <em>Unsecure Elements</em> at the page. Though this warning is reasonable the goal should be to not let happen this when an user starts your application in IE.</p>
<p>qooxdoo is heavily affected here since we're using CSS background images for our decorators. In qooxdoo the so-called <a href="http://demo.qooxdoo.org/current/apiviewer/#qx.util.ResourceManager">qx.util.ResourceManager</a> class is responsible for delivering qooxdoo managed resources like images or CSS files.<br />
Yesterday a fix for the ResourceManager class hit the qooxdoo trunk. The class is now capable of serving resources in SSL mode for Internet Explorer transparently.</p>
<p>Although this should eliminate the unsecure warning in IE under SSL for a normal qooxdoo application it may happen that you still encounter this warning. If so, don't hesitate to <a href="http://bugzilla.qooxdoo.org">open a bug report</a> and we'll take a look at your issue.</p>
]]></content:encoded>
			<wfw:commentRss>http://news.qooxdoo.org/qooxdoo-now-ssl-safe/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Clashed with IE&#039;s execCommand</title>
		<link>http://news.qooxdoo.org/clashed-with-ies-execcommand</link>
		<comments>http://news.qooxdoo.org/clashed-with-ies-execcommand#comments</comments>
		<pubDate>Thu, 06 Nov 2008 10:02:57 +0000</pubDate>
		<dc:creator>Alex Steitz</dc:creator>
				<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Issues]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://news.qooxdoo.org/?p=467</guid>
		<description><![CDATA[During the migration of the HtmlArea to the 0.8 codebase I encountered serious problems concerning IE's execCommand method. To be more precise: only the Undo and Redo commands are affected.
In short: the HtmlArea is using an approach to do a kind of monitoring of the user manipulations, but it does rely internally on the native [...]]]></description>
			<content:encoded><![CDATA[<p>During the migration of the <a href="http://qooxdoo.org/contrib/project/htmlarea">HtmlArea</a> to the 0.8 codebase I encountered serious problems concerning IE's <code>execCommand</code> method. To be more precise: only the <em>Undo</em> and <em>Redo</em> commands are affected.</p>
<p><b>In short:</b> the HtmlArea is using an approach to do a kind of <em>monitoring</em> of the user manipulations, but it does rely internally on the native <code>execCommand</code> method to actually revert/recover these manipulations. This approach worked with the 0.7.x - honestly there were some issues, but since Undo/Redo functionality is non-trivial stuff for WYSIWYG editors I concluded to live with it.</p>
<p><b>Now comes the show-stopper.</b> With 0.8 joining the game things are different as we're are doing more on-the-fly DOM manipulations (like for hover effects on buttons) which shouldn't be a problem for a today's browser. Still the clash with IE's <code>execCommand</code> hit me unprepared and I must admit I never ever considered this could happen in a modern browser. See for yourself.</p>
<pre class="html4strict">&nbsp;
<span style="color: #009900;"><a href="http://december.com/html/4/element/html.html"><span style="color: #000000; font-weight: bold;">&lt;html&gt;</span></a></span>
  <span style="color: #009900;"><a href="http://december.com/html/4/element/head.html"><span style="color: #000000; font-weight: bold;">&lt;head&gt;</span></a></span>
    <span style="color: #009900;"><a href="http://december.com/html/4/element/title.html"><span style="color: #000000; font-weight: bold;">&lt;title&gt;</span></a></span>Iframe-Test<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title&gt;</span></span>
    <span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/javascript&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      var domChange = function()
      {
        var content = document.createTextNode(&quot;DOMCHANGE&quot;);
      };
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/head&gt;</span></span>
  <span style="color: #009900;"><a href="http://december.com/html/4/element/body.html"><span style="color: #000000; font-weight: bold;">&lt;body&gt;</span></a></span>
<span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">&quot;border: 1px solid lightgrey&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><a href="http://december.com/html/4/element/iframe.html"><span style="color: #000000; font-weight: bold;">&lt;iframe</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;area&quot;</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;iframe.html&quot;</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">&quot;400&quot;</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">&quot;400&quot;</span> <span style="color: #000066;">border</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">frameborder</span>=<span style="color: #ff0000;">&quot;no&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/iframe&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span>
<span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">&quot;position:absolute; top:450px; left:20px&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><a href="http://december.com/html/4/element/button.html"><span style="color: #000000; font-weight: bold;">&lt;button</span></a> <span style="color: #000066;">onclick</span>=<span style="color: #ff0000;">&quot;window.area.document.execCommand('Bold', false, null)&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Bold<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/button&gt;</span></span><span style="color: #ddbb00;">&amp;nbsp;</span>
      <span style="color: #009900;"><a href="http://december.com/html/4/element/button.html"><span style="color: #000000; font-weight: bold;">&lt;button</span></a> <span style="color: #000066;">onclick</span>=<span style="color: #ff0000;">&quot;window.area.document.execCommand('Undo', false, null)&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Undo<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/button&gt;</span></span><span style="color: #ddbb00;">&amp;nbsp;</span>
      <span style="color: #009900;"><a href="http://december.com/html/4/element/button.html"><span style="color: #000000; font-weight: bold;">&lt;button</span></a> <span style="color: #000066;">onclick</span>=<span style="color: #ff0000;">&quot;domChange()&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>DOM-Change<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/button&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span>
&nbsp;
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/body&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/html&gt;</span></span>
&nbsp;</pre>
<p>For the inpatient reader: the above snippet breaks the internal Undo/Redo stack of IE.</p>
<p>The used iframe holds a document which is set editable with the help of the <code>onload</code> event and with the two buttons <em>Bold</em> and <em>Undo</em> you can manipulate the editable document to prove it is really in edit mode.</p>
<p>Well you can manipulate the document until you hit the third button <em>DOM-Change</em>. Hit the button and your internal Undo/Redo stack is broken. Every manipulation performed so far can't be reverted any more. Sad but true.</p>
<p>DOM manipulations are a red rag for IE, even only creating not actually adding a text node suffices for the clash. What really bothers me is that this manipulation is done at the parent window, not inside the editable iframe. One could argue that it should not interfere the Undo/Redo stack because it's happening in a <strong>different</strong> document (sounds quite logical to me <em>*sigh*</em>), but it seems IE does not separate this.</p>
<p>And yes, this bug is still reproducible with the beta versions of IE 8. <a href='http://news.qooxdoo.org/wp-content/uploads/2008/11/ie_execcommandclash_index1.html'>Try it out the demo</a> for yourself!</p>
<p>If anyone is in the position to file a bug report for this at Microsoft's bug database I would be very happy. I've created an account at <a href='http://connect.microsoft.com/'>Microsoft's Connect service</a> and joined the <em>Internet Explorer Beta Feedback</em> connection (that's how they call it). Now I'm in position to view bugs but <strong>not</strong> to file them. So if anybody figures out how to send a bug report to Microsoft let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://news.qooxdoo.org/clashed-with-ies-execcommand/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Keyhandling for Safari 3.1 fixed</title>
		<link>http://news.qooxdoo.org/keyhandling-for-safari-31-fixed</link>
		<comments>http://news.qooxdoo.org/keyhandling-for-safari-31-fixed#comments</comments>
		<pubDate>Fri, 28 Mar 2008 10:00:18 +0000</pubDate>
		<dc:creator>Fabian Jakobs</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Issues]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://news.qooxdoo.org/keyhandling-for-safari-31-fixed</guid>
		<description><![CDATA[With the recent release of Safari 3.1 the WebKit team has completely reworked the handling of key events. John Resig has an interesting blog article with some details. Safari 3.1 now behaves pretty much like Internet Explorer and is in general much more sane than before. For instance, all those strange key codes larger than [...]]]></description>
			<content:encoded><![CDATA[<p>With the recent release of Safari 3.1 the WebKit team has completely reworked the handling of key events. John Resig has an interesting <a href="http://ejohn.org/blog/keypress-in-safari-31/">blog article</a> with some details. Safari 3.1 now behaves pretty much like Internet Explorer and is in general much more sane than before. For instance, all those strange key codes larger than 64000 for special keys are gone and finally modifier keys like "shift" and "control" fire key events as well. Interestingly, Safari is now the first browser to support the key identifier property defined in the <a href="http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events-KeyboardEvent-keyIdentifier">DOM level 3 event</a> specification. In qooxdoo we already emulate this property in key events for quite some time now, and it really helps to simplify key handler code in our widgets.</p>
<p>Unfortunately, this change in Safari 3.1 broke the existing <a href="http://blog.qooxdoo.org/key-event-nightmare-resolved">qooxdoo key event handler</a>. But it is already fixed and available in our subversion repository for legacy_0_7_x branch and trunk. The fix was basically to detect the current WebKit version and use the existing Internet Explorer key handler code also for Safari 3.1 and above. Since all browser quirks are handled separately this was a pretty simple fix. Of course, it will be part of the next minor release 0.7.4 as well as the final 0.8. If you need Safari 3.1 support now, please checkout the latest version from the <a href="http://qooxdoo.org/documentation/0.7/checking_out_from_svn#svn_structure">legacy_0_7_x</a> branch.</p>
]]></content:encoded>
			<wfw:commentRss>http://news.qooxdoo.org/keyhandling-for-safari-31-fixed/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Memory issue in XMLHttp fixed</title>
		<link>http://news.qooxdoo.org/memory-issue-in-xmlhttp-fixed</link>
		<comments>http://news.qooxdoo.org/memory-issue-in-xmlhttp-fixed#comments</comments>
		<pubDate>Wed, 26 Sep 2007 08:51:51 +0000</pubDate>
		<dc:creator>Sebastian Werner</dc:creator>
				<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://news.qooxdoo.org/memory-issue-in-xmlhttp-fixed</guid>
		<description><![CDATA[Thanks to Hugh's and Andreas Junghans' investigation we have fixed a Internet Explorer specific memory leak. We suggest that all users of the 0.7.x-line should update the file qx.io.remote.XmlHttpTransport.js as soon as possible.
For SVN users of the trunk and legacy_0_7 folders this file has already been patched. A simple update of the repository should be [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to Hugh's and Andreas Junghans' investigation we have fixed a Internet Explorer specific memory leak. We suggest that all users of the 0.7.x-line should update the file <em>qx.io.remote.XmlHttpTransport.js</em> as soon as possible.</p>
<p>For SVN users of the <em>trunk</em> and <em>legacy_0_7</em> folders this file has already been patched. A simple update of the repository should be enough for them.</p>
<p>Download corrected file: <a href="http://news.qooxdoo.org/wp-content/uploads/2007/09/xmlhttptransport1.js" title="Fixed XMLHttp transport layer for &lt; 0.7.3">Fixed XMLHttp transport layer for 0.7.1 + 0.7.2</a></p>
<p>As there were no other changes to this file since 0.7.1 came out you can use this file for both qooxdoo 0.7.1 and 0.7.2. Users of older versions - especially 0.7 and 0.6.x should update to 0.7.2 as soon as possible. There were a lot of other improvements, too.</p>
<p>Please make sure that you re-run "make" after you have updated the file. Sorry for the inconvenience.</p>
]]></content:encoded>
			<wfw:commentRss>http://news.qooxdoo.org/memory-issue-in-xmlhttp-fixed/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hotfix for Firefox 2.0.0.1</title>
		<link>http://news.qooxdoo.org/hotfix-for-firefox-2001</link>
		<comments>http://news.qooxdoo.org/hotfix-for-firefox-2001#comments</comments>
		<pubDate>Wed, 20 Dec 2006 14:39:46 +0000</pubDate>
		<dc:creator>Sebastian Werner</dc:creator>
				<category><![CDATA[Bugs]]></category>

		<guid isPermaLink="false">http://news.qooxdoo.org/hotfix-for-firefox-2001</guid>
		<description><![CDATA[Thanks to Dietrich Streifert we just became aware of an issue introduced with Firefox 2.0.0.1, which is was made available today. The problems occur for qooxdoo releases 0.6.2 and 0.6.3 only. The DOM-based source loader introduced in those two releases is XHTML compatible and seems to be incompatible with the changes of this Firefox version.
We [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to Dietrich Streifert we just became aware of <a href="http://bugzilla.qooxdoo.org/show_bug.cgi?id=252">an issue</a> introduced with Firefox 2.0.0.1, which is was made available today. The problems occur for qooxdoo releases 0.6.2 and 0.6.3 only. The DOM-based source loader introduced in those two releases is XHTML compatible and seems to be incompatible with the changes of this Firefox version.</p>
<p>We have changed the default loader in SVN with revision 5423. Please note, this change breaks the XHTML compatibility in the source version of all qooxdoo-based applications. You can apply <a href="http://bugzilla.qooxdoo.org/attachment.cgi?id=92&action=view">the hotfix</a> which is attached to <a href="http://bugzilla.qooxdoo.org/show_bug.cgi?id=252">the bug</a> to your qooxdoo SDK or simply update your tagged SVN checkout (both tags were updated accordingly). Otherwise just wait for qooxdoo 0.6.4 which will also include this fix. Sorry for any inconvenience.</p>
]]></content:encoded>
			<wfw:commentRss>http://news.qooxdoo.org/hotfix-for-firefox-2001/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bugzilla mailing list</title>
		<link>http://news.qooxdoo.org/bugzilla-mailing-list</link>
		<comments>http://news.qooxdoo.org/bugzilla-mailing-list#comments</comments>
		<pubDate>Mon, 19 Jun 2006 09:24:26 +0000</pubDate>
		<dc:creator>Sebastian Werner</dc:creator>
				<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Mailing lists]]></category>

		<guid isPermaLink="false">http://news.qooxdoo.org/uncategorized/bugzilla-mailing-list</guid>
		<description><![CDATA[I've just registered and configured a new mailing list, which is used to monitor the bug activity. Bugs in qooxdoo are also used to manage feature additions and enhancement wishes.
You can register yourself to always stay up-to-date with the further development of qooxdoo.
]]></description>
			<content:encoded><![CDATA[<p>I've just registered and configured a new <a href="http://lists.sourceforge.net/lists/listinfo/qooxdoo-bugs">mailing list</a>, which is used to monitor the bug activity. Bugs in <a href="http://qooxdoo.org">qooxdoo</a> are also used to manage feature additions and enhancement wishes.</p>
<p>You can <a href="http://lists.sourceforge.net/lists/listinfo/qooxdoo-bugs">register yourself</a> to always stay up-to-date with the further development of qooxdoo.</p>
]]></content:encoded>
			<wfw:commentRss>http://news.qooxdoo.org/bugzilla-mailing-list/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduce Bugzilla Bugtracking</title>
		<link>http://news.qooxdoo.org/introduce-bugzilla-bugtracking</link>
		<comments>http://news.qooxdoo.org/introduce-bugzilla-bugtracking#comments</comments>
		<pubDate>Mon, 12 Jun 2006 13:04:06 +0000</pubDate>
		<dc:creator>Webmaster</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Bugs]]></category>

		<guid isPermaLink="false">http://news.qooxdoo.org/uncategorized/introduce-bugzilla-bugtracking</guid>
		<description><![CDATA[To fulfill the requirements for a bug-tracking tool for qooxdoo, we have finally installed a fresh bugzilla to bugzilla.qooxdoo.org. After you register yourself, you can enter your bugs there.
]]></description>
			<content:encoded><![CDATA[<p>To fulfill the requirements for a bug-tracking tool for qooxdoo, we have finally installed a fresh bugzilla to <a href="http://bugzilla.qooxdoo.org">bugzilla.qooxdoo.org</a>. After you register yourself, you can enter your bugs there.</p>
]]></content:encoded>
			<wfw:commentRss>http://news.qooxdoo.org/introduce-bugzilla-bugtracking/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
