--- cvs/src/Remember.cc 2003-12-20 12:23:59.000000000 +0100 +++ fb/src/Remember.cc 2004-02-06 00:47:25.000000000 +0100 @@ -208,15 +208,16 @@ Application::Application(bool grouped) : is_grouped(grouped), group(0) { - workspace_remember = + decostate_remember = dimensions_remember = + hiddenstate_remember = + jumpworkspace_remember = + layer_remember = position_remember = - stuckstate_remember = - decostate_remember = shadedstate_remember = + stuckstate_remember = tabstate_remember = - jumpworkspace_remember = - layer_remember = + workspace_remember = save_on_close_remember = false; } @@ -363,6 +364,8 @@ int Remember::parseApp(ifstream &file, A app.rememberShadedstate((str_label=="yes")); } else if (str_key == "Tab") { app.rememberTabstate((str_label=="yes")); + } else if (str_key == "Hidden") { + app.rememberHiddenstate((str_label=="yes")); } else if (str_key == "Deco") { if (str_label == "NONE") { app.rememberDecostate((unsigned int) 0); @@ -545,6 +548,9 @@ void Remember::save() { if (a.tabstate_remember) { apps_file << " [Tab]\t\t{" << ((a.tabstate)?"yes":"no") << "}" << endl; } + if (a.hiddenstate_remember) { + apps_file << " [Hidden]\t\t{" << ((a.tabstate)?"yes":"no") << "}" << endl; + } if (a.decostate_remember) { switch (a.decostate) { case (0) : @@ -601,6 +607,9 @@ bool Remember::isRemembered(WinClient &w case REM_POSITION: return app->position_remember; break; + case REM_HIDDENSTATE: + return app->hiddenstate_remember; + break; case REM_STUCKSTATE: return app->stuckstate_remember; break; @@ -646,6 +655,9 @@ void Remember::rememberAttrib(WinClient case REM_POSITION: app->rememberPosition(win->x(), win->y()); break; + case REM_HIDDENSTATE: + app->rememberHiddenstate(win->isHidden()); + break; case REM_SHADEDSTATE: app->rememberShadedstate(win->isShaded()); break; @@ -691,6 +703,9 @@ void Remember::forgetAttrib(WinClient &w case REM_POSITION: app->forgetPosition(); break; + case REM_HIDDENSTATE: + app->forgetHiddenstate(); + break; case REM_STUCKSTATE: app->forgetStuckstate(); break; @@ -794,6 +809,8 @@ void Remember::setupFrame(FluxboxWindow if (win.isStuck() && !app->stuckstate || !win.isStuck() && app->stuckstate) win.stick(); // toggles + if (app->hiddenstate_remember) + win.setHidden(true); if (app->layer_remember) win.moveToLayer(app->layer); --- cvs/src/Remember.hh 2004-01-21 12:57:10.000000000 +0100 +++ fb/src/Remember.hh 2004-02-05 19:31:03.000000000 +0100 @@ -50,6 +50,7 @@ public: inline void forgetShadedstate() { shadedstate_remember = false; } inline void forgetTabstate() { tabstate_remember = false; } inline void forgetDecostate() { decostate_remember = false; } + inline void forgetHiddenstate() { hiddenstate_remember= false; } inline void forgetStuckstate() { stuckstate_remember = false; } inline void forgetJumpworkspace() { jumpworkspace_remember = false; } inline void forgetLayer() { layer_remember = false; } @@ -59,6 +60,9 @@ public: { workspace = ws; workspace_remember = true; } inline void rememberDimensions(int width, int height) { w = width; h = height; dimensions_remember = true; } + + inline void rememberHiddenstate(bool state) + { hiddenstate= state; hiddenstate_remember= true; } inline void rememberPosition(int posx, int posy, unsigned char rfc= 0 ) { x = posx; y = posy; refc = rfc; position_remember = true; } inline void rememberShadedstate(bool state) @@ -102,6 +106,9 @@ public: bool stuckstate_remember; bool stuckstate; + bool hiddenstate_remember; + bool hiddenstate; + bool jumpworkspace_remember; bool jumpworkspace; @@ -129,16 +136,17 @@ public: * holds which attributes to remember */ enum Attribute { - REM_WORKSPACE=0, + REM_DECOSTATE= 0, REM_DIMENSIONS, + REM_HIDDENSTATE, + REM_JUMPWORKSPACE, + REM_LAYER, REM_POSITION, - REM_STUCKSTATE, - REM_DECOSTATE, + REM_SAVEONCLOSE, REM_SHADEDSTATE, + REM_STUCKSTATE, //REM_TABSTATE, ... external tabs disabled atm - REM_LAYER, - REM_JUMPWORKSPACE, - REM_SAVEONCLOSE, + REM_WORKSPACE, REM_LASTATTRIB // not actually used }; --- cvs/src/IconbarTool.cc 2004-01-21 21:23:41.000000000 +0100 +++ fb/src/IconbarTool.cc 2004-02-05 19:31:35.000000000 +0100 @@ -682,7 +682,7 @@ void IconbarTool::removeWindow(FluxboxWi void IconbarTool::addWindow(FluxboxWindow &win) { // we just want windows that has clients - if (win.clientList().empty()) + if (win.clientList().empty() || win.isHidden() ) return; IconButton *button = new IconButton(m_icon_container, m_theme.focusedText().font(), win);