Re: Window positions under wayland
On 09/08/2022 03:36, JiDe Zhang wrote: Thanks. I read https://mir-server.io/docs/window-positions-under-wayland, Is your standpoint by adding more shell protocols to support windows that behave differently rather than allowing the client to take full control window position to implement some special behavior? Agree, wayland should maintain its current design goals. --JiDe Zhang -- linuxdeepin. Note that I don't speak for the whole Wayland community, just as an implementer of one of many Wayland compositors. But yes, that's what has happened with moving from wl-shell to xdg-shell and with more specialised extensions such as xdg-foreign and wlr-layer-shell. I anticipate that where there is sufficient justification additional features will be added either by updating existing extensions or by adding new ones.
Re: Use-case when positioning a window is necessary
>And that is where positioning is necessary: to not occlude the line of text where the cursor is, and to show the documentation at a sensible place (near the cursor position). xdg-foreign will just get that window on top. You don't have any control of where on top it is, merely a child-parent relationship It will occlude or be nowhere near the cursor. xdg-foreign alone won't be a complete solution. David
[ANNOUNCE] weston 10.0.91
This is the alpha release for Weston 11.0.0. Full commit history below. Brenton DeGeer (1): rdp: Allow specifying a listener fd on the command line Daniel Stone (186): backend-drm: Rewrite zpos-sorting list insertion backend-drm: Pre-sort plane list by zpos backend-drm: Assign plane_idx by plane list order backend-drm: Don't try to use planes without GBM backend-drm: Don't try to steal other-output special planes backend-drm: Don't try to import SHM buffers as drm_fb backend-drm: Early-out for cursor plane format testing backend-drm: Early-out for too-large SHM/cursor buffers backend-drm: Early-out for non-SHM buffers in renderer-only mode backend-drm: Don't try cursor buffers for client planes backend-drm: Minor comment rewording backend-drm: Remove separate zpos_plane list backend-drm: Move cursors_are_broken test earlier backend-drm: Move renderer-only vs. scanout_plane test earlier backend-drm: Move plane-type-specific checks to switch statement backend-drm: Change cursor checks to asserts backend-drm: Move overlay vs. primary plane check earlier backend-drm: Don't try non-fullscreen views on the primary plane backend-drm: Remove unnecessary check in prepare_scanout_view backend-drm: Move IN_FENCE_FD check to common code backend-drm: Remove unused enum backend-drm: Remove unnecessary check for fb backend-drm: Don't take buffer-release reference for cursor views backend-drm: Unify overlay/primary view->plane code backend-drm: Pass paint node through to plane_state find backend-drm: Add more view-to-plane failure states debug: Show client PID in debug protocol stream tests: Add dependency on screenshooter client protocol compositor: Fix harmless potential buffer overflow pixel-formats: Add XYUV format desktop-shell: Explicitly destroy black views on shutdown shell: Rename solid_color_surface to weston_curtain shell: Rename weston_solid_color_surface to weston_curtain_params shell: Move weston_curtain_create params into the struct shell: Add alpha to weston_curtain_create desktop-shell: Fix opaque region co-ordinate confusion desktop-shell: Remove redundant geometry dirty call desktop-shell: Clean up fullscreen black view code shell: Make input capture optional for curtains desktop-shell: Reuse curtains for focus animations shell: Encapsulate weston_curtain in its own struct desktop-shell: Reuse curtains for fades Move shell-utils to its own directory test/desktop-shell: Use weston_curtain fullscreen-shell: Link with shell-utils helpers fullscreen-shell: Use weston_curtain for black view gl-renderer: Remove unnecessary dmabuf conditional gl-renderer: Remove outdated comment renderer: Add buffer to flush_damage gl-renderer: Drop unnecessary NULL check renderers: Set buffer properties earlier gl-renderer: Reject unknown-format dmabufs gl-renderer: Add hook to fill weston_buffer for EGL weston_buffer: Add type field weston_buffer: Make use of weston_buffer->type weston_buffer: Add pixel format and modifier info weston_buffer: Change y_inverted to explicit origin enum gl-renderer: Simplify surface->is_opaque scene-graph: Use weston_buffer's format/modifier info to print weston_buffer: Print more buffer information in scene-graph backend-drm: Make use of weston_buffer format and type drm-backend: Refactor unpleasant keep_buffer if tree backend-drm: More failure reasons weston_buffer: Prepare for buffer to outlive resource gl-renderer: Prepare for buffer to outlive resource weston_buffer: Hold lifetime for resource/backend usage weston_buffer: Add mode to weston_buffer_reference weston_buffer: Separate buffer release from lifetime compositor: Downgrade rather than drop buffer reference when copied weston_buffer: Add solid buffer type gl-renderer: Support solid-colour weston_buffers pixman-renderer: Support solid-colour weston_buffers noop-render: Allow solid-color buffers backend-drm: Remove Pixman conditional for keep_buffer backend-drm: Handle solid-colour buffers in state propose shell: Explicitly use solid weston_buffers libweston: Remove weston_surface_set_color desktop-shell: Delete Exposay libweston: Move renderer interface to internal header gl-renderer: Split buffer state away from surface state gl-renderer: Change surface_set_color to attach_solid gl-renderer: Move EGL buffer error checks into attach_egl gl-renderer: Don't leak EGLImages on import fail gl-renderer: Add return value to attach handlers gl-renderer: Convert attach to flat-return style gl-renderer: Remove extraneous par
Re: Use-case when positioning a window is necessary
On Tue, Aug 9 2022 at 15:46:30 +01:00:00, David Edmundson wrote: And that is where positioning is necessary: to not occlude the line of text where the cursor is, and to show the documentation at a sensible place (near the cursor position). xdg-foreign will just get that window on top. You don't have any control of where on top it is, merely a child-parent relationship It will occlude or be nowhere near the cursor. xdg-foreign alone won't be a complete solution. This sounds quite a lot like an xdg_popup; that has all the “this surface is associated with this rectangle of this other surface” infrastructure. Extending xdg-foreign to allow import of xdg_popups in addition to xdg_toplevels looks like it would fully support this use-case?