added hidden state to remember, patch from akira

This commit is contained in:
fluxgen 2004-02-16 10:26:03 +00:00
parent c0cf1d918b
commit 17c41e5bac
3 changed files with 41 additions and 16 deletions

View file

@ -20,7 +20,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
// $Id: IconbarTool.cc,v 1.32 2004/01/21 14:13:57 fluxgen Exp $
// $Id: IconbarTool.cc,v 1.33 2004/02/16 10:26:03 fluxgen Exp $
#include "IconbarTool.hh"
@ -682,7 +682,7 @@ void IconbarTool::removeWindow(FluxboxWindow &win) {
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);

View file

@ -21,7 +21,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
// $Id: Remember.cc,v 1.33 2003/12/19 00:48:41 fluxgen Exp $
// $Id: Remember.cc,v 1.34 2004/02/16 10:25:33 fluxgen Exp $
#include "Remember.hh"
#include "ClientPattern.hh"
@ -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, Application &app, string *first_line) {
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 &winclient, Attribute attrib) {
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 &winclient, Attribute attrib) {
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 &winclient, Attribute attrib) {
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 &win) {
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);

View file

@ -21,7 +21,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
// $Id: Remember.hh,v 1.14 2004/01/19 18:26:25 fluxgen Exp $
// $Id: Remember.hh,v 1.15 2004/02/16 10:25:34 fluxgen Exp $
/* Based on the original "Remember patch" by Xavier Brouckaert */
@ -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_POSITION,
REM_STUCKSTATE,
REM_DECOSTATE,
REM_SHADEDSTATE,
//REM_TABSTATE, ... external tabs disabled atm
REM_LAYER,
REM_HIDDENSTATE,
REM_JUMPWORKSPACE,
REM_LAYER,
REM_POSITION,
REM_SAVEONCLOSE,
REM_SHADEDSTATE,
REM_STUCKSTATE,
//REM_TABSTATE, ... external tabs disabled atm
REM_WORKSPACE,
REM_LASTATTRIB // not actually used
};