https://bugs.kde.org/show_bug.cgi?id=520678

            Bug ID: 520678
           Summary: "hide" button does nothing when text field loses focus
                    while keyboard is visible
    Classification: Plasma
           Product: Plasma Keyboard
      Version First unspecified
       Reported In:
          Platform: Fedora RPMs
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
  Target Milestone: ---

DESCRIPTION
"hide" button does nothing when text field loses focus while keyboard is
visible


Session type: Wayland
OS: 

STEPS TO REPRODUCE
1. Tap a text field — keyboard appears
2. Tap somewhere outside the text field (keyboard stays visible)
3. Press the hide button (↓ arrow) on the keyboard


OBSERVED RESULT
nothing happens, keyboard stays on screen

EXPECTED RESULT
keyboard hides  

SOFTWARE/OS VERSIONS
Package: plasma-keyboard-6.6.4-1.fc42.x86_64  
Operating System: Fedora 42 (Kinoite)  
KDE Plasma Version: 6.6.4
KDE Frameworks Version: 6.25.0
Qt Version: 6.10.2

ADDITIONAL INFORMATION

Some digging with LLM:

KWin exposes two properties for the virtual keyboard over DBus:

- `active` — whether a text input context is currently active (i.e. an app has
a focused text field)
- `visible` — whether the keyboard surface is actually drawn on screen

When you tap outside the text field, `active` goes `false` but `visible` stays
`true`. The keyboard remains on screen, but the text-input protocol channel is
now closed.

Pressing the hide button calls `InputContext.priv.hideInputPanel()` inside Qt
Virtual Keyboard. That call travels through the Wayland text-input protocol —
but since `active` is already `false`, there's no live context to route it
through. KWin never receives the hide request, so `visible` stays `true`.

DBus state when stuck (queried via `qdbus-qt6 org.kde.keyboard
/VirtualKeyboard`):

```
active: false        ← text input context already gone
visible: true        ← but keyboard is still drawn
enabled: true
available: true
activeClientSupportsTextInput: true
```

Trying to set `active = false` explicitly via DBus has no effect on `visible`.  
Toggling `enabled = false` *does* hide it (visible drops to false), which
confirms the keyboard window itself is fine — it's just not receiving the hide
signal through the normal path.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to