std::for_each(resMap.begin(), resMap.end(), func);
}
+void DSWaylandKeyboardPrivate::__addClient(struct ::wl_client *wlClient, uint32_t id, int version)
+{
+ wl_keyboard::add(wlClient, id, version);
+
+ if (__focusSurface && __focusSurface->hasResource())
+ {
+ DSWaylandClient *waylandClient = __focusSurface->getClient();
+ if (waylandClient && (waylandClient->wlClient() == wlClient))
+ {
+ DSLOG_INF("DSWaylandKeyboardPrivate", "Send enter to focusSurface(%p)", __focusSurface);
+ sendEnter(__focusSurface->getWlResource());
+ }
+ }
+}
+
/* Begin Public Class Implementation */
DSWaylandKeyboard::DSWaylandKeyboard(DSWaylandSeat *seat)
: DSObject(), _d_ptr(std::make_unique<DSWaylandKeyboardPrivate>(seat, this))
DSLOG_INF("DSWaylandKeyboard", "addClient(dswlClient=%p, id=%u, version=%d", client, id, version);
- priv->add(client->wlClient(), id, version);
+ priv->__addClient(client->wlClient(), id, version);
}
void DSWaylandKeyboard::setFocus(DSWaylandSurface *waylandSurface)