Package: release.debian.org Severity: normal X-Debbugs-Cc: [email protected] Control: affects -1 + src:qtmir User: [email protected] Usertags: unblock
Please unblock package qtmir This unblock requests comes very late in the deep home that it can still get accepted. It goes together with #1110538 for lomiri 0.5.0-4. [ Reason ] + * debian/patches: + + Add 0001_mirserver-cursor-take-Shell-s-rotation-into-account.patch. Fix + cursor positioning if display is rotated. -> This patch caused my to hesitate for maybe too long. It brings in a regression and this patch needs to be removed from the package again for the first point release. + + Add 0009_src-modules-Add-header-for-getpid.patch. Add include for getpid() + function. -> Compiler warning fix. Trivial. + + Add 0002_src-modules-Re-introduce-lost-workaround-for-font-re.patch. + Regression fix, fix arbitrary font rendering glitches. (LP:#1583088). -> This one is important: From time to time the fonts in a Lomiri session become totally unreadable. It can immediately after login or in the course of the session. + + Add 0011_src-platforms-Wrap-window-activity-change-in-a-try-c.patch. + Selecting the active window can lead to a range exception, so avoid a + crash by wrapping this in a try-catch. -> Stabilize Lomiri, avoid session crashes when selecting the active window. + + Add 0012_src-modules-Partial-revert-of-e73ef71622ad3202b77bf6.patch. Drop + overzealous code when removing a window. -> Removes overzealous code causing instability. + + Add 0013_src-modules-Address-review-comments-for-MirSurface.patch, + 0014_src-modules-Set-MirSurface-live-to-false-when-tearin.patch, 0015_src- + modules-Use-explicit-signal-to-signify-a-teardow.patch, 0016_src-modules- + Drop-references-before-teardown.patch. Address crash-on-close issue for + windows with the same APP_ID (causing Lomiri shell to crash). This goes + together with a changeset in lomiri src:pkg. -> This goes together with a fix in Lomiri for handling closing of multi-window-capable apps (such as lomiri-terminal-app) well when closing one of its windows. (Without this one, closing terminal app can tear down the whole Lomiri session). Similar to what I wrote for this problem in lomiri 0.5.0-4's unblock request: Upstream has now provided a better fix for this and we will replace this patch in a follow-up upload for the 1st point release of trixie. + + Trivial rebase of 2003_disable-benchmarks.patch. -> trivial patch rebasing [ Impact ] Stability issues in Lomiri session. (Arbitrary session crashes, loss of unsaved user data). [ Tests ] Manual tests on notebooks and tablets. [ Risks ] For Lomiri users. [ Checklist ] [x] all changes are documented in the d/changelog [x] I reviewed all changes and I approve them [x] attach debdiff against the package in testing [ Other info ] Relevant for Lomiri on Debian. unblock qtmir/0.8.0~git20250407.ea2f477-2
diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/changelog qtmir-0.8.0~git20250407.ea2f477/debian/changelog --- qtmir-0.8.0~git20250407.ea2f477/debian/changelog 2025-04-17 21:25:11.000000000 +0200 +++ qtmir-0.8.0~git20250407.ea2f477/debian/changelog 2025-07-30 15:21:45.000000000 +0200 @@ -1,3 +1,27 @@ +qtmir (0.8.0~git20250407.ea2f477-2) unstable; urgency=medium + + * debian/patches: + + Add 0001_mirserver-cursor-take-Shell-s-rotation-into-account.patch. Fix + cursor positioning if display is rotated. + + Add 0009_src-modules-Add-header-for-getpid.patch. Add include for getpid() + function. + + Add 0002_src-modules-Re-introduce-lost-workaround-for-font-re.patch. + Regression fix, fix arbitrary font rendering glitches. (LP:#1583088). + + Add 0011_src-platforms-Wrap-window-activity-change-in-a-try-c.patch. + Selecting the active window can lead to a range exception, so avoid a + crash by wrapping this in a try-catch. + + Add 0012_src-modules-Partial-revert-of-e73ef71622ad3202b77bf6.patch. Drop + overzealous code when removing a window. + + Add 0013_src-modules-Address-review-comments-for-MirSurface.patch, + 0014_src-modules-Set-MirSurface-live-to-false-when-tearin.patch, 0015_src- + modules-Use-explicit-signal-to-signify-a-teardow.patch, 0016_src-modules- + Drop-references-before-teardown.patch. Address crash-on-close issue for + windows with the same APP_ID (causing Lomiri shell to crash). This goes + together with a changeset in lomiri src:pkg. + + Trivial rebase of 2003_disable-benchmarks.patch. + + -- Mike Gabriel <[email protected]> Wed, 30 Jul 2025 15:21:45 +0200 + qtmir (0.8.0~git20250407.ea2f477-1) unstable; urgency=medium * New upstream Git snapshot. diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0001_mirserver-cursor-take-Shell-s-rotation-into-account.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0001_mirserver-cursor-take-Shell-s-rotation-into-account.patch --- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0001_mirserver-cursor-take-Shell-s-rotation-into-account.patch 1970-01-01 01:00:00.000000000 +0100 +++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0001_mirserver-cursor-take-Shell-s-rotation-into-account.patch 2025-05-15 09:58:10.000000000 +0200 @@ -0,0 +1,34 @@ +From 9e93db5bdbd54e3ae495762ae47c795cab920bbd Mon Sep 17 00:00:00 2001 +From: Ratchanan Srirattanamet <[email protected]> +Date: Mon, 12 May 2025 22:30:24 +0700 +Subject: [PATCH] mirserver/cursor: take Shell's rotation into account + +It's incorrect to simply subtract the screen's top left from global +cursor position to turn it into a local position; one must use +QQuickItem::mapFromGlobal() to let QtQuick take rotation (among others) +into account. Since the position is relative to the item's parent, call +to its parent for this. + +Signed-off-by: Mike Gabriel <[email protected]> +--- + src/platforms/mirserver/cursor.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/platforms/mirserver/cursor.cpp b/src/platforms/mirserver/cursor.cpp +index 3ded65ef..31bf7dbc 100644 +--- a/src/platforms/mirserver/cursor.cpp ++++ b/src/platforms/mirserver/cursor.cpp +@@ -148,8 +148,9 @@ void Cursor::registerMousePointer(MirMousePointerInterface *mousePointer) + auto updatePositionFunction = [mousePointer](const QPoint& screenPos) { + if (!mousePointer->window()) return; + if (!mousePointer->isEnabled()) return; ++ if (!mousePointer->parentItem()) return; + +- QPoint localPos = screenPos - mousePointer->window()->geometry().topLeft(); ++ QPoint localPos = mousePointer->parentItem()->mapFromGlobal(screenPos).toPoint(); + mousePointer->moveTo(localPos); + }; + +-- +2.47.2 + diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0002_src-modules-Re-introduce-lost-workaround-for-font-re.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0002_src-modules-Re-introduce-lost-workaround-for-font-re.patch --- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0002_src-modules-Re-introduce-lost-workaround-for-font-re.patch 1970-01-01 01:00:00.000000000 +0100 +++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0002_src-modules-Re-introduce-lost-workaround-for-font-re.patch 2025-07-29 10:49:48.000000000 +0200 @@ -0,0 +1,33 @@ +From b7333e0a00c2d7169c48e16b6e08c32803823fb4 Mon Sep 17 00:00:00 2001 +From: Alfred <[email protected]> +Date: Thu, 11 Jul 2024 18:54:41 +0200 +Subject: [PATCH 02/14] src/modules: Re-introduce lost workaround for font + render issue + +Lost in commit b27b44772de3be476a05831c0f14a63f56d79378, pulled from +revision 15fcc65039b19a598eda76e18260ea9824a13048 and placed in a +similar place around buffer bindings happen. + +Signed-off-by: Mike Gabriel <[email protected]> +--- + src/modules/QtMir/Application/mirbuffersgtexture.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/modules/QtMir/Application/mirbuffersgtexture.cpp b/src/modules/QtMir/Application/mirbuffersgtexture.cpp +index 47d9f03a..6397b528 100644 +--- a/src/modules/QtMir/Application/mirbuffersgtexture.cpp ++++ b/src/modules/QtMir/Application/mirbuffersgtexture.cpp +@@ -135,6 +135,10 @@ public: + f->glBindTexture(GL_TEXTURE_2D, m_textureId); + + m_texSourceBuf->bind(); ++ ++ // Fix for lp:1583088 - For non-GL clients, Mir uploads the client pixel buffer to a GL texture. ++ // But as it does so, it changes some GL state and neglects to restore it, which breaks Qt's rendering. ++ f->glPixelStorei(GL_UNPACK_ALIGNMENT, 4); // 4 is the default which Qt uses + } + + private: +-- +2.47.2 + diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0009_src-modules-Add-header-for-getpid.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0009_src-modules-Add-header-for-getpid.patch --- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0009_src-modules-Add-header-for-getpid.patch 1970-01-01 01:00:00.000000000 +0100 +++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0009_src-modules-Add-header-for-getpid.patch 2025-07-29 10:49:48.000000000 +0200 @@ -0,0 +1,27 @@ +From e2af137c0e778e6e3c1440d0b782456793a9b5e3 Mon Sep 17 00:00:00 2001 +From: Alfred Neumayer <[email protected]> +Date: Thu, 8 Aug 2024 22:04:41 +0200 +Subject: [PATCH 09/14] src/modules: Add header for getpid() + +Signed-off-by: Mike Gabriel <[email protected]> +--- + src/modules/QtMir/Application/application.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/modules/QtMir/Application/application.cpp b/src/modules/QtMir/Application/application.cpp +index ef9e15cd..07d1aa92 100644 +--- a/src/modules/QtMir/Application/application.cpp ++++ b/src/modules/QtMir/Application/application.cpp +@@ -36,6 +36,9 @@ + // std + #include <csignal> + ++// Linux ++#include <unistd.h> ++ + namespace shellapp = lomiri::shell::application; + + #define DEBUG_MSG qCDebug(QTMIR_APPLICATIONS).nospace() << "Application[" << appId() <<"]::" << __func__ +-- +2.47.2 + diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0011_src-platforms-Wrap-window-activity-change-in-a-try-c.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0011_src-platforms-Wrap-window-activity-change-in-a-try-c.patch --- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0011_src-platforms-Wrap-window-activity-change-in-a-try-c.patch 1970-01-01 01:00:00.000000000 +0100 +++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0011_src-platforms-Wrap-window-activity-change-in-a-try-c.patch 2025-07-29 10:49:48.000000000 +0200 @@ -0,0 +1,54 @@ +From ca5e7399ca86280afcedf14f8ee5e09689c94abc Mon Sep 17 00:00:00 2001 +From: Alfred Neumayer <[email protected]> +Date: Fri, 4 Jul 2025 10:49:52 +0200 +Subject: [PATCH 11/14] src/platforms: Wrap window activity change in a + try-catch + +Selecting the active window can lead to a range exception, +so avoid a crash by wrapping this in a try-catch. + +Signed-off-by: Mike Gabriel <[email protected]> +--- + .../mirserver/wrappedwindowmanagementpolicy.cpp | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp b/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp +index b303b39f..d04813d3 100644 +--- a/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp ++++ b/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp +@@ -619,7 +619,9 @@ void WrappedWindowManagementPolicy::deliver_keyboard_event(const MirKeyboardEven + if (mir_keyboard_event_action(event) == mir_keyboard_action_down) { + tools.invoke_under_lock([&]() { + if (tools.active_window() != window) { +- tools.select_active_window(window); ++ try { ++ tools.select_active_window(window); ++ } catch (const std::exception& e) { } + } + }); + } +@@ -631,7 +633,9 @@ void WrappedWindowManagementPolicy::deliver_touch_event(const MirTouchEvent *eve + { + tools.invoke_under_lock([&]() { + if (tools.active_window() != window) { +- tools.select_active_window(window); ++ try { ++ tools.select_active_window(window); ++ } catch (const std::exception& e) { } + } + }); + +@@ -644,7 +648,9 @@ void WrappedWindowManagementPolicy::deliver_pointer_event(const MirPointerEvent + if (mir_pointer_event_action(event) == mir_pointer_action_button_down) { + tools.invoke_under_lock([&]() { + if (tools.active_window() != window) { +- tools.select_active_window(window); ++ try { ++ tools.select_active_window(window); ++ } catch (const std::exception& e) { } + } + }); + } +-- +2.47.2 + diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0012_src-modules-Partial-revert-of-e73ef71622ad3202b77bf6.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0012_src-modules-Partial-revert-of-e73ef71622ad3202b77bf6.patch --- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0012_src-modules-Partial-revert-of-e73ef71622ad3202b77bf6.patch 1970-01-01 01:00:00.000000000 +0100 +++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0012_src-modules-Partial-revert-of-e73ef71622ad3202b77bf6.patch 2025-07-29 10:49:48.000000000 +0200 @@ -0,0 +1,38 @@ +From c6bee71ba608570ca8417399f32f5f5cf7796f0a Mon Sep 17 00:00:00 2001 +From: Alfred Neumayer <[email protected]> +Date: Tue, 22 Jul 2025 12:47:38 +0200 +Subject: [PATCH 12/14] src/modules: Partial revert of + e73ef71622ad3202b77bf6005f73134726d6394a + +Signed-off-by: Mike Gabriel <[email protected]> +--- + src/modules/QtMir/Application/windowmodel.cpp | 11 ++--------- + 1 file changed, 2 insertions(+), 9 deletions(-) + +diff --git a/src/modules/QtMir/Application/windowmodel.cpp b/src/modules/QtMir/Application/windowmodel.cpp +index c95adc73..0d65d7f5 100644 +--- a/src/modules/QtMir/Application/windowmodel.cpp ++++ b/src/modules/QtMir/Application/windowmodel.cpp +@@ -81,17 +81,10 @@ void WindowModel::onWindowAdded(const NewWindow &window) + beginInsertRows(QModelIndex(), index, index); + + #if MIR_SERVER_VERSION >= MIR_VERSION_NUMBER(2, 20, 0) +- auto mirSurface = new MirSurface(window, m_windowController, *m_glProvider); ++ m_windowModel.append(new MirSurface(window, m_windowController, *m_glProvider)); + #else +- auto mirSurface = new MirSurface(window, m_windowController); ++ m_windowModel.append(new MirSurface(window, m_windowController)); + #endif +- connect(mirSurface, &MirSurface::isBeingDisplayedChanged, this, [=, this](){ +- if (mirSurface->isBeingDisplayed()) +- return; +- onWindowRemoved(window.windowInfo); +- }); +- +- m_windowModel.append(mirSurface); + endInsertRows(); + Q_EMIT countChanged(); + } +-- +2.47.2 + diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0013_src-modules-Address-review-comments-for-MirSurface.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0013_src-modules-Address-review-comments-for-MirSurface.patch --- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0013_src-modules-Address-review-comments-for-MirSurface.patch 1970-01-01 01:00:00.000000000 +0100 +++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0013_src-modules-Address-review-comments-for-MirSurface.patch 2025-07-29 10:49:48.000000000 +0200 @@ -0,0 +1,34 @@ +From ca9e9a2635bc817438ea0028b63a58db3940d0b0 Mon Sep 17 00:00:00 2001 +From: Alfred Neumayer <[email protected]> +Date: Tue, 22 Jul 2025 12:48:17 +0200 +Subject: [PATCH 13/14] src/modules: Address review comments for MirSurface + +Signed-off-by: Mike Gabriel <[email protected]> +--- + src/modules/QtMir/Application/mirsurface.cpp | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/modules/QtMir/Application/mirsurface.cpp b/src/modules/QtMir/Application/mirsurface.cpp +index d892f207..b37bae31 100644 +--- a/src/modules/QtMir/Application/mirsurface.cpp ++++ b/src/modules/QtMir/Application/mirsurface.cpp +@@ -138,7 +138,7 @@ public: + #else + void attrib_changed(MirWindowAttrib, int) override; + void resized_to(mir::geometry::Size const&) override; +- void moved_to(mir::geometry::Point const&) override {}; ++ void moved_to(mir::geometry::Point const&) override {} + void hidden_set_to(bool) override; + + // Get new frame notifications from Mir, called from a Mir thread. +@@ -681,7 +681,6 @@ void MirSurface::teardown() + for (const auto& id : m_views.keys()) { + unregisterView(id); + } +- deleteLater(); + } + + void MirSurface::resize(int width, int height) +-- +2.47.2 + diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0014_src-modules-Set-MirSurface-live-to-false-when-tearin.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0014_src-modules-Set-MirSurface-live-to-false-when-tearin.patch --- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0014_src-modules-Set-MirSurface-live-to-false-when-tearin.patch 1970-01-01 01:00:00.000000000 +0100 +++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0014_src-modules-Set-MirSurface-live-to-false-when-tearin.patch 2025-07-29 10:49:48.000000000 +0200 @@ -0,0 +1,39 @@ +From 81f25c97fb80f56302cd754dd5973bdf705e014a Mon Sep 17 00:00:00 2001 +From: Alfred Neumayer <[email protected]> +Date: Sat, 26 Jul 2025 16:47:18 +0200 +Subject: [PATCH 14/14] src/modules: Set MirSurface live to false when tearing + down + +Cause a natural removal of the surface from the SurfaceManager through +signals & slots. This will remove associated surfaces from the window. +Window removal can be done in QML from the window model later on. + +Signed-off-by: Mike Gabriel <[email protected]> +--- + src/modules/QtMir/Application/mirsurface.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/modules/QtMir/Application/mirsurface.cpp b/src/modules/QtMir/Application/mirsurface.cpp +index b37bae31..f20b4b23 100644 +--- a/src/modules/QtMir/Application/mirsurface.cpp ++++ b/src/modules/QtMir/Application/mirsurface.cpp +@@ -678,6 +678,7 @@ void MirSurface::forceClose() + + void MirSurface::teardown() + { ++ setLive(false); + for (const auto& id : m_views.keys()) { + unregisterView(id); + } +@@ -1215,7 +1216,7 @@ void MirSurface::onCloseTimedOut() + m_controller->forceClose(m_window); + } + } else { +- WARNING_MSG << "Surface not live anymore, tearing down."; ++ WARNING_MSG << "(), Surface not live anymore, tearing down."; + teardown(); + } + } +-- +2.47.2 + diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0015_src-modules-Use-explicit-signal-to-signify-a-teardow.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0015_src-modules-Use-explicit-signal-to-signify-a-teardow.patch --- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0015_src-modules-Use-explicit-signal-to-signify-a-teardow.patch 1970-01-01 01:00:00.000000000 +0100 +++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0015_src-modules-Use-explicit-signal-to-signify-a-teardow.patch 2025-07-30 14:10:03.000000000 +0200 @@ -0,0 +1,53 @@ +From 948cb3593c5947b511087ff4640be38e09008aec Mon Sep 17 00:00:00 2001 +From: Alfred Neumayer <[email protected]> +Date: Tue, 29 Jul 2025 08:57:11 +0200 +Subject: [PATCH 1/2] src/modules: Use explicit signal to signify a teardown + +This signal is consumed both by the SurfaceManager as well as QML +to determine whether to keep or remove old windows in the window model. + +Signed-off-by: Mike Gabriel <[email protected]> +--- + src/modules/QtMir/Application/mirsurface.cpp | 5 +---- + src/modules/QtMir/Application/mirsurfaceinterface.h | 1 + + src/modules/QtMir/Application/surfacemanager.cpp | 5 +++++ + 3 files changed, 7 insertions(+), 4 deletions(-) + +--- a/src/modules/QtMir/Application/mirsurface.cpp ++++ b/src/modules/QtMir/Application/mirsurface.cpp +@@ -678,10 +678,7 @@ + + void MirSurface::teardown() + { +- setLive(false); +- for (const auto& id : m_views.keys()) { +- unregisterView(id); +- } ++ Q_EMIT teardownRequested(); + } + + void MirSurface::resize(int width, int height) +--- a/src/modules/QtMir/Application/mirsurfaceinterface.h ++++ b/src/modules/QtMir/Application/mirsurfaceinterface.h +@@ -134,6 +134,7 @@ + void isBeingDisplayedChanged(); + void frameDropped(); + void closeRequested(); ++ void teardownRequested(); + }; + + } // namespace qtmir +--- a/src/modules/QtMir/Application/surfacemanager.cpp ++++ b/src/modules/QtMir/Application/surfacemanager.cpp +@@ -204,6 +204,11 @@ + } + }); + ++ connect(surface, &MirSurface::teardownRequested, this, [this, surface](){ ++ forgetMirSurface(static_cast<MirSurface*>(surface)->window()); ++ surface->deleteLater(); ++ }); ++ + if (parentSurface) { + static_cast<MirSurfaceListModel*>(parentSurface->childSurfaceList())->prependSurface(surface); + } diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0016_src-modules-Drop-references-before-teardown.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0016_src-modules-Drop-references-before-teardown.patch --- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0016_src-modules-Drop-references-before-teardown.patch 1970-01-01 01:00:00.000000000 +0100 +++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0016_src-modules-Drop-references-before-teardown.patch 2025-07-30 14:09:54.000000000 +0200 @@ -0,0 +1,39 @@ +From 36c26bbafa1612e4e7bdacb28f605def19f4938a Mon Sep 17 00:00:00 2001 +From: Alfred Neumayer <[email protected]> +Date: Tue, 29 Jul 2025 13:27:22 +0200 +Subject: [PATCH 2/2] src/modules: Drop references before teardown + +Make sure we have no MirSurfaceItem referencing this surface when it goes EOL. +Also add missing tracepoint call while we're at it. + +Signed-off-by: Mike Gabriel <[email protected]> +--- + src/modules/QtMir/Application/mirsurface.cpp | 6 ++++++ + src/modules/QtMir/Application/surfacemanager.cpp | 1 + + 2 files changed, 7 insertions(+) + +--- a/src/modules/QtMir/Application/mirsurface.cpp ++++ b/src/modules/QtMir/Application/mirsurface.cpp +@@ -678,6 +678,12 @@ + + void MirSurface::teardown() + { ++ DEBUG_MSG << "()"; ++ ++ for (const auto& id : m_views.keys()) { ++ unregisterView(id); ++ } ++ + Q_EMIT teardownRequested(); + } + +--- a/src/modules/QtMir/Application/surfacemanager.cpp ++++ b/src/modules/QtMir/Application/surfacemanager.cpp +@@ -207,6 +207,7 @@ + connect(surface, &MirSurface::teardownRequested, this, [this, surface](){ + forgetMirSurface(static_cast<MirSurface*>(surface)->window()); + surface->deleteLater(); ++ tracepoint(qtmir, surfaceDestroyed); + }); + + if (parentSurface) { diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/2003_disable-benchmarks.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/2003_disable-benchmarks.patch --- qtmir-0.8.0~git20250407.ea2f477/debian/patches/2003_disable-benchmarks.patch 2024-02-14 10:33:36.000000000 +0100 +++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/2003_disable-benchmarks.patch 2025-07-30 14:18:39.000000000 +0200 @@ -3,7 +3,7 @@ --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -184,5 +184,5 @@ +@@ -185,5 +185,5 @@ # add subdirectories to build add_subdirectory(src) add_subdirectory(demos) diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/series qtmir-0.8.0~git20250407.ea2f477/debian/patches/series --- qtmir-0.8.0~git20250407.ea2f477/debian/patches/series 2025-02-28 14:46:20.000000000 +0100 +++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/series 2025-07-30 14:09:48.000000000 +0200 @@ -1,2 +1,11 @@ 2002_no-requires-provides-check.patch 2003_disable-benchmarks.patch +0001_mirserver-cursor-take-Shell-s-rotation-into-account.patch +0002_src-modules-Re-introduce-lost-workaround-for-font-re.patch +0009_src-modules-Add-header-for-getpid.patch +0011_src-platforms-Wrap-window-activity-change-in-a-try-c.patch +0012_src-modules-Partial-revert-of-e73ef71622ad3202b77bf6.patch +0013_src-modules-Address-review-comments-for-MirSurface.patch +0014_src-modules-Set-MirSurface-live-to-false-when-tearin.patch +0015_src-modules-Use-explicit-signal-to-signify-a-teardow.patch +0016_src-modules-Drop-references-before-teardown.patch

