27    , m_panelSurface(panelSurface)
 
   44    kwinApp()->inputMethod()->setPanel(
this);
 
 
   47void InputPanelV1Window::showOverlayPanel()
 
   67    m_virtualKeyboardShouldBeShown = 
true;
 
 
   73    m_virtualKeyboardShouldBeShown = 
false;
 
 
   79void InputPanelV1Window::reposition()
 
  101        QRectF geo = m_windowGeometry;
 
  102        geo.moveLeft(availableArea.left() + (availableArea.width() - geo.width()) / 2);
 
  103        geo.moveBottom(availableArea.bottom());
 
  110        QRect cursorRectangle;
 
  112        if (textInputV1 && textInputV1->isEnabled() && textInputV1->surface() == textInputSurface) {
 
  113            cursorRectangle = textInputV1->cursorRectangle();
 
  116        if (textInputV2 && textInputV2->isEnabled() && textInputV2->surface() == textInputSurface) {
 
  117            cursorRectangle = textInputV2->cursorRectangle();
 
  120        if (textInputV3 && textInputV3->isEnabled() && textInputV3->surface() == textInputSurface) {
 
  121            cursorRectangle = textInputV3->cursorRectangle();
 
  124            cursorRectangle.translate(textWindow->bufferGeometry().topLeft().toPoint());
 
  127            m_windowGeometry = QRectF(QPointF(0, 0), 
surface()->
size());
 
  130            QRectF popupRect(
popupOffset(cursorRectangle, Qt::BottomEdge | Qt::LeftEdge, Qt::RightEdge | Qt::BottomEdge, m_windowGeometry.size()), m_windowGeometry.size());
 
  132            if (popupRect.left() < screen.left()) {
 
  133                popupRect.moveLeft(screen.left());
 
  135            if (popupRect.right() > screen.right()) {
 
  136                popupRect.moveRight(screen.right());
 
  138            if (popupRect.top() < screen.top() || popupRect.bottom() > screen.bottom()) {
 
  139                auto flippedPopupRect =
 
  140                    QRectF(
popupOffset(cursorRectangle, Qt::TopEdge | Qt::LeftEdge, Qt::RightEdge | Qt::TopEdge, m_windowGeometry.size()), m_windowGeometry.size());
 
  143                if (flippedPopupRect.top() >= screen.top() && flippedPopupRect.bottom() <= screen.bottom()) {
 
  144                    popupRect.moveTop(flippedPopupRect.top());
 
  147            if (popupRect.top() < screen.top()) {
 
  148                popupRect.moveTop(screen.top());
 
  150            if (popupRect.bottom() > screen.bottom()) {
 
  151                popupRect.moveBottom(screen.bottom());
 
  162    m_panelSurface->disconnect(
this);
 
  163    m_panelSurface->surface()->disconnect(
this);
 
 
  181    return QRectF(
rect.topLeft() - m_windowGeometry.topLeft(), 
surface()->
size());
 
 
  189void InputPanelV1Window::handleMapped()
 
  194void InputPanelV1Window::maybeShow()
 
  206#include "moc_inputpanelv1window.cpp" 
SurfaceInterface * focusedTextInputSurface() const
TextInputV1Interface * textInputV1() const
TextInputV2Interface * textInputV2() const
TextInputV3Interface * textInputV3() const
void inputChanged(const QRegion &)
void aboutToBeDestroyed()
Window * findWindow(const SurfaceInterface *surface) const
SeatInterface * seat() const
void removeWindow(Window *c)
void updateGeometry(const QRectF &rect)
void moveResize(const QRectF &rect)
SurfaceInterface * surface() const
void setSkipTaskbar(bool set)
bool readyForPainting() const
void setHidden(bool hidden)
void setSkipPager(bool set)
void setSkipSwitcher(bool set)
QRectF clientArea(clientAreaOption, const Output *output, const VirtualDesktop *desktop) const
Output * activeOutput() const
static Workspace * self()
WaylandServer * waylandServer()
QPointF popupOffset(const QRectF &anchorRect, const Qt::Edges anchorEdge, const Qt::Edges gravity, const QSizeF popupSize)