Wayland and window position/size

Igor Korot ikorot01 at gmail.com
Wed May 26 03:10:38 UTC 2021


Hi, Carsten,

On Tue, May 25, 2021 at 8:51 PM Carsten Haitzler <raster at rasterman.com> wrote:
>
> On Tue, 25 May 2021 16:24:30 -0500 Igor Korot <ikorot01 at gmail.com> said:
>
> > Hi, list,
> > Couple of questions about Wayland, since more and more distros switching ;-)
> >
> > If I understand correctly window positioning/sizing is based on the
> > compositor/window content.
> >
> > 1. Is there a way to select where each individual program will start?
>
> The compositor decides this. It may place it randomly, somewhere intelligently
> with minimum overlap, relative to some parent surface/window or perhaps it
> might store the position it saw that named window at last and restore it to
> that position. The compositor may expose such settings to the user, or maybe
> not. It's between the compositor and the user and the idea is that it will be
> consistent with all windows.

OK, so there is no "per-program" settings anywhere.

Understood.

>
> > 1a. If not - will there be one?
> > 2. I am working on the program that should start up with the empty
> > window - only the toolbar
> > and the very basic menu.
> > Then when the user chooses some action from the toolbar some child
> > windows appear.
> > I think such program will always start up with very minimal size,
> > basically the size of the toolbar
> > under Wayland. Am I wrong?
>
> That is up to your program. It could create a very wide and narrow window with
> just menu bar and toolbar. That's perfectly possible - the buffer you provide
> will determine this. Generally for most applications the toolkit you use will
> handle all of this for you, unless you are making your own toolkit or you are
> nutty enough to avoid a toolkit entirely and try and write everything "bare
> metal" in which case essentially your app includes a toolkit and thus the work
> that toolkits normally do becomes your work.

Well, I'm using wxWidgets (cross-platform library) with GTK underneath.
But that should be irrelevant to the problem.

My understanding is that the size of the TLW is determined by the content of it
I can't just call window->SetSize( 100, 100 ); and the window will
obey my command
and will be created with the size 100x100.
Or can I?

>
> > 3. How can one write a cross-platform application that should behave
> > the same on the different
> > platforms when the developer doesn't have control over window position/size.
>
> Don't try and position a window. I write applications and I simply don't go
> positioning the window in my own code. I leave it to the system to decide. It
> just so happens my apps work on multiple platforms too because the toolkit
> handles that. I expect the system to provide some sensible window positioning
> of its own. I know full well that this falls apart quickly unless you spend a
> lot of effort doing things like adapting the position you want to the current
> resolution, and avoiding putting your window under other obstacles like
> panels/taskbars and other elements. I just let the WM/compositor handle that.
> If a user has a tiling WM/compositor or a WM capable of tiling modes then
> trying to position your window instantly falls apart and assuming/expecting
> this works is a recipe for pain.

I understand.
As I said I believe that the window sizing is based on the window content.
So all I am doing is calling:

window->Maximize();

which actually works on all 3 major platforms (Windows, *nix+X, OSX).

However, my understanding is that it will not work under Wayland.

Am I being wrong? For both points?

>
> > 4. How can a developer write a program that should connect to the database?
>
> That has nothing to do with Wayland or display systems in general - that's your
> job. What kind of database, where it is, how it's dealt with is up to you. A
> separate problem entirely.

Actually it does.
Most DBMSes provide dialogs for requesting user ID and password.
Whether it is ODBC or a native library call.

Now those dialogs are usually centered on screen (at least on Windows w/ODBC).
And I think the same can be said about OSX.

Now the user would be very confused when such dialog will appear in
the corner of the screen.

Wouldn't you?

>
> > 5. I know there was a plan to respect a save/restore window
> > positioning/size. Is it implemented?
>
> This is up to compositors to do. Your job is to provide a name for your
> window(s) in Wayland so a compositor can implement this sanely.

Name of the window or a name of the application?

Can you collaborate a little?

>
> > 6. How complete is Wayland API currently in terms of window
> > positioning/sizing?
>
> Positioning - Don't position and Wayland discourages it by not having such an
> API. Sizing - do whatever you like.

It just discourages it, so it is not completely impossible, correct?

Thank you.

>
> > Thank you.
> > _______________________________________________
> > wayland-devel mailing list
> > wayland-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/wayland-devel
> >
>
>
> --
> ------------- Codito, ergo sum - "I code, therefore I am" --------------
> Carsten Haitzler - raster at rasterman.com
>


More information about the wayland-devel mailing list