diff --git a/src/util/wf-ipc.cpp b/src/util/wf-ipc.cpp index f5ee8735..f5c1c4d9 100644 --- a/src/util/wf-ipc.cpp +++ b/src/util/wf-ipc.cpp @@ -1,6 +1,5 @@ #include #include -#include #include #include #include @@ -82,7 +81,7 @@ void WayfireIPC::send(const std::string& message, int response_handler) void WayfireIPC::send_message(const std::string& message) { - if (output->has_pending()) + if (output->has_pending() || writing) { write_queue.push(message); write_next(); @@ -135,6 +134,7 @@ void WayfireIPC::write_stream(const std::string& message) } } catch (const Glib::Error& e) { + this->writing = false; if (e.code() == G_IO_ERROR_CANCELLED) { // Intended behavior diff --git a/src/util/wf-ipc.hpp b/src/util/wf-ipc.hpp index 82a6b3f2..35a4f7e3 100644 --- a/src/util/wf-ipc.hpp +++ b/src/util/wf-ipc.hpp @@ -34,7 +34,6 @@ class IPCClient IPCClient(int id, std::shared_ptr ipc) : id(id), ipc(ipc) {} ~IPCClient(); - int get_id(); void handle_response(wf::json_t response); void send(const std::string& message); void send(const std::string& message, response_handler cb);