an empty slit without autoHide but with clients in the slitlist file still created a strut

This commit is contained in:
markt 2007-02-17 17:40:50 +00:00
parent 2f130ce836
commit 9212e1d7c8
3 changed files with 10 additions and 8 deletions

View file

@ -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

View file

@ -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;

View file

@ -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;