fix: Update _NET_WM_* atoms for the bar window
This commit is contained in:
parent
1445b95af8
commit
0128168c51
1 changed files with 14 additions and 41 deletions
|
@ -244,7 +244,6 @@ class bar : public xpp::event::sink<evt::button_press, evt::expose> {
|
||||||
|
|
||||||
m_log.trace("bar: Set _NET_WM_WINDOW_TYPE");
|
m_log.trace("bar: Set _NET_WM_WINDOW_TYPE");
|
||||||
{
|
{
|
||||||
// const uint32_t win_types[2] = {_NET_WM_WINDOW_TYPE_DOCK, _NET_WM_WINDOW_TYPE_NORMAL};
|
|
||||||
const uint32_t win_types[1] = {_NET_WM_WINDOW_TYPE_DOCK};
|
const uint32_t win_types[1] = {_NET_WM_WINDOW_TYPE_DOCK};
|
||||||
m_connection.change_property_checked(
|
m_connection.change_property_checked(
|
||||||
XCB_PROP_MODE_REPLACE, m_window, _NET_WM_WINDOW_TYPE, XCB_ATOM_ATOM, 32, 1, win_types);
|
XCB_PROP_MODE_REPLACE, m_window, _NET_WM_WINDOW_TYPE, XCB_ATOM_ATOM, 32, 1, win_types);
|
||||||
|
@ -252,52 +251,26 @@ class bar : public xpp::event::sink<evt::button_press, evt::expose> {
|
||||||
|
|
||||||
m_log.trace("bar: Set _NET_WM_STATE");
|
m_log.trace("bar: Set _NET_WM_STATE");
|
||||||
{
|
{
|
||||||
if (m_bar.width == m_bar.monitor->w) {
|
const uint32_t win_states[2] = {_NET_WM_STATE_STICKY, _NET_WM_STATE_ABOVE};
|
||||||
const uint32_t win_states[3] = {
|
|
||||||
_NET_WM_STATE_STICKY, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_MAXIMIZED_VERT};
|
|
||||||
m_connection.change_property_checked(
|
|
||||||
XCB_PROP_MODE_REPLACE, m_window, _NET_WM_STATE, XCB_ATOM_ATOM, 32, 3, win_states);
|
|
||||||
} else {
|
|
||||||
const uint32_t win_states[2] = {_NET_WM_STATE_STICKY, _NET_WM_STATE_SKIP_TASKBAR};
|
|
||||||
m_connection.change_property_checked(
|
|
||||||
XCB_PROP_MODE_REPLACE, m_window, _NET_WM_STATE, XCB_ATOM_ATOM, 32, 2, win_states);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
m_log.trace("bar: Set _NET_WM_STRUT");
|
|
||||||
{
|
|
||||||
// clang-format off
|
|
||||||
uint32_t none{0};
|
|
||||||
uint32_t value_list[4]{
|
|
||||||
static_cast<uint32_t>(m_bar.x), // left
|
|
||||||
none, // right
|
|
||||||
m_bar.bottom ? none : m_bar.height + m_bar.offset_y, // top
|
|
||||||
m_bar.bottom ? m_bar.height + m_bar.offset_y : none, // bottom
|
|
||||||
};
|
|
||||||
// clang-format on
|
|
||||||
m_connection.change_property_checked(
|
m_connection.change_property_checked(
|
||||||
XCB_PROP_MODE_REPLACE, m_window, _NET_WM_STRUT, XCB_ATOM_CARDINAL, 32, 4, value_list);
|
XCB_PROP_MODE_REPLACE, m_window, _NET_WM_STATE, XCB_ATOM_ATOM, 32, 2, win_states);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_log.trace("bar: Set _NET_WM_STRUT_PARTIAL");
|
m_log.trace("bar: Set _NET_WM_STRUT_PARTIAL");
|
||||||
{
|
{
|
||||||
// clang-format off
|
|
||||||
uint32_t none{0};
|
uint32_t none{0};
|
||||||
const uint32_t value_list[12]{
|
uint32_t value_list[12]{none};
|
||||||
static_cast<uint32_t>(m_bar.x), // left
|
|
||||||
none, // right
|
if (m_bar.bottom) {
|
||||||
m_bar.bottom ? none : m_bar.height + m_bar.offset_y, // top
|
value_list[3] = m_bar.height;
|
||||||
m_bar.bottom ? m_bar.height + m_bar.offset_y : none, // bottom
|
value_list[10] = m_bar.x;
|
||||||
none, // left_start_y
|
value_list[11] = m_bar.x + m_bar.width;
|
||||||
none, // left_end_y
|
} else {
|
||||||
none, // right_start_y
|
value_list[2] = m_bar.height;
|
||||||
none, // right_end_y
|
value_list[8] = m_bar.x;
|
||||||
m_bar.bottom ? none : m_bar.x, // top_start_x
|
value_list[9] = m_bar.x + m_bar.width;
|
||||||
m_bar.bottom ? none : static_cast<uint32_t>(m_bar.x + m_bar.width), // top_end_x
|
}
|
||||||
m_bar.bottom ? m_bar.x : none, // bottom_start_x
|
|
||||||
m_bar.bottom ? static_cast<uint32_t>(m_bar.x + m_bar.width) : none, // bottom_end_x
|
|
||||||
};
|
|
||||||
// clang-format on
|
|
||||||
m_connection.change_property_checked(XCB_PROP_MODE_REPLACE, m_window, _NET_WM_STRUT_PARTIAL,
|
m_connection.change_property_checked(XCB_PROP_MODE_REPLACE, m_window, _NET_WM_STRUT_PARTIAL,
|
||||||
XCB_ATOM_CARDINAL, 32, 12, value_list);
|
XCB_ATOM_CARDINAL, 32, 12, value_list);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue