Re: screen/display switching
- From: Philip Blundell <pb nexus co uk>
- To: wm-spec-list gnome org
- Cc: James Willcox <jwillcox gnome org>
- Subject: Re: screen/display switching
- Date: 14 Mar 2003 10:31:31 +0000
> On Thu, Mar 13, 2003 at 09:18:41PM -0500, James Willcox wrote:
> > In gtk+ 2.2, multi-head support was added, giving developers the ability
> > to move windows to different screens or displays on-the-fly. I think it
> > would be great if we could push this ability up to users. For me, the
> > most common use for this would be to move windows between screens since
> > I use a multi-head setup w/o xinerama. Currently, there is no way to do
> > this (unless the app has something specifically built-in to allow it).
FWIW, we've been experimenting with something along these lines within
the GPE project. I've attached a description of the current protocol we
use. There is some example code in our CVS tree if you want to play
with it; see links from gpe.handhelds.org for details on accessing that
stuff. gpe/base/teleport is the client program that initiates display
changes, and gpe/base/libdm is the library that applications link with
when they want to be migration-aware.
p.
A window capable of migration sets a property _GPE_DISPLAY_CHANGE on
itself. Its type is STRING and it is initially set to zero length.
Changing this property to a non-empty value signals a request for the
application to migrate. The property has the format "TARGET-DISPLAY
AUTH-TYPE AUTH-DATA", where TARGET-DISPLAY is the desired destination
in "host:display.screen" notation; AUTH-TYPE is the authentication
method in use (see below); and AUTH-DATA is the appropriate
authentication information.
Following successful migration, the migrated window should reset its
_GPE_DISPLAY_CHANGE property to zero length, indicating that it is
safe to request further migrations.
The outcome of the migration attempt is signalled by sending a
ClientMessage of type _GPE_DISPLAY_CHANGE to the original display's
root window with event mask SubstructureNotify and payload as follows:
l[0] window handle for which status is being reported
l[1] status code, one of:
0 success
1 unable to connect to display
2 requested screen does not exist
3 invalid authentication
4 indeterminate failure
Only one authentication scheme, RSA-SIG, is currently defined.
In this scheme, the requestor reads a challenge string from the
_GPE_DISPLAY_CHANGE_RSA_CHALLENGE property on the window to be
migrated and computes the PKCS-1 signature of the target display name,
followed by a NUL delimeter, followed by the challenge string. The
authentication data string consists of the key ID used for signature,
followed by a space, followed by the signature text.
--
Should all windows owned by one application be migrated together? If
so, does this need specific protocol support, or should the requesting
application simply deal with each one individually?
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]