jacque wrote: Sat Jul 11, 2020 7:28 pm
A disabled image will allow the control under it to receive the mouse message.
You're right. I went back to the test I'd done this morning, and it seems the first attempt at running "disable the selobj" from LC's Message Box didn't take (reason #44 why I wrote my own Message Box replacement, and reason #12 why I should remember to always use my replacement). Trying it again yields the result consistent with other objects.
In fact, it's weirder than I expected. I had recalled that there was something else anomalous about images vs other controls beyond the non-graying (which seems sensible enough to me), but I can't recall what it is and so far we can find any so maybe I'm just not recalling that correctly.
But exploring this in action yielded unexpected results, at least for me:
Over the years I've disable many UI elements, but haven't had occasion to disable an image since I don't know when (ever?). So I was surprised to find that when a control is disabled, it's not just the mouse
messages that act as though the object isn't there, it's ALL mouse tracking.
For example, on Ubuntu standard style buttons get a slight highlight when mouseover happens - and they happen when a button is covered by a disabled image. MouseEnter and mouseLeave are also triggered.
I suppose that's consistent with the design goal, but it feels weird: whether or not the control covering another disabled, it still exists, and is still visibly covering some or all of what's beneath it. I'm looking at a button "A" covering half of a button "B", and when I mouseover "A" then "B" highlights.
Where in any other software have we seen anything like that?
It's rare enough to have controls obscuring other controls that maybe it doesn't matter. But it seems super-weird to have a control that obscures another visually, but not behaviorially. Here, what you see is not what you get.
Did HyperCard do this? What might prompt such a design descision so different from The xTalk Way in which programming is made simpler through WYSIWYG?