From b94463a277bdeab16b9dd5fab8b594a252c33b1b Mon Sep 17 00:00:00 2001 From: ericek111 Date: Sat, 31 Oct 2026 00:29:48 +0100 Subject: [PATCH] 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 --- src/main.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index d183a87..4b441a1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -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(); }