178 displayPrivate->
outputs.append(
this);
181 d->doneTimer.setSingleShot(
true);
182 d->doneTimer.setInterval(0);
183 connect(&d->doneTimer, &QTimer::timeout,
this, [
this]() {
184 const auto resources = d->resourceMap();
185 for (const auto &resource : resources) {
186 d->sendDone(resource);
190 d->name = handle->name();
191 d->description = handle->description();
192 d->transform = handle->transform();
193 d->manufacturer = handle->manufacturer();
194 d->model = handle->model();
195 d->physicalSize = handle->physicalSize();
196 d->globalPosition = handle->geometry().topLeft();
197 d->scale = std::ceil(handle->scale());
198 d->modeSize = handle->modeSize();
199 d->refreshRate = handle->refreshRate();
200 d->subPixel = handle->subPixel();
203 const QPoint position = d->handle->geometry().topLeft();
204 if (d->globalPosition != position) {
205 d->globalPosition = position;
206 const auto resources = d->resourceMap();
207 for (const auto &resource : resources) {
208 d->sendGeometry(resource);
214 connect(handle, &Output::scaleChanged,
this, [
this]() {
215 const int scale = std::ceil(d->handle->scale());
216 if (d->scale != scale) {
218 const auto resources = d->resourceMap();
219 for (
const auto &resource : resources) {
220 d->sendScale(resource);
226 connect(handle, &Output::transformChanged,
this, [
this]() {
227 const OutputTransform transform = d->handle->transform();
228 if (d->transform != transform) {
229 d->transform = transform;
230 const auto resources = d->resourceMap();
231 for (const auto &resource : resources) {
232 d->sendGeometry(resource);
238 connect(handle, &Output::currentModeChanged,
this, [
this]() {
239 const QSize size = d->handle->modeSize();
240 const int refreshRate = d->handle->refreshRate();
241 if (d->modeSize != size || d->refreshRate != refreshRate) {
243 d->refreshRate = refreshRate;
244 const auto resources = d->resourceMap();
245 for (const auto &resource : resources) {
246 d->sendMode(resource);
293QList<wl_resource *> OutputInterface::clientResources(wl_client *client)
const
295 const auto outputResources = d->resourceMap().values(client);
296 QList<wl_resource *> ret;
297 ret.reserve(outputResources.count());
299 for (OutputInterfacePrivate::Resource *resource : outputResources) {
300 ret.append(resource->handle);