Proper virtual keyboard overlay support
Currently showing the keyboard animates its height as it opens, and KWin constantly resizes the current window at the same time to adjust for the height. This can be very stuttery and laggy, even on higher end devices (OnePlus 6).
KWin changes:
-
Disable resizing for text-input-v2 clients -
Keep resizing enabled for text-input-v3 clients (does not support relaying keyboard overlay area)
Frameworks changes:
We need to implement proper in-application support for virtual keyboards (in Kirigami) during the 5.23 cycle, so that the keyboard can be overlayed on top of the app, rather than needing to resize its window. Currently there is basic support by adding a bottom margin that is the height of the keyboard to the window when the keyboard is shown. There are still issues however:
Cases like angelfish, where readjusting the bottom margin of the window causes extreme lag (resizing the webview) will need to be addressed, as it isn't necessary to do that when opening the search bar drawer.
There are other issues with applications (GTK/Telegram Desktop) that do not support keyboards at all. GTK apps rely on text-input-v3 so they will still get resizing. Qt apps though that don't support keyboard overlay will be an issue though...
KWin experiment, after disabling keyboard resize: