new xwayland protocol
Bill Spitzak
spitzak at gmail.com
Fri Sep 14 12:01:23 PDT 2012
Pekka Paalanen wrote:
>> What is going to happen is Wayland clients are going to use the X api
>> just to get this information.
>
> No, that is impossible.
I do believe it will be impossible to use the Wayland API and be able to
set window x/y positions by somehow messing with the X api. My worry is
that clients will actually skip using Wayland and use X just because it
gives them this ability.
>> I can tell you right now that our own
>> software is not going to be usable unless we can save window layouts,
>
> Saving layouts will be solved differently than in X.
>
>> and we are interested in portability to Windows and OS/X where the way
>> to place windows on various outputs is to use the coordinates, not an id
>> for the output.
>
> I don't understand what you mean by portability here. You cannot run an
> X app in Windows without an X server, either.
Both Linux and windows support text files that say something like this
(we wrote the code that reads/writes these files):
window_position: 10,30,400,500
It is true that after this file is parsed different calls are used for X
and Wayland and WIN32. But at the moment both X and WIN32 have calls
that take two integers called the x and y position, making this
portable. The lack of this on Wayland is a problem.
The best I can do with Wayland right now is make up an x/y position
based on the upper-left corner of the output the window is on (at least
I believe this info is available). Another alternative is to write the
output name to the file and do the translation on the Windows and Xlib
backends, but I very much doubt that idea will be accepted.
> Apparently you have forgot all about, say, dome projectors or virtual
> displays, where the output is a half sphere. Good luck mapping Cartesian
> global coordinates there in any meaningful way.
Seems like there are two coordinates of finite range, thus fitting into
a rectangle that can be made to not overlap the rectangles for any other
output. For instance you could use a square where .5,.5 is the north
pole, and the four sides are tangent to the equator. You could also use
cylindrical coordinates where there is a square and one edge is the
equator, one edge is scaled to 0 length at the pole, and the two other
edges touch.
The only requirement for the transformation from window to screen is
that a unique transformation is chosen for a given x/y position and
window size. There is no need for it to be affine.
If you had a display that was actually a 3D volume, so that there are
more than 2 independent coordinates, then I could see a problem. I don't
think we need to worry about that just yet, however.
More information about the wayland-devel
mailing list