Skip to content

Support using LayerShell as input panel client

Arjen Hiemstra requested to merge work/ahiemstra/inputpanellayershell into master

InputPanelV1Client is unfortunately rather limited. Most importantly, it does not provide any way to control the positioning of the client other than "overlay" or "toplevel". This creates issues when we need to do things like moving the input panel so it doesn't overlap plasma panels. Fortunately, the layer-shell protocol does provide all that and it seems more suitable for the "toplevel" type of keyboard in general.

This changes InputMethod so it does not care too much about which type of client we use. It also changes layer shell client to interpret clients with the scope set to "input-panel" as actual input panels.

Unfortunately, just switching to layer-shell doesn't fix all our problems. The second commit makes InputMethod reposition and resize the input client when it's using layer-shell to account for Plasma panels. To me this seems the most reasonable short-term solution, as I can see no way to make layer-shell clients handle that information without introducing a circular dependency and porting Plasma itself to use layer-shell for panels is also a lot of work.

Merge request reports