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

Commit 2f1a499e9cf4b20ffb8af7e8bf3b41466659ef34
Parent: ef78040a4e031d7806aa7e791e8750160b6f1e5f
Author: mcol <mcol@posteo.net>
Date: 2020-11-08 17:55:50 +0000
Committer: mcol <mcol@posteo.net>
Committed: 2020-11-08 17:55:50 +0000

move desk-related code into dedicated files

src/shell.h Modified

@@ -12,10 +12,6 @@
 void on_request_move(struct wl_listener *listener, void *data);
 void on_request_resize(struct wl_listener *listener, void *data);
 void on_new_xdg_surface(struct wl_listener *listener, void *data);
-void add_desk(struct server *server);
-void remove_desk(struct desk *desk);
-void next_desk(struct server *server);
-void prev_desk(struct server *server);
 void set_up_shell(struct server *server);
 
 #endif

src/shell.c Modified

@@ -128,48 +128,6 @@
 }
 
 
-static int num_desks = 0;
-
-
-void add_desk(struct server *server) {
-    struct desk *desk = calloc(1, sizeof(struct desk));
-    wl_list_insert(server->desks.prev, &desk->link);
-    desk->server = server;
-    wl_list_init(&desk->views);
-    assign_colour("#5D479D", desk->background);
-    desk->index = num_desks;
-    num_desks++;
-}
-
-
-void remove_desk(struct desk *desk) {
-    wl_list_remove(&desk->link);
-    free(desk);
-}
-
-
-void next_desk(struct server *server) {
-    struct desk *desk;
-    if (server->current_desk->index + 1 == num_desks) {
-	desk = wl_container_of(server->desks.next, desk, link);
-    } else {
-	desk = wl_container_of(server->current_desk->link.next, desk, link);
-    }
-    server->current_desk = desk;
-}
-
-
-void prev_desk(struct server *server) {
-    struct desk *desk;
-    if (server->current_desk->index == 0) {
-	desk = wl_container_of(server->desks.prev, desk, link);
-    } else {
-	desk = wl_container_of(server->current_desk->link.prev, desk, link);
-    }
-    server->current_desk = desk;
-}
-
-
 void set_up_shell(struct server *server) {
     server->shell = wlr_xdg_shell_create(server->display);
     server->new_xdg_surface_listener.notify = on_new_xdg_surface;

src/input.c Modified

@@ -3,6 +3,7 @@
 #include <wlr/types/wlr_data_device.h>
 #include <wlr/types/wlr_xcursor_manager.h>
 
+#include "desk.h"
 #include "input.h"
 #include "shell.h"
 #include "types.h"

src/desk.h Added

@@ -0,0 +1,11 @@
+#ifndef DESKWM_DESK_H
+#define DESKWM_DESK_H
+
+#include "types.h"
+
+void add_desk(struct server *server);
+void remove_desk(struct desk *desk);
+void next_desk(struct server *server);
+void prev_desk(struct server *server);
+
+#endif

src/desk.c Added

@@ -0,0 +1,44 @@
+#include "config.h"
+#include "desk.h"
+#include "types.h"
+
+static int num_desks = 0;
+
+
+void add_desk(struct server *server) {
+    struct desk *desk = calloc(1, sizeof(struct desk));
+    wl_list_insert(server->desks.prev, &desk->link);
+    desk->server = server;
+    wl_list_init(&desk->views);
+    assign_colour("#5D479D", desk->background);
+    desk->index = num_desks;
+    num_desks++;
+}
+
+
+void remove_desk(struct desk *desk) {
+    wl_list_remove(&desk->link);
+    free(desk);
+}
+
+
+void next_desk(struct server *server) {
+    struct desk *desk;
+    if (server->current_desk->index + 1 == num_desks) {
+	desk = wl_container_of(server->desks.next, desk, link);
+    } else {
+	desk = wl_container_of(server->current_desk->link.next, desk, link);
+    }
+    server->current_desk = desk;
+}
+
+
+void prev_desk(struct server *server) {
+    struct desk *desk;
+    if (server->current_desk->index == 0) {
+	desk = wl_container_of(server->desks.prev, desk, link);
+    } else {
+	desk = wl_container_of(server->current_desk->link.prev, desk, link);
+    }
+    server->current_desk = desk;
+}

src/config.c Modified

@@ -5,7 +5,7 @@
 #include <unistd.h>
 
 #include "config.h"
-#include "shell.h"
+#include "desk.h"
 #include "types.h"