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

Commit 480be466081d23c0364fe708b2d791e837ef8c1b
Parent: 6bedda13c02a6692a93ad6486e3a6dbc9ad58fc0
Author: mcol <mcol@posteo.net>
Date: 2020-12-05 22:52:12 +0000
Committer: mcol <mcol@posteo.net>
Committed: 2020-12-05 22:52:12 +0000

do not rotate window list when changing desk

src/shell.c Modified

@@ -50,10 +50,12 @@
 
 void on_unmap(struct wl_listener *listener, void *data) {
     struct view *view = wl_container_of(listener, view, unmap_listener);
-    wl_list_remove(&view->link);
-    wl_list_insert(view->server->current_desk->views.prev, &view->link);
-    struct view *next_view = wl_container_of(view->server->current_desk->views.next, view, link);
-    focus_view(next_view, next_view->surface->surface);
+    if (view->server->can_steal_focus) {
+	wl_list_remove(&view->link);
+	wl_list_insert(view->server->current_desk->views.prev, &view->link);
+	struct view *next_view = wl_container_of(view->server->current_desk->views.next, view, link);
+	focus_view(next_view, next_view->surface->surface);
+    }
 }
 
 

src/desk.c Modified

@@ -19,11 +19,11 @@
 
 void set_desk(struct server *server, struct desk *desk) {
     struct view *view;
+    server->can_steal_focus = false;
     wl_list_for_each(view, &server->current_desk->views, link) {
 	unmap_view(view);
     }
     server->current_desk = desk;
-    server->can_steal_focus = false;
     wl_list_for_each(view, &server->current_desk->views, link) {
 	map_view(view);
     }