Avoid emitting excessive changed signals

If the layer shell surface properties don't change, don't emit the
changed signals and issue wayland requests.
This commit is contained in:
Vlad Zahorodnii 2023-05-17 14:57:09 +03:00
parent 5e88f449b0
commit 9750fd8be7

View file

@ -47,8 +47,10 @@ Window::~Window()
void Window::setAnchors(Anchors anchors) void Window::setAnchors(Anchors anchors)
{ {
d->anchors = anchors; if (d->anchors != anchors) {
Q_EMIT anchorsChanged(); d->anchors = anchors;
Q_EMIT anchorsChanged();
}
} }
Window::Anchors Window::anchors() const Window::Anchors Window::anchors() const
@ -58,8 +60,10 @@ Window::Anchors Window::anchors() const
void Window::setExclusiveZone(int32_t zone) void Window::setExclusiveZone(int32_t zone)
{ {
d->exclusionZone = zone; if (d->exclusionZone != zone) {
Q_EMIT exclusionZoneChanged(); d->exclusionZone = zone;
Q_EMIT exclusionZoneChanged();
}
} }
int32_t Window::exclusionZone() const int32_t Window::exclusionZone() const
@ -69,8 +73,10 @@ int32_t Window::exclusionZone() const
void Window::setMargins(const QMargins &margins) void Window::setMargins(const QMargins &margins)
{ {
d->margins = margins; if (d->margins != margins) {
Q_EMIT marginsChanged(); d->margins = margins;
Q_EMIT marginsChanged();
}
} }
QMargins Window::margins() const QMargins Window::margins() const
@ -80,8 +86,10 @@ QMargins Window::margins() const
void Window::setKeyboardInteractivity(KeyboardInteractivity interactivity) void Window::setKeyboardInteractivity(KeyboardInteractivity interactivity)
{ {
d->keyboardInteractivity = interactivity; if (d->keyboardInteractivity != interactivity) {
Q_EMIT keyboardInteractivityChanged(); d->keyboardInteractivity = interactivity;
Q_EMIT keyboardInteractivityChanged();
}
} }
Window::KeyboardInteractivity Window::keyboardInteractivity() const Window::KeyboardInteractivity Window::keyboardInteractivity() const
@ -91,8 +99,10 @@ Window::KeyboardInteractivity Window::keyboardInteractivity() const
void Window::setLayer(Layer layer) void Window::setLayer(Layer layer)
{ {
d->layer = layer; if (d->layer != layer) {
Q_EMIT layerChanged(); d->layer = layer;
Q_EMIT layerChanged();
}
} }
void Window::setScope(const QString &scope) void Window::setScope(const QString &scope)