Changeset View
Changeset View
Standalone View
Standalone View
x11client.cpp
Show First 20 Lines • Show All 2756 Lines • ▼ Show 20 Line(s) | 2756 | m_edgeRemoveConnection = connect(this, &AbstractClient::keepBelowChanged, this, [this](){ | |||
---|---|---|---|---|---|
2757 | if (!keepBelow()) { | 2757 | if (!keepBelow()) { | ||
2758 | ScreenEdges::self()->reserve(this, ElectricNone); | 2758 | ScreenEdges::self()->reserve(this, ElectricNone); | ||
2759 | } | 2759 | } | ||
2760 | }); | 2760 | }); | ||
2761 | } else { | 2761 | } else { | ||
2762 | hideClient(true); | 2762 | hideClient(true); | ||
2763 | successfullyHidden = isHiddenInternal(); | 2763 | successfullyHidden = isHiddenInternal(); | ||
2764 | 2764 | | |||
2765 | m_edgeGeometryTrackingConnection = connect(this, &X11Client::geometryChanged, this, [this, border](){ | 2765 | m_edgeGeometryTrackingConnection = connect(this, &X11Client::frameGeometryChanged, this, [this, border](){ | ||
2766 | hideClient(true); | 2766 | hideClient(true); | ||
2767 | ScreenEdges::self()->reserve(this, border); | 2767 | ScreenEdges::self()->reserve(this, border); | ||
2768 | }); | 2768 | }); | ||
2769 | } | 2769 | } | ||
2770 | 2770 | | |||
2771 | if (successfullyHidden) { | 2771 | if (successfullyHidden) { | ||
2772 | ScreenEdges::self()->reserve(this, border); | 2772 | ScreenEdges::self()->reserve(this, border); | ||
2773 | } else { | 2773 | } else { | ||
▲ Show 20 Lines • Show All 129 Lines • ▼ Show 20 Line(s) | 2896 | if (areGeometryUpdatesBlocked()) { | |||
2903 | } | 2903 | } | ||
2904 | return; | 2904 | return; | ||
2905 | } | 2905 | } | ||
2906 | updateServerGeometry(); | 2906 | updateServerGeometry(); | ||
2907 | updateWindowRules(Rules::Position); | 2907 | updateWindowRules(Rules::Position); | ||
2908 | screens()->setCurrent(this); | 2908 | screens()->setCurrent(this); | ||
2909 | workspace()->updateStackingOrder(); | 2909 | workspace()->updateStackingOrder(); | ||
2910 | // client itself is not damaged | 2910 | // client itself is not damaged | ||
2911 | if (frameGeometryBeforeUpdateBlocking() != frameGeometry()) { | ||||
2912 | emit frameGeometryChanged(this, frameGeometryBeforeUpdateBlocking()); | ||||
2913 | } | ||||
2911 | addRepaintDuringGeometryUpdates(); | 2914 | addRepaintDuringGeometryUpdates(); | ||
2912 | updateGeometryBeforeUpdateBlocking(); | 2915 | updateGeometryBeforeUpdateBlocking(); | ||
2913 | emit geometryChanged(); | | |||
2914 | } | 2916 | } | ||
2915 | 2917 | | |||
2916 | bool X11Client::belongToSameApplication(const X11Client *c1, const X11Client *c2, SameApplicationChecks checks) | 2918 | bool X11Client::belongToSameApplication(const X11Client *c1, const X11Client *c2, SameApplicationChecks checks) | ||
2917 | { | 2919 | { | ||
2918 | bool same_app = false; | 2920 | bool same_app = false; | ||
2919 | 2921 | | |||
2920 | // tests that definitely mean they belong together | 2922 | // tests that definitely mean they belong together | ||
2921 | if (c1 == c2) | 2923 | if (c1 == c2) | ||
▲ Show 20 Lines • Show All 1281 Lines • ▼ Show 20 Line(s) | 4156 | { | |||
4203 | // to detect changes | 4205 | // to detect changes | ||
4204 | screens()->setCurrent(this); | 4206 | screens()->setCurrent(this); | ||
4205 | workspace()->updateStackingOrder(); | 4207 | workspace()->updateStackingOrder(); | ||
4206 | 4208 | | |||
4207 | // Need to regenerate decoration pixmaps when the buffer size is changed. | 4209 | // Need to regenerate decoration pixmaps when the buffer size is changed. | ||
4208 | if (bufferGeometryBeforeUpdateBlocking().size() != m_bufferGeometry.size()) { | 4210 | if (bufferGeometryBeforeUpdateBlocking().size() != m_bufferGeometry.size()) { | ||
4209 | discardWindowPixmap(); | 4211 | discardWindowPixmap(); | ||
4210 | } | 4212 | } | ||
4213 | if (frameGeometryBeforeUpdateBlocking() != m_frameGeometry) { | ||||
4214 | emit frameGeometryChanged(this, frameGeometryBeforeUpdateBlocking()); | ||||
4215 | } | ||||
4211 | emit geometryShapeChanged(this, frameGeometryBeforeUpdateBlocking()); | 4216 | emit geometryShapeChanged(this, frameGeometryBeforeUpdateBlocking()); | ||
4212 | addRepaintDuringGeometryUpdates(); | 4217 | addRepaintDuringGeometryUpdates(); | ||
4213 | updateGeometryBeforeUpdateBlocking(); | 4218 | updateGeometryBeforeUpdateBlocking(); | ||
4214 | // TODO: this signal is emitted too often | | |||
4215 | emit geometryChanged(); | | |||
4216 | } | 4219 | } | ||
4217 | 4220 | | |||
4218 | void X11Client::plainResize(int w, int h, ForceGeometry_t force) | 4221 | void X11Client::plainResize(int w, int h, ForceGeometry_t force) | ||
4219 | { | 4222 | { | ||
4220 | QSize frameSize(w, h); | 4223 | QSize frameSize(w, h); | ||
4221 | QSize bufferSize; | 4224 | QSize bufferSize; | ||
4222 | 4225 | | |||
4223 | // this code is also duplicated in X11Client::setGeometry(), and it's also commented there | 4226 | // this code is also duplicated in X11Client::setGeometry(), and it's also commented there | ||
Show All 35 Lines | |||||
4259 | } | 4262 | } | ||
4260 | updateServerGeometry(); | 4263 | updateServerGeometry(); | ||
4261 | updateWindowRules(Rules::Position|Rules::Size); | 4264 | updateWindowRules(Rules::Position|Rules::Size); | ||
4262 | screens()->setCurrent(this); | 4265 | screens()->setCurrent(this); | ||
4263 | workspace()->updateStackingOrder(); | 4266 | workspace()->updateStackingOrder(); | ||
4264 | if (bufferGeometryBeforeUpdateBlocking().size() != m_bufferGeometry.size()) { | 4267 | if (bufferGeometryBeforeUpdateBlocking().size() != m_bufferGeometry.size()) { | ||
4265 | discardWindowPixmap(); | 4268 | discardWindowPixmap(); | ||
4266 | } | 4269 | } | ||
4270 | if (frameGeometryBeforeUpdateBlocking() != frameGeometry()) { | ||||
4271 | emit frameGeometryChanged(this, frameGeometryBeforeUpdateBlocking()); | ||||
4272 | } | ||||
4267 | emit geometryShapeChanged(this, frameGeometryBeforeUpdateBlocking()); | 4273 | emit geometryShapeChanged(this, frameGeometryBeforeUpdateBlocking()); | ||
4268 | addRepaintDuringGeometryUpdates(); | 4274 | addRepaintDuringGeometryUpdates(); | ||
4269 | updateGeometryBeforeUpdateBlocking(); | 4275 | updateGeometryBeforeUpdateBlocking(); | ||
4270 | // TODO: this signal is emitted too often | | |||
4271 | emit geometryChanged(); | | |||
4272 | } | 4276 | } | ||
4273 | 4277 | | |||
4274 | void X11Client::updateServerGeometry() | 4278 | void X11Client::updateServerGeometry() | ||
4275 | { | 4279 | { | ||
4276 | const QRect oldBufferGeometry = bufferGeometryBeforeUpdateBlocking(); | 4280 | const QRect oldBufferGeometry = bufferGeometryBeforeUpdateBlocking(); | ||
4277 | 4281 | | |||
4278 | if (oldBufferGeometry.size() != m_bufferGeometry.size() || pendingGeometryUpdate() == PendingGeometryForced) { | 4282 | if (oldBufferGeometry.size() != m_bufferGeometry.size() || pendingGeometryUpdate() == PendingGeometryForced) { | ||
4279 | resizeDecoration(); | 4283 | resizeDecoration(); | ||
▲ Show 20 Lines • Show All 722 Lines • Show Last 20 Lines |