D18818: virtualkeyboard: resize the focused window to make room for the keyboard
David Edmundson <[email protected]>
| Newsgroups | gmane.comp.kde.devel.kwin |
|---|---|
| Message-ID | <[email protected]> |
davidedmundson added a comment.
[Wednesday, 27 February 2019] [16:40:39 GMT] <notmart> Android has actually 3 modes: resize the window, just tell the app of the area and shift the whole window up
[Wednesday, 27 February 2019] [16:40:49 GMT] <notmart> which is defined by the app
I think this makes a lot of sense, so whilst I don't think this solves everything it seems a sensible first step.
+1 to the concept of translating and resizing.
I'm not super convinced about using maximise:
What if I'm typing a password in the network manager prompt in the plasma applet? or krunner? Does it look weird?
It needs a unit test.
INLINE COMMENTS
> shell_client.cpp:904
> +
> + setGeometry(clientArea);
> workspace()->raiseClient(this);
why this?
> virtualkeyboard.cpp:156
> + }
> + m_trackedClient = waylandServer()->findAbstractClient(waylandServer()->seat()->focusedTextInputSurface());
> + m_trackedClientOriginalMaxState = m_trackedClient->maximizeMode();
m_trackedClient = t;
> virtualkeyboard.cpp:191
> +
> + connect(m_inputWindow->rootObject(), &QQuickItem::childrenRectChanged, this, &VirtualKeyboard::updateInputPanelState);
> }
If this changes whilst our text input has focus, we'll cache the wrong m_trackedClientOriginalMaxState
> virtualkeyboard.cpp:262
> + if (inputPanelHasBeenClosed && m_trackedClient) {
> + m_trackedClient->maximize(m_trackedClientOriginalMaxState);
> + m_trackedClient->setVirtualKeyboardGeometry(QRect());
I would expect these two lines need swapping, otherwise you're restoring maximise before we're adjusted the client area.
REPOSITORY
R108 KWin
REVISION DETAIL
https://phabricator.kde.org/D18818
To: mart, #plasma, #kwin, bshah, graesslin, romangg
Cc: nicolasfella, mart, kwin, davidedmundson, graesslin, jraleigh, GB_2, mkulinski, ragreen, jackyalcine, Pitel, iodelay, bwowk, ZrenBot, ngraham, alexeymin, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol