gimp but for windows: a wayland compositor
git clone https://github.com/m-col/wimp
Files | Refs | Readme

Commit a919943a831103eec03e308e81f91da27c1d9d96
Parent: 2f1a499e9cf4b20ffb8af7e8bf3b41466659ef34
Author: mcol <mcol@posteo.net>
Date: 2020-11-08 18:33:05 +0000
Committer: mcol <mcol@posteo.net>
Committed: 2020-11-08 18:33:05 +0000

map and unmap views when setting new desk

src/desk.c Modified

@@ -1,7 +1,9 @@
 #include "config.h"
 #include "desk.h"
+#include "shell.h"
 #include "types.h"
 
+
 static int num_desks = 0;
 
 
@@ -22,6 +24,18 @@
 }
 
 
+void set_desk(struct server *server, struct desk *desk) {
+    struct view *view;
+    wl_list_for_each(view, &server->current_desk->views, link) {
+	unmap_view(view);
+    }
+    server->current_desk = desk;
+    wl_list_for_each(view, &server->current_desk->views, link) {
+	map_view(view);
+    }
+}
+
+
 void next_desk(struct server *server) {
     struct desk *desk;
     if (server->current_desk->index + 1 == num_desks) {
@@ -29,7 +43,7 @@
     } else {
 	desk = wl_container_of(server->current_desk->link.next, desk, link);
     }
-    server->current_desk = desk;
+    set_desk(server, desk);
 }
 
 
@@ -40,5 +54,5 @@
     } else {
 	desk = wl_container_of(server->current_desk->link.prev, desk, link);
     }
-    server->current_desk = desk;
+    set_desk(server, desk);
 }