diff --git a/multiscreen-compositor/qml/IviChrome.qml b/multiscreen-compositor/qml/IviChrome.qml index d3aba364ed364f2e9180c4bc8c9e033a27856def..3bc92f5b2da375bdb39cfca38448a481ec1bf032 100644 --- a/multiscreen-compositor/qml/IviChrome.qml +++ b/multiscreen-compositor/qml/IviChrome.qml @@ -71,6 +71,4 @@ Item { shellSurface.sendConfigure(Qt.size(width, height)); } - - } diff --git a/multiscreen-compositor/qml/main.qml b/multiscreen-compositor/qml/main.qml index d2d894fd6da64e82a7bb50913adc64fcbacd9a4c..273409bbcce4ca82f7609eddbb2f1f0be9d32b13 100644 --- a/multiscreen-compositor/qml/main.qml +++ b/multiscreen-compositor/qml/main.qml @@ -109,6 +109,8 @@ WaylandCompositor { IviApplication { onIviSurfaceCreated: handleIviSurfaceCreated(iviSurface) + //onIviSurfaceRequested: handleIviSurfaceRequested(surface, iviId, resource) + onIviSurfaceRequested: console.log("IVI surface requested: surface", surface, "iviId", iviId, "resource", resource); } // ============================================= @@ -242,6 +244,12 @@ WaylandCompositor { var surfaceOnScreen = ({ 'surface': item, 'screen': screenId }); activeSurfaces.push(surfaceOnScreen); freezeIviId(iviSurface.iviId, screenId); + cleanUpFreezer(); + } + + function handleIviSurfaceRequested(surface, iviId, resource) + { + console.log("IVI surface requested: surface", surface, "iviId", iviId, "resource", resource); } function freezeIviId(iviId, screen) @@ -250,6 +258,27 @@ WaylandCompositor { frozenSurfaceIds.push(frozenSurface); } + function cleanUpFreezer() + { + for (var i=0; i < frozenSurfaceIds.length; i++) + { + var iviId = frozenSurfaceIds[i].id; + var surfaceFound = false; + console.log("inspecting frozen iviId", iviId); + for (var j=0; j < activeSurfaces.length; j++) + { + if (iviId === activeSurfaces[j].surface.shellSurface.iviId) + surfaceFound = true; + } + + if (!surfaceFound) + { + console.log("no surface found for iviId", iviId); + frozenSurfaceIds = Array.from(frozenSurfaceIds).filter((e, idx) => e.id !== iviId) + } + } + } + function cleanUpApplist() { for (var i=0; i < activeSurfaces.length; i++) { @@ -267,6 +296,7 @@ WaylandCompositor { // ============================================= onSurfaceAboutToBeDestroyed: { cleanUpApplist(); + //cleanUpFreezer(); } // =============================================