From 9212e1d7c81934720d764c03f2d27e41d31edb56 Mon Sep 17 00:00:00 2001 From: markt <markt> Date: Sat, 17 Feb 2007 17:40:50 +0000 Subject: an empty slit without autoHide but with clients in the slitlist file still created a strut --- ChangeLog | 2 ++ src/Slit.cc | 9 ++++----- src/Slit.hh | 7 ++++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1f43df7..45a7b5a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,8 @@ (Format: Year/Month/Day) Changes for 1.0rc3: *07/02/17: + * Slit was creating a strut even when it wasn't visible (Mark) + Slit.cc/hh * Update workspace names on reconfigure, and don't overwrite workspace names not being used (Mark) fluxbox.cc Screen.cc diff --git a/src/Slit.cc b/src/Slit.cc index fb12ca6..564523a 100644 --- a/src/Slit.cc +++ b/src/Slit.cc @@ -259,7 +259,7 @@ unsigned int Slit::s_eventmask = SubstructureRedirectMask | ButtonPressMask | EnterWindowMask | LeaveWindowMask | ExposureMask; Slit::Slit(BScreen &scr, FbTk::XLayer &layer, const char *filename) - : m_hidden(false), + : m_hidden(false), m_visible(false), m_screen(scr), m_clientlist_menu(scr.menuTheme(), scr.imageControl(), @@ -369,8 +369,7 @@ void Slit::updateStrut() { clearStrut(); // no need for area if we're autohiding or set maximize over // or if we dont have any clients - if (doAutoHide() || *m_rc_maximize_over || - clients().empty()) { + if (doAutoHide() || *m_rc_maximize_over || !m_visible) { // update screen area if we had a strut before if (had_strut) screen().updateAvailableWorkspaceArea(); @@ -720,9 +719,9 @@ void Slit::reconfigure() { // did we actually use slit slots if (num_windows == 0) - frame.window.hide(); + hide(); else - frame.window.show(); + show(); int x = 0, y = 0; height_inc = false; diff --git a/src/Slit.hh b/src/Slit.hh index ef1c58e..06a8a25 100644 --- a/src/Slit.hh +++ b/src/Slit.hh @@ -68,8 +68,8 @@ public: Slit(BScreen &screen, FbTk::XLayer &layer, const char *filename = 0); virtual ~Slit(); - void show() { frame.window.show(); } - void hide() { frame.window.hide(); } + void show() { frame.window.show(); m_visible = true; } + void hide() { frame.window.hide(); m_visible = false; } void setDirection(Direction dir); void setPlacement(Placement place); void addClient(Window clientwin); @@ -139,7 +139,8 @@ private: void clearStrut(); void updateStrut(); - bool m_hidden; + // m_hidden is for autohide, m_visible is the FbWindow state + bool m_hidden, m_visible; BScreen &m_screen; FbTk::Timer m_timer; -- cgit v0.11.2