https://bugs.kde.org/show_bug.cgi?id=499256

Alberto Salvia Novella <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|1                           |0
         Resolution|UPSTREAM                    |---
             Status|RESOLVED                    |REPORTED

--- Comment #25 from Alberto Salvia Novella <[email protected]> ---
The issue is not solvable in each application code. This is a GTK Wayland
back-end limitation.

The window is made non-resizable via
`gtk_window_set_resizable(GTK_WINDOW(window), FALSE)`. GTK translates this into
the appropriate `_MOTIF_WM_HINTS`.

But GTK itself doesn't actually send `set_max_size` to the compositor until it
maps the surface, which happens later.

But GTK3 on Wayland doesn't flush set_max_size to the compositor before the
first commit regardless of when you call gtk_window_set_geometry_hints() on the
application's code.

GTK3's Wayland back-end queues protocol requests and only sends them at
realize/map time, which is after the initial commit.

The correct `xdg-shell` sequence must be:

```
get_xdg_surface
get_toplevel
set_max_size(w, h) ← constrain here
wl_surface.commit() ← only then
```

Sadly I cannot report this to the GTK bugtracker myself. They banned me years
ago, after (politely) complaining about how they just ignore user requests.

Someone else needs to report this, and paste the link here.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to