mirror of
https://github.com/rad4day/Waybar.git
synced 2023-12-21 10:22:59 +01:00
Merge pull request #1929 from julianschuler/monitor-reconnect-fix
Fixes https://github.com/Alexays/Waybar/issues/1783
This commit is contained in:
commit
c692d7bf64
@ -9,6 +9,7 @@
|
|||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "client.hpp"
|
||||||
#include "gtkmm/widget.h"
|
#include "gtkmm/widget.h"
|
||||||
#include "modules/wlr/workspace_manager_binding.hpp"
|
#include "modules/wlr/workspace_manager_binding.hpp"
|
||||||
|
|
||||||
@ -166,8 +167,20 @@ WorkspaceManager::~WorkspaceManager() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
zext_workspace_manager_v1_destroy(workspace_manager_);
|
wl_display *display = Client::inst()->wl_display;
|
||||||
workspace_manager_ = nullptr;
|
|
||||||
|
// Send `stop` request and wait for one roundtrip. This is not quite correct as
|
||||||
|
// the protocol encourages us to wait for the .finished event, but it should work
|
||||||
|
// with wlroots workspace manager implementation.
|
||||||
|
zext_workspace_manager_v1_stop(workspace_manager_);
|
||||||
|
wl_display_roundtrip(display);
|
||||||
|
|
||||||
|
// If the .finished handler is still not executed, destroy the workspace manager here.
|
||||||
|
if (workspace_manager_) {
|
||||||
|
spdlog::warn("Foreign toplevel manager destroyed before .finished event");
|
||||||
|
zext_workspace_manager_v1_destroy(workspace_manager_);
|
||||||
|
workspace_manager_ = nullptr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
auto WorkspaceManager::remove_workspace_group(uint32_t id) -> void {
|
auto WorkspaceManager::remove_workspace_group(uint32_t id) -> void {
|
||||||
|
Loading…
Reference in New Issue
Block a user