Dragging Docks and Tugging Toolbars on Wayland

A tug boat towing docks and a toolbar Most of our desktop applications have a toolbar, sometimes they even have multiple toolbars next to or stacked on top of each other. More complex desktop applications such as Krita, Kdenlive or LabPlot often consist of multiple sub-windows, docks, tabbed views, etc. Docks and toolbars can be undocked, moved around and arranged freely and when dragged over a part of a window snap back into the window. This allows the user to customize their work environment to their liking and needs. This worked fine on X because it lets you do anything, this post explores the situation on Wayland.


This is a companion discussion topic for the original entry at https://blog.david-redondo.de/kde/wayland/qt/2023/08/08/xdg-toplevel-drag.html
9 Likes

The dragging thing is one of the things that I dislike about using kde on wayland. I think this would be beneficial for professional apps such as QCad or Qgis, if you move the panel to the wrong spot, it becomes its own window, stealing focus and making impossible to redock. But I don’t know if this should be implemented as a part of the wayland protocol or some xdg-desktop-portal, to clarify, I’m not an expert.

Impressive work, David. You’re amazing!

1 Like

That’s exactly why we want to fix it, otherwise we cannot recommend the wayland session by default.

But I don’t know if this should be implemented as a part of the wayland protocol or some xdg-desktop-portal, to clarify, I’m not an expert.

Wayland is the correct layer for this.

2 Likes

Thanks you for the kind words!

Sounds good. Thanks for this implementation, I can’t wait to make my own layouts.

Thank you for this @davidre . Its exactly things like this that have kept me from moving to Wayland. I guess this will not solve the problem for applications that do not implement the protocol though? I’m thinking of Jetbrains IDEA which uses Java (and is therefore X11 based, at least for the foreseeable future).

Another problem related to Windows not being able to position themselves in Wayland is that when an application like Chrome restarts, it is unable to position and size its windows in the same way they were before.

This is extremely problematic for applications like browsers and IDEs which generally have multiple windows open, and usually carefully positioned and sized by the user. See 15329 – Save and remember positions of all windows.

Does this kind of thing require some kind of new Wayland protocol extension as well? Or will Plasma be able to take over this capability for applications? I’m not seeing any activity on the bug report linked above, which is interestingly 23 years old – because X11 wouldn’t restore window positions either, but at least it didn’t prevent applications from implementing it themselves.