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)