fixed the bar being behind transparent fullscreen windows

This commit is contained in:
vaxerski 2021-11-28 13:04:07 +01:00
parent 5f8634adbb
commit c0940bddd8
2 changed files with 23 additions and 0 deletions

View file

@ -1108,6 +1108,28 @@ void CWindowManager::updateBarInfo() {
} }
IPCSendMessage(m_sIPCBarPipeIn.szPipeName, message); IPCSendMessage(m_sIPCBarPipeIn.szPipeName, message);
// Also check if the bar should be made invisibel
// we make it by moving it far far away
// the bar will also stop all updates
if (message.fullscreenOnBar) {
if (lastKnownBarPosition.x == -1 && lastKnownBarPosition.y == -1) {
lastKnownBarPosition = monitors[ConfigManager::getInt("bar:monitor") > monitors.size() ? 0 : ConfigManager::getInt("bar:monitor")].vecPosition;
}
Values[0] = (int)-99999;
Values[1] = (int)-99999;
xcb_configure_window(DisplayConnection, barWindowID, XCB_CONFIG_WINDOW_X | XCB_CONFIG_WINDOW_Y, Values);
} else {
if (lastKnownBarPosition.x != -1 && lastKnownBarPosition.y != -1) {
Values[0] = (int)lastKnownBarPosition.x;
Values[1] = (int)lastKnownBarPosition.y;
xcb_configure_window(DisplayConnection, barWindowID, XCB_CONFIG_WINDOW_X | XCB_CONFIG_WINDOW_Y, Values);
}
lastKnownBarPosition = Vector2D(-1, -1);
}
} }
void CWindowManager::setAllFloatingWindowsTop() { void CWindowManager::setAllFloatingWindowsTop() {

View file

@ -46,6 +46,7 @@ public:
SIPCPipe m_sIPCBarPipeIn = {ISDEBUG ? "/tmp/hypr/hyprbarind" : "/tmp/hypr/hyprbarin", 0}; SIPCPipe m_sIPCBarPipeIn = {ISDEBUG ? "/tmp/hypr/hyprbarind" : "/tmp/hypr/hyprbarin", 0};
SIPCPipe m_sIPCBarPipeOut = {ISDEBUG ? "/tmp/hypr/hyprbaroutd" : "/tmp/hypr/hyprbarout", 0}; SIPCPipe m_sIPCBarPipeOut = {ISDEBUG ? "/tmp/hypr/hyprbaroutd" : "/tmp/hypr/hyprbarout", 0};
CStatusBar* statusBar = nullptr; CStatusBar* statusBar = nullptr;
Vector2D lastKnownBarPosition = {-1,-1};
uint64_t barWindowID = 0; uint64_t barWindowID = 0;
GThread* barThread; /* Well right now anything but the bar but lol */ GThread* barThread; /* Well right now anything but the bar but lol */