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(); }