fix: Use defined event sink priority
This commit is contained in:
parent
a1ad4de470
commit
4776ec49df
@ -29,6 +29,11 @@
|
|||||||
#cmakedefine VERBOSE_TRACELOG
|
#cmakedefine VERBOSE_TRACELOG
|
||||||
#cmakedefine DEBUG_HINTS
|
#cmakedefine DEBUG_HINTS
|
||||||
|
|
||||||
|
static const int SINK_PRIORITY_BAR{1};
|
||||||
|
static const int SINK_PRIORITY_SCREEN{2};
|
||||||
|
static const int SINK_PRIORITY_TRAY{3};
|
||||||
|
static const int SINK_PRIORITY_MODULE{4};
|
||||||
|
|
||||||
#ifdef DEBUG_HINTS
|
#ifdef DEBUG_HINTS
|
||||||
static const int DEBUG_HINTS_OFFSET_X{@DEBUG_HINTS_OFFSET_X@};
|
static const int DEBUG_HINTS_OFFSET_X{@DEBUG_HINTS_OFFSET_X@};
|
||||||
static const int DEBUG_HINTS_OFFSET_Y{@DEBUG_HINTS_OFFSET_Y@};
|
static const int DEBUG_HINTS_OFFSET_Y{@DEBUG_HINTS_OFFSET_Y@};
|
||||||
|
@ -45,7 +45,6 @@ namespace modules {
|
|||||||
xworkspaces_module(const bar_settings& bar, const logger& logger, const config& config, string name);
|
xworkspaces_module(const bar_settings& bar, const logger& logger, const config& config, string name);
|
||||||
|
|
||||||
void setup();
|
void setup();
|
||||||
void start();
|
|
||||||
void teardown();
|
void teardown();
|
||||||
void handle(const evt::property_notify& evt);
|
void handle(const evt::property_notify& evt);
|
||||||
void update();
|
void update();
|
||||||
|
@ -53,7 +53,7 @@ bar::bar(connection& conn, const config& config, const logger& logger, unique_pt
|
|||||||
bar::~bar() {
|
bar::~bar() {
|
||||||
std::lock_guard<std::mutex> guard(m_mutex);
|
std::lock_guard<std::mutex> guard(m_mutex);
|
||||||
g_signals::tray::report_slotcount = nullptr;
|
g_signals::tray::report_slotcount = nullptr;
|
||||||
m_connection.detach_sink(this, 1);
|
m_connection.detach_sink(this, SINK_PRIORITY_BAR);
|
||||||
m_tray.reset();
|
m_tray.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,7 +148,7 @@ void bar::bootstrap(bool nodraw) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_log.trace("bar: Attaching sink to registry");
|
m_log.trace("bar: Attaching sink to registry");
|
||||||
m_connection.attach_sink(this, 1);
|
m_connection.attach_sink(this, SINK_PRIORITY_BAR);
|
||||||
|
|
||||||
configure_geom();
|
configure_geom();
|
||||||
|
|
||||||
|
@ -60,14 +60,14 @@ screen::screen(connection& conn, const logger& logger, const config& conf)
|
|||||||
m_connection.clear_event_mask(m_root);
|
m_connection.clear_event_mask(m_root);
|
||||||
|
|
||||||
// Finally attach the sink the process randr events
|
// Finally attach the sink the process randr events
|
||||||
m_connection.attach_sink(this, 1);
|
m_connection.attach_sink(this, SINK_PRIORITY_SCREEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deconstruct screen instance
|
* Deconstruct screen instance
|
||||||
*/
|
*/
|
||||||
screen::~screen() {
|
screen::~screen() {
|
||||||
m_connection.detach_sink(this, 1);
|
m_connection.detach_sink(this, SINK_PRIORITY_SCREEN);
|
||||||
|
|
||||||
if (m_proxy != XCB_NONE) {
|
if (m_proxy != XCB_NONE) {
|
||||||
m_connection.destroy_window(m_proxy);
|
m_connection.destroy_window(m_proxy);
|
||||||
|
@ -65,7 +65,7 @@ namespace modules {
|
|||||||
|
|
||||||
// Connect with the event registry and make sure we get
|
// Connect with the event registry and make sure we get
|
||||||
// notified when a RandR output property gets modified
|
// notified when a RandR output property gets modified
|
||||||
m_connection.attach_sink(this, 1);
|
m_connection.attach_sink(this, SINK_PRIORITY_MODULE);
|
||||||
m_connection.select_input_checked(m_proxy, XCB_RANDR_NOTIFY_MASK_OUTPUT_PROPERTY);
|
m_connection.select_input_checked(m_proxy, XCB_RANDR_NOTIFY_MASK_OUTPUT_PROPERTY);
|
||||||
|
|
||||||
// Add formats and elements
|
// Add formats and elements
|
||||||
@ -89,7 +89,7 @@ namespace modules {
|
|||||||
* Disconnect from the event registry
|
* Disconnect from the event registry
|
||||||
*/
|
*/
|
||||||
void xbacklight_module::teardown() {
|
void xbacklight_module::teardown() {
|
||||||
m_connection.detach_sink(this, 1);
|
m_connection.detach_sink(this, SINK_PRIORITY_MODULE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -38,7 +38,7 @@ namespace modules {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Connect to the event registry
|
// Connect to the event registry
|
||||||
m_connection.attach_sink(this, 3);
|
m_connection.attach_sink(this, SINK_PRIORITY_MODULE);
|
||||||
|
|
||||||
// Setup extension
|
// Setup extension
|
||||||
m_connection.xkb().select_events_checked(XCB_XKB_ID_USE_CORE_KBD,
|
m_connection.xkb().select_events_checked(XCB_XKB_ID_USE_CORE_KBD,
|
||||||
@ -55,7 +55,7 @@ namespace modules {
|
|||||||
* Disconnect from the event registry
|
* Disconnect from the event registry
|
||||||
*/
|
*/
|
||||||
void xkeyboard_module::teardown() {
|
void xkeyboard_module::teardown() {
|
||||||
m_connection.detach_sink(this, 3);
|
m_connection.detach_sink(this, SINK_PRIORITY_MODULE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -98,7 +98,7 @@ namespace modules {
|
|||||||
m_connection.ensure_event_mask(m_connection.root(), XCB_EVENT_MASK_PROPERTY_CHANGE);
|
m_connection.ensure_event_mask(m_connection.root(), XCB_EVENT_MASK_PROPERTY_CHANGE);
|
||||||
|
|
||||||
// Connect with the event registry
|
// Connect with the event registry
|
||||||
m_connection.attach_sink(this, 1);
|
m_connection.attach_sink(this, SINK_PRIORITY_MODULE);
|
||||||
|
|
||||||
// Trigger the initial draw event
|
// Trigger the initial draw event
|
||||||
update();
|
update();
|
||||||
@ -108,7 +108,7 @@ namespace modules {
|
|||||||
* Disconnect from the event registry
|
* Disconnect from the event registry
|
||||||
*/
|
*/
|
||||||
void xwindow_module::teardown() {
|
void xwindow_module::teardown() {
|
||||||
m_connection.detach_sink(this, 1);
|
m_connection.detach_sink(this, SINK_PRIORITY_MODULE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -83,19 +83,17 @@ namespace modules {
|
|||||||
// Make sure we get notified when root properties change
|
// Make sure we get notified when root properties change
|
||||||
window{m_connection, m_connection.root()}.ensure_event_mask(XCB_EVENT_MASK_PROPERTY_CHANGE);
|
window{m_connection, m_connection.root()}.ensure_event_mask(XCB_EVENT_MASK_PROPERTY_CHANGE);
|
||||||
|
|
||||||
|
// Connect with the event registry
|
||||||
|
m_connection.attach_sink(this, SINK_PRIORITY_MODULE);
|
||||||
|
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void xworkspaces_module::start() {
|
|
||||||
// Connect with the event registry
|
|
||||||
m_connection.attach_sink(this, 3);
|
|
||||||
static_module::start();
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* Disconnect from the event registry
|
* Disconnect from the event registry
|
||||||
*/
|
*/
|
||||||
void xworkspaces_module::teardown() {
|
void xworkspaces_module::teardown() {
|
||||||
m_connection.detach_sink(this, 3);
|
m_connection.detach_sink(this, SINK_PRIORITY_MODULE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -139,11 +139,11 @@ void tray_client::configure_notify(int16_t x, int16_t y) const { // {{{
|
|||||||
// implementation : tray_manager {{{
|
// implementation : tray_manager {{{
|
||||||
|
|
||||||
tray_manager::tray_manager(connection& conn, const logger& logger) : m_connection(conn), m_log(logger) {
|
tray_manager::tray_manager(connection& conn, const logger& logger) : m_connection(conn), m_log(logger) {
|
||||||
m_connection.attach_sink(this, 2);
|
m_connection.attach_sink(this, SINK_PRIORITY_TRAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
tray_manager::~tray_manager() {
|
tray_manager::~tray_manager() {
|
||||||
m_connection.detach_sink(this, 2);
|
m_connection.detach_sink(this, SINK_PRIORITY_TRAY);
|
||||||
|
|
||||||
if (m_delaythread.joinable()) {
|
if (m_delaythread.joinable()) {
|
||||||
m_delaythread.join();
|
m_delaythread.join();
|
||||||
|
Loading…
Reference in New Issue
Block a user