m_dragSurface = surface;
m_dragOffset = local;
} else {
- surface->sendMousePressEvent(local.x(), local.y(), e->button());
+ surface->sendMousePressEvent(local, e->button());
}
}
}
}
QPoint local;
if (WaylandSurface *surface = surfaceAt(e->pos(), &local))
- surface->sendMouseMoveEvent(local.x(), local.y());
+ surface->sendMouseMoveEvent(local);
}
void mouseReleaseEvent(QMouseEvent *e) {
}
QPoint local;
if (WaylandSurface *surface = surfaceAt(e->pos(), &local))
- surface->sendMouseReleaseEvent(local.x(), local.y(), e->button());
+ surface->sendMouseReleaseEvent(local, e->button());
}
void keyPressEvent(QKeyEvent *event)
}
}
+void Surface::setInputFocus()
+{
+ Q_D(Surface);
+ ulong time = d->compositor->currentTimeMsecs();
+
+ wl_input_device_set_keyboard_focus(d->compositor->defaultInputDevice(), base(), time);
+ wl_input_device_set_pointer_focus(d->compositor->defaultInputDevice(), base(), time, 0, 0, 0, 0);
+}
+
}
void sendKeyPressEvent(uint code);
void sendKeyReleaseEvent(uint code);
+ void setInputFocus();
WaylandSurface *handle() const;
protected:
return d->surface;
}
-void WaylandSurface::sendMousePressEvent(int x, int y, Qt::MouseButton button)
+void WaylandSurface::sendMousePressEvent(const QPoint &pos, Qt::MouseButton button)
{
Q_D(WaylandSurface);
- d->surface->sendMousePressEvent(x,y,button);
+ d->surface->sendMousePressEvent(pos.x(), pos.y(), button);
}
-void WaylandSurface::sendMouseReleaseEvent(int x, int y, Qt::MouseButton button)
+void WaylandSurface::sendMouseReleaseEvent(const QPoint &pos, Qt::MouseButton button)
{
Q_D(WaylandSurface);
- d->surface->sendMouseReleaseEvent(x,y,button);
+ d->surface->sendMouseReleaseEvent(pos.x(), pos.y(), button);
}
-void WaylandSurface::sendMouseMoveEvent(int x, int y)
+void WaylandSurface::sendMouseMoveEvent(const QPoint &pos)
{
Q_D(WaylandSurface);
- d->surface->sendMouseMoveEvent(x,y);
+ d->surface->sendMouseMoveEvent(pos.x(), pos.y());
}
void WaylandSurface::sendKeyPressEvent(uint code)
d->surface->sendKeyReleaseEvent(code);
}
+void WaylandSurface::setInputFocus()
+{
+ Q_D(WaylandSurface);
+ d->surface->setInputFocus();
+}
+
GLuint texture() const;
#endif
- void sendMousePressEvent(int x, int y, Qt::MouseButton button);
- void sendMouseReleaseEvent(int x, int y, Qt::MouseButton button);
- void sendMouseMoveEvent(int x, int y);
+ void sendMousePressEvent(const QPoint &pos, Qt::MouseButton button);
+ void sendMouseReleaseEvent(const QPoint &pos, Qt::MouseButton button);
+ void sendMouseMoveEvent(const QPoint &pos);
void sendKeyPressEvent(uint code);
void sendKeyReleaseEvent(uint code);
+ void setInputFocus();
+
Wayland::Surface *handle() const;
signals: