diff --git a/src/components/TopBar/TopBarMenu.vue b/src/components/TopBar/TopBarMenu.vue
index b04511bfed25..feca083f3f28 100644
--- a/src/components/TopBar/TopBarMenu.vue
+++ b/src/components/TopBar/TopBarMenu.vue
@@ -434,7 +434,7 @@ export default {
 		},
 
 		changeView() {
-			this.$store.dispatch('setCallViewMode', { isGrid: !this.isGrid })
+			this.$store.dispatch('setCallViewMode', { isGrid: !this.isGrid, clearLast: false })
 			this.$store.dispatch('selectedVideoPeerId', null)
 		},
 
diff --git a/src/store/callViewStore.js b/src/store/callViewStore.js
index 6918c3af6416..e4b611ef4e9f 100644
--- a/src/store/callViewStore.js
+++ b/src/store/callViewStore.js
@@ -216,12 +216,15 @@ const actions = {
 		if (!context.getters.presentationStarted) {
 			return
 		}
-
-		// restore previous state
-		context.dispatch('setCallViewMode', {
-			isGrid: context.getters.lastIsGrid,
-			isStripeOpen: context.getters.lastIsStripeOpen,
-		})
+		if (!context.getters.isGrid) {
+			// User didn't pick grid view during presentation
+			// restore previous state
+			context.dispatch('setCallViewMode', {
+				isGrid: context.getters.lastIsGrid,
+				isStripeOpen: context.getters.lastIsStripeOpen,
+				clearLast: false,
+			})
+		}
 		context.commit('presentationStarted', false)
 	},