Re: VW 7.5 behavior while dragging a window on Windows XP



R.J.Rothwell@xxxxxxxxx wrote:
On Nov 13, 5:20 am, "Steven Kelly" <ste...@xxxxxxxxxxxx> wrote:
<R.J.Rothw...@xxxxxxxxx> wrote in message

news:1194918998.393248.29010@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Can anyone tell me how to keep VW 7.5 from erasing the contents of
all
the VW windows while dragging another VW window? I can wipe out the
contents of all of my windows as if the window being dragged is a
giant eraser in a paint program! It repaints when the drag
operation
is complete, but is very annoying!
Note that VW windows retain their contents if I drag a window across
them from another program (like this browser, for example).
Is this a Windows thing? It seems like I am missing a checkbox
somewhere that says something like "repaint windows while dragging!"
Sorry Rob, no magic checkbox for this: it's a bug / design flaw in the
Windows VM event handling.

I managed to get a similar bug in redisplay within VW windows fixed by
the cunning ploy of making my own fix to the C code of the VM, and
sending it to Cincom. After years of nobody paying attention to our
whining about the problem, the sight of excruciatingly bad C code
hacks to the beauty of the VM was enough to fire the VM engineers into
action to correct the ugliness - and the bug. (This is of course
probably not really how things went, but it's more fun to imagine it
like this! Thanks to Eliot Miranda and Ralf Propach for their work on
this.)

Steve

Steve--

Thanks for keeping me from struggling in vain! I am currently using
the Non-Commercial version (although I am considering a license at
work), so I unfortunately don't have the source code to the VM to go
mucking around in. It sure seems like it would just be a timing
matter around handling the WM_PAINT (if I recall properly) message...

Its more fundamental than that alas. There are two problems.

1. The interface between the VM and the image for events is a queue. WM_PAINT messages are callbacks. So being able to respond to WM_PAINT messages means completely reimpleenting the VM/VI event interface to be in terms of callbacks.

2. dragging is done by a "vanilla" primitive and the VM cannot handle callbacks while in "vanilla" primitives. [Callbacks can happen in primitives that do C callouts or in the primitive that exists to accept callbacks, but not in general]. So dragging needs to be reimplemented e.g. in terms of DLLCC.

VW has two architectural flaws here. One weakness is its FFI which is slow, especially in callback handling. The other weakness is its cross-platform Windows/GUI primitives, which impose a lowest-common-denominator across the different GUIs. Were the FFI faster the primitives could be ditched and replaced by Smalltalk code and FFI calls. Smalltalk is, IMO, a far better place to implement a cross-platform framework than C, and allows full access to the underlying platform. Of course, maintaining portability is more difficult since one lacks a simple cross-platform API to function as a specfication, but that's what test suites are for.


Oh well. Thanks again. Maybe I need to run it on a different
platform!

Rob


--
The surest sign that intelligent life exists elsewhere in Calvin &
the universe is that none of it has tried to contact us. Hobbes.
--
Eliot ,,,^..^,,, Smalltalk - scene not herd
.



Relevant Pages

  • Re: Photos duplicate
    ... Dragging is not the problem per se, ... MS-MVP Windows Shell/User ... You either have to practice or set the drag sensitivity differently. ... right-click the test icon. ...
    (microsoft.public.windowsxp.help_and_support)
  • Re: Control click copies automatically
    ... You either have to practice or set the drag sensitivity differently. ... that you are dragging the object. ... Microsoft PowerToys for Windows XP ... right-click the test icon. ...
    (microsoft.public.windowsxp.help_and_support)
  • Re: Deleting files causes duplicates
    ... Dragging is not the problem per se, ... You move the mouse enough that Windows ... You either have to practice or set the drag sensitivity differently. ... right-click the test icon. ...
    (microsoft.public.windowsxp.perform_maintain)
  • Re: Photos duplicate
    ... Dragging is not the problem per se, it's dragging without meaning to while ... What happens is that you have multiple items selected and you're using the ... MS-MVP Windows Shell/User ... You either have to practice or set the drag sensitivity differently. ...
    (microsoft.public.windowsxp.help_and_support)
  • Re: Honestly Curious
    ... Windows will only allow items to be dragged to a location where they would do something--since it doesn't support the creation of text snippets, dragging text to the desktop does nothing. ... Unless you're not using Apple's apps. ...
    (comp.sys.mac.advocacy)