Skip to content

Instantly share code, notes, and snippets.

@ddevault
Created April 3, 2018 19:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ddevault/4d1714c2fc20978c8914bc89f4f9fe07 to your computer and use it in GitHub Desktop.
Save ddevault/4d1714c2fc20978c8914bc89f4f9fe07 to your computer and use it in GitHub Desktop.
I'm so sorry
diff --git a/sway/commands/reload.c b/sway/commands/reload.c
index 5bca6cd..a3714d0 100644
--- a/sway/commands/reload.c
+++ b/sway/commands/reload.c
@@ -2,6 +2,31 @@
#include "sway/config.h"
#include "sway/tree/layout.h"
+#include <wlr/backend/x11.h>
+#include "sway/server.h"
+
+struct wlr_multi_backend {
+ struct wlr_backend backend;
+
+ struct wl_list backends;
+
+ struct wl_listener display_destroy;
+
+ struct {
+ struct wl_signal backend_add;
+ struct wl_signal backend_remove;
+ } events;
+};
+
+struct subbackend_state {
+ struct wlr_backend *backend;
+ struct wlr_backend *container;
+ struct wl_listener new_input;
+ struct wl_listener new_output;
+ struct wl_listener destroy;
+ struct wl_list link;
+};
+
struct cmd_results *cmd_reload(int argc, char **argv) {
struct cmd_results *error = NULL;
if ((error = checkarg(argc, "reload", EXPECTED_EQUAL_TO, 0))) {
@@ -13,5 +38,15 @@ struct cmd_results *cmd_reload(int argc, char **argv) {
load_swaybars();
arrange_windows(&root_container, -1, -1);
+
+ struct wlr_multi_backend *backend =
+ (struct wlr_multi_backend *)server.backend;
+ struct subbackend_state *subbackend;
+ wl_list_for_each(subbackend, &backend->backends, link) {
+ if (wlr_backend_is_x11(subbackend->backend)) {
+ wlr_x11_output_create(subbackend->backend);
+ }
+ }
+
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment