| >>>Is it safe to assume the Expose will always come after the ButtonPress but
>>>before the ButtonRelease if you are really only bringing the window to the
>>>top of the stack?
This is probably NOT a safe (reliable) assumption.
I see two problems with this. First off, "occlusion" is a relative thing.
Suppose the window is only slightly occluded by a sibling. The user may
really mean MB1 (the command), not MB1 (pop to top). The boundary
condition bothers me. Although the behavior is predictable, it depends
too much on what might be a one-pixel change in window position. I
don't think that a window's behavior should depend on where it is
(on the screen, or in the stacking order either).
Second, because of the asynchronous window manager interaction of
bringing the window to the front, I believe that a slow-running window
manager could cause the ButtonPress/ButtonRelease to be send to the
client before the (restack) Expose event is triggered. So, the
timing is not always reliable. (I might be wrong about this, but
there are an awful lot of window managers out there for you to be
able to depend on this working for all of them.)
I'm not sure what to suggest, but I think that you need to think about
your MB1 UI a little more. Suppose, for example, that you made
MB1 double-click mean "do it again" (instead of MB1 single-click).
This would avoid the pop-to-top ambiguity and might be acceptable to the user.
Any other ideas out there?
-steve-
|
| We have been developing CAD tools that use DECwindows for the front end.
Many have "sticky" operations which continue until you select another
function. Popping the window to the front and doing the operation might
not be what the user wanted to do. Consider a window for an application
which has the function "delete" enabled. Clicking in the window could
delete a component in the window.
VWS had the "cycle" button that pushed a different window to the top. That
was one way to solve the problem. It meant you had to look at potentially
n-1 windows to get to the one you wanted.
I belive that .0 was concerned about getting the window you wanted to the
top without having to worry about operations that were enabled in that
window. If only part of the window is visible, (like the lower half), then
it would be nice to figure out an easy way to get that window to the top.
|
| Well, you can click on the border, or you can double-click on its icon in the
icon box (for either DWM or MWM, it turns out [if you have mwm customized to have
an icon box that is]).
I, too, think you should think about a different user interface. Single click
means select something. Double click means do something.
Burns
|