Details
Description
In the QtCreator editor, a yellowish popup appears with information about classes or variables when the pointer hovers over them. During this popup display, the caret cursor is replaced by the default pointer cursor. However, after moving the pointer away from the popup or dismissing it, the caret cursor is not restored. This issue is specific to compositors using the xdg_decoration protocol with server-side decorations. The problem seems to be related to how QtCreator handles restoring the caret cursor based on the pointer location, which may differ when the editor's toplevel lacks client-side decorations. The debug output with WAYLAND_DEBUG enabled reveals that QtCreator only issues a set_cursor request for the default pointer cursor and fails to call it again to restore the caret cursor. On the other hand, when client-side decorations are enabled, QtCreator eventually makes another call to restore the caret cursor.
I tested it on Weston, Sway and in my own compositor, with both SSD enabled and disabled.