Show the keyboard at startup when "Always Show" is on

The initial visibility was applied before the window listened for it, so
with "Always Show" on the controller thought it was shown while no window
existed, and neither field focus nor D-Bus Show could bring it up.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-31 00:29:48 +01:00
co-authored by Claude Opus 5.5
parent b50667e508
commit b94463a277
+3 -2
View File
@@ -114,6 +114,9 @@ void connectFieldFocus(VisibilityController &visibility, KWinInputMethod &backen
void connectVisibility(VisibilityController &visibility, KWinInputMethod &backend, const Settings &settings,
KeyboardController &controller, FloatingWindow &placement)
{
// First, so the initial state below reaches the window too.
QObject::connect(&visibility, &VisibilityController::visibleChanged, &placement,
[&](bool visible) { visible ? placement.show() : placement.hide(); });
visibility.setAlwaysVisible(settings.alwaysVisible());
QObject::connect(&settings, &Settings::alwaysVisibleChanged, &visibility,
[&] { visibility.setAlwaysVisible(settings.alwaysVisible()); });
@@ -122,8 +125,6 @@ void connectVisibility(VisibilityController &visibility, KWinInputMethod &backen
const auto updateStandalone = [&] { visibility.setStandalone(!backend.isAvailable()); };
QObject::connect(&backend, &KWinInputMethod::availableChanged, &visibility, updateStandalone);
QObject::connect(&controller, &KeyboardController::dismissRequested, &visibility, &VisibilityController::hide);
QObject::connect(&visibility, &VisibilityController::visibleChanged, &placement,
[&](bool visible) { visible ? placement.show() : placement.hide(); });
updateStandalone();
}