Re: Application-controlled window dragging



Hi,

Christian Hammond wrote:
The thing to keep in mind is that there are several applications that already bypass the window manager's moving logic and implement it themselves. XMMS is a good example because of how it deals with moving multiple windows simultaneously and binds windows together when they come in contact.

FWIW I think there was some past discussion (here, or maybe in bugzilla? it was years ago) of XMMS. One suggestion I remember was some kind of "glue" hints - something like "stick this window to this other window on these edges"

In any case, if you develop a prototype patch for some WMs and post the patches, that might help illustrate the impact of this proposal in terms of code complexity and maintenance headaches.

I'd strongly prefer some kind of semantic hints to an "escape hatch" though. Escape hatches are both very open to abuse, and hard for WM authors to maintain since it's unclear when to honor them or what the apps using them are trying to accomplish, so smart default behavior (or even sane behavior at all) becomes a big headache to figure out. When making a behavior decision for an "escape hatched" window, it's never clear whether it will break some apps or what, because you just don't know what those apps are doing.

App authors always want an escape hatch so they can just proceed to do their thing with no further WM involvement. But the problem is that the screen is a shared resource. The WM and the X server and associated specs are needed, along with some amount of restrictive policy, because multiple apps need to be coordinated.

So ultimately apps just can't do arbitrary things. UI decisions have been made about how the desktop as a whole works, and often if an app wants to do something really original, the desktop as a whole needs to be modified or revisited.

It's just like global keybindings; some resources (and decisions) are inherently global and can't be made by apps in isolation.

My suspicion is that an app like VMWare would strongly benefit from being designed together with the whole desktop; it is effectively an idea similar to workspaces, and is in part allocating a shared global resource (screen and keyboard) between the virtual and physical machine. In my usage of vmware, I might like to essentially have the VM be an extra workspace, for example.

Of course, since VMWare is cross-platform and not part of the desktop, this is challenging. But perhaps it could still be done - essentially hardcode the idea of a "VM manager" and "VM app" in the panel, WM, etc. and do smart things there. It could be pluggable for VMWare vs. alternatives.

I would rather have virtual-machine-specific hints than "escape hatch" hints.

Sorry to speak abstractly and philosophically, but since I don't know the concrete details in this case ;-)

Havoc



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]