<br><br><div class="gmail_quote">On Sun, Jun 5, 2011 at 4:27 PM, Thorsten Wilms <span dir="ltr">&lt;<a href="mailto:t_w_@freenet.de">t_w_@freenet.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">On 06/05/2011 01:40 PM, Boudewijn Rempt wrote:<br>
</div><div class="im">&gt; On Sunday 05 June 2011 Jun, Dmitry Kazakov wrote:<br>
<br>
</div><div class="im">&gt;&gt; 1) The scheduler should serialize stroke and merge actions. The order of<br>
&gt;&gt; actions accessing the same pixels should be total.<br>
<br>
</div>What do you mean with &quot;total&quot; here?<br>
<br>
As I&#39;m jumping in here, I might be on the wrong train, but we&#39;ll see :)<br>
<br>
While many operations may be applicable independently, out of order,<br>
there surely will be dependencies? Can&#39;t draw on a layer that doesn&#39;t<br>
exist yet/anymore, not much sense in drawing outside of the canvas,<br>
because it hasn&#39;t been resized as expected.<br>
<br>
Reminds me of the Darcs&#39;s Theory of Patches, where patches do no have a<br>
sequence in general, but may rely on other patches.<br></blockquote><div><br>The aim of the scheduler is to put all this operations in a single queue and execute them one by one without overlapping in time. The overlapping is possible for special types of actions only.<br>
 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">&gt;&gt; 10) &quot;Other types&quot; I didn&#39;t managed to formalize them.<br>
<br>
</div>Is or should there be some &quot;mode&quot; framework in place?<br>
<br>
Where a mode would be any (sub-)state that changes the interpretation of<br>
further input. (Maybe even generalized beyond user action.)<br>
<br>
So (user input) events trigger actions, often with a 1:1 mapping, but<br>
potentially n:m. Some of these actions are for entering and leaving modes.<br>
<br>
Each mode would have a scope, described by the set of events that will<br>
be interpreted differently. Since several modes can be active at once,<br>
they need to have an order and work like filters on the event stream.<br></blockquote><div><br>I should think it over.<br><br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div class="im">

&gt;&gt; 12) On some modifiers, like Ctrl and Space, the current tool shoud be<br>
&gt;&gt; switched to another one temporarily, like to Color Picker Tool and Pan Tool.<br>
&gt;<br>
<br>
&gt; We did that before, but the users didn&#39;t like it because the option<br>
&gt; widget changed. I think that we should have two kinds of tools: normal,<br>
&gt; and temporary, where the temporary tool only changes the cursor but not<br>
&gt; the option widget.<br>
&gt;<br>
&gt; When should we move back to the first tool? On release of shortcut,<br>
&gt; or  on pressing another key? We had the p-&gt;pan, b-&gt;back to freehand<br>
&gt; shortcuts, but users didn&#39;t like those.<br>
<br>
</div>The 3D application Softimage has some single key commands, where<br>
pressing the key will switch tools until the next tool-change, but<br>
holding down the key will work as quasi-mode, that is the switch happens<br>
on key-down and will be undone on key-up.<br>
<br>
This may sound complicated at first, but at least for me it didn&#39;t take<br>
long to make use of it.<br></blockquote><div><br>Interesting idea, btw. <br></div></div><br>-- <br>Dmitry Kazakov<br>