Re: VW 7.5 behavior while dragging a window on Windows XP
- From: Eliot Miranda <eliotm@xxxxxxxxxxx>
- Date: Thu, 15 Nov 2007 12:23:24 -0800
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 ofSorry Rob, no magic checkbox for this: it's a bug / design flaw in the
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!"
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
.
- Follow-Ups:
- Re: VW 7.5 behavior while dragging a window on Windows XP
- From: Andre Schnoor
- Re: VW 7.5 behavior while dragging a window on Windows XP
- References:
- VW 7.5 behavior while dragging a window on Windows XP
- From: R . J . Rothwell
- Re: VW 7.5 behavior while dragging a window on Windows XP
- From: Steven Kelly
- Re: VW 7.5 behavior while dragging a window on Windows XP
- From: R . J . Rothwell
- VW 7.5 behavior while dragging a window on Windows XP
- Prev by Date: Re: Recommendation Migration from Smalltalk to JAVA
- Next by Date: Re: VW 7.5 behavior while dragging a window on Windows XP
- Previous by thread: Re: VW 7.5 behavior while dragging a window on Windows XP
- Next by thread: Re: VW 7.5 behavior while dragging a window on Windows XP
- Index(es):
Relevant Pages
|