<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Hi Tim --<div><br></div><div>> <span style="white-space: pre-wrap;font-size: 10pt">Given that this flag appears to be ignored in Mac code,</span></div><div><span style="white-space: pre-wrap;font-size: 10pt">> how is it involved in the window dragging?</span></div><div><span style="white-space: pre-wrap;font-size: 10pt"><br></span></div><div><span style="white-space: pre-wrap;font-size: 10pt">The image always tries to set this flag to "true", the primitive</span></div><div><span style="white-space: pre-wrap;">126 never fails. So the image assumes that deferred</span></div><div><span style="white-space: pre-wrap;">updating is supported.</span></div><div><span style="white-space: pre-wrap;"><br></span></div><div><span style="white-space: pre-wrap;">After drawing all morphs onto Display, the patch under the</span></div><div><span style="white-space: pre-wrap;">HandMorph is then saved. Then the HandMorph (and the</span></div><div><span style="white-space: pre-wrap;">submorphs/windows it is dragging) will be drawn onto</span></div><div><span style="white-space: pre-wrap;">Display. Then </span><span style="white-space: pre-wrap;font-size: 10pt">that saved patch will be restored BUT without</span></div><div><span style="white-space: pre-wrap;font-size: 10pt">telling the </span><span style="white-space: pre-wrap;font-size: 10pt">VM via primitive 127.</span></div><div><span style="white-space: pre-wrap;"><br></span></div><div><span style="white-space: pre-wrap;">Then the image is done and tells the VM to show everything</span></div><div><span style="white-space: pre-wrap;">on the video buffer. Without proper support of primitive 126,</span></div><div><span style="white-space: pre-wrap;">the VM platform code starts reading the displayBits directly</span></div><div><span style="white-space: pre-wrap;">only then. That is, w</span><span style="white-space: pre-wrap;font-size: 10pt">ithout deferred updating, that saved patch</span></div><div><span style="white-space: pre-wrap;font-size: 10pt">under the </span><span style="white-space: pre-wrap;font-size: 10pt">HandMorph is already restored when the graphics</span></div><div><span style="white-space: pre-wrap;font-size: 10pt">backend </span><span style="white-space: pre-wrap;font-size: 10pt">starts reading the displayBits.</span></div><div><span style="white-space: pre-wrap;"><br></span></div><div><span style="white-space: pre-wrap;">That's why the entire thing becomes invisible. Does not</span></div><div><span style="white-space: pre-wrap;">affect HandMorph without dragging anything because</span></div><div><span style="white-space: pre-wrap;">we show a hardware cursor then.</span></div><div><span style="white-space: pre-wrap;"><br></span></div><div><span style="white-space: pre-wrap;">Dragging via Morphic halo is also not affected because</span></div><div><span style="white-space: pre-wrap;">the hardware cursor will still be used and the morph</span></div><div><span style="white-space: pre-wrap;">directly be moved.</span></div><div><span style="white-space: pre-wrap;"><br></span></div><div><span style="white-space: pre-wrap;">The entire thing is a performance optimization because</span></div><div><span style="white-space: pre-wrap;">the HandMorph caches the pixels of the submorphs it drags.</span></div><div><span style="white-space: pre-wrap;"><br></span></div><div><span style="white-space: pre-wrap;">Best,</span></div><div><span style="white-space: pre-wrap;">Marcel</span></div><div class="mb_sig"></div>
                                        <blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 27.04.2022 23:49:51 schrieb tim Rowledge <tim@rowledge.org>:</p><div style="font-family:Arial,Helvetica,sans-serif"> <br>Please let's talk live on this; email is crap for debating this sort of thing and far too often just gets everyone cross.<br><br>Whilst it's certainly true that the prim 126 has failed to return any useful flag value since at least 1998 (the earliest mention I have in email/source) it *does* set a value that is freely available to platform specific code. Mind you, the value is not initialised by default, which could cause much fun.<br><br>The only platform code I see that does reference it is Windows in ioForceDisplayUpdate(). Many platform versions of that do nothing, others actually move bits.<br><br>Given that this flag appears to be ignored in Mac code, how is it involved in the window dragging?<br><br>tim<br>--<br>tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim<br>Strange OpCodes: XYZZY: Branch and Play Adventure<br><br><br></div></blockquote></div>