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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.