System/Version info
```sh
> hyprctl systeminfo
Hyprland, built from branch at commit e4d09aa3a9de9a9e71c10bf4b6800585b3db9a4c ().
Date: 2024-06-25
Tag: , commits: e4d09aa3a9de9a9e71c10bf4b6800585b3db9a4c
flags: (if any)
System Information:
System name: Linux
Node name: msi
Release: 6.6.35
Version: #1-NixOS SMP PREEMPT_DYNAMIC Fri Jun 21 12:38:50 UTC 2024
GPU information:
07:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1638] (rev c5) (prog-if 00 [VGA controller])
os-release: ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.11.20240624.2893f56"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.11 (Vicuna)"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.11 (Vicuna)"
VERSION_CODENAME=vicuna
VERSION_ID="24.11"
plugins:
hy3 by outfoxxed ver 0.1
```
Description
When a qt popup is resized, it uses xdg_surface::set_window_geometry to change the size of the surface (or maybe just attaching a new resized dmabuf? not sure). While the surface resizes visually the input region breaks and becomes centered in the popup.
In fc72df8e58bc127442a245f2f29a3246acf77cce this broke, though it has some additional annoyances that were fixed so I'd probably debug it against a more recent version.
Regression?
Yes
System Info and Version
System/Version info
```sh > hyprctl systeminfo Hyprland, built from branch at commit e4d09aa3a9de9a9e71c10bf4b6800585b3db9a4c (). Date: 2024-06-25 Tag: , commits: e4d09aa3a9de9a9e71c10bf4b6800585b3db9a4c flags: (if any) System Information: System name: Linux Node name: msi Release: 6.6.35 Version: #1-NixOS SMP PREEMPT_DYNAMIC Fri Jun 21 12:38:50 UTC 2024 GPU information: 07:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1638] (rev c5) (prog-if 00 [VGA controller]) os-release: ANSI_COLOR="1;34" BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues" BUILD_ID="24.11.20240624.2893f56" DOCUMENTATION_URL="https://nixos.org/learn.html" HOME_URL="https://nixos.org/" ID=nixos IMAGE_ID="" IMAGE_VERSION="" LOGO="nix-snowflake" NAME=NixOS PRETTY_NAME="NixOS 24.11 (Vicuna)" SUPPORT_URL="https://nixos.org/community.html" VERSION="24.11 (Vicuna)" VERSION_CODENAME=vicuna VERSION_ID="24.11" plugins: hy3 by outfoxxed ver 0.1 ```Description
When a qt popup is resized, it uses xdg_surface::set_window_geometry to change the size of the surface (or maybe just attaching a new resized dmabuf? not sure). While the surface resizes visually the input region breaks and becomes centered in the popup.
In fc72df8e58bc127442a245f2f29a3246acf77cce this broke, though it has some additional annoyances that were fixed so I'd probably debug it against a more recent version.
How to reproduce
Use the following quickshell tester (guaranteed to work with https://git.outfoxxed.me/outfoxxed/quickshell/commit/d7149d564117e3cbb8075ecdc39b073b8f11d32e).
quickshell -p tester.qml
.tester.qml
```qml import Quickshell import QtQuick import QtQuick.Controls ShellRoot { FloatingWindow { id: fw Button { anchors.centerIn: parent text: "show popup" onClicked: popup.visible = !popup.visible } PopupWindow { id: popup parentWindow: fw relativeX: parentWindow.width / 2 relativeY: parentWindow.height width: 200 height: 200 Rectangle { anchors.fill: parent color: ma.containsMouse ? "red" : "white" MouseArea { id: ma anchors.fill: parent hoverEnabled: true Button { text: "bigger" onClicked: { popup.width += 100 popup.height += 100 } } } } } } } ```Crash reports, logs, images, videos
https://github.com/hyprwm/Hyprland/assets/83010835/311b05e0-f65f-4f1c-bbba-7a5665cddbf1
Relevant WAYLAND_DEBUG snippet
``` [3026936.247] wl_pointer@24.button(102233, 33579265, 272, 0) [3026936.289] wl_pointer@24.frame() [3026936.509] -> wp_viewport@52.set_destination(300, 200) [3026936.532] -> xdg_surface@49.set_window_geometry(0, 0, 300, 200) [3026936.568] -> wp_viewport@52.set_destination(300, 300) [3026936.579] -> xdg_surface@49.set_window_geometry(0, 0, 300, 300) [3026936.919] -> wl_surface@43.frame(new id wl_callback@54) [3026937.068] wl_buffer@58.release() [3026937.088] -> wl_buffer@58.destroy() [3026937.098] wl_callback@57.done(102232) [3026937.727] -> zwp_linux_dmabuf_v1@32.create_params(new id zwp_linux_buffer_params_v1@57) [3026937.762] -> zwp_linux_buffer_params_v1@57.add(fd 26, 0, 0, 1536, 33554432, 412531459) [3026937.771] -> zwp_linux_buffer_params_v1@57.add(fd 27, 1, 589824, 512, 33554432, 412531459) [3026937.776] -> zwp_linux_buffer_params_v1@57.create_immed(new id wl_buffer@56, 300, 300, 875713089, 0) [3026937.780] -> zwp_linux_buffer_params_v1@57.destroy() [3026937.784] -> wl_surface@43.attach(wl_buffer@56, 0, 0) [3026937.787] -> wl_surface@43.damage(0, 0, 2147483647, 2147483647) [3026937.791] -> wl_surface@43.commit() [3026937.794] -> wl_display@1.sync(new id wl_callback@61) [3026938.160] wl_display@1.delete_id(58) [3026938.166] wl_display@1.delete_id(57) [3026938.169] wl_display@1.delete_id(61) [3026948.647] wl_display@1.delete_id(54) [3026948.654] wl_callback@54.done(33579277) [3026948.683] -> wl_surface@43.frame(new id wl_callback@54) [3026948.711] wl_buffer@55.release() [3026948.716] -> wl_buffer@55.destroy() [3026948.721] wl_callback@61.done(102233) [3026948.725] -> zwp_linux_dmabuf_v1@32.create_params(new id zwp_linux_buffer_params_v1@61) [3026948.745] -> zwp_linux_buffer_params_v1@61.add(fd 26, 0, 0, 1536, 33554432, 412531459) [3026948.753] -> zwp_linux_buffer_params_v1@61.add(fd 27, 1, 589824, 512, 33554432, 412531459) [3026948.758] -> zwp_linux_buffer_params_v1@61.create_immed(new id wl_buffer@57, 300, 300, 875713089, 0) [3026948.761] -> zwp_linux_buffer_params_v1@61.destroy() [3026948.765] -> wl_surface@43.attach(wl_buffer@57, 0, 0) [3026948.769] -> wl_surface@43.damage(0, 0, 2147483647, 2147483647) [3026948.774] -> wl_surface@43.commit() [3026948.778] -> wl_display@1.sync(new id wl_callback@58) [3026948.988] wl_display@1.delete_id(55) [3026949.000] wl_display@1.delete_id(61) ```no, this type of resize doesn't go through xdg positioner