aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormarkt <markt>2006-08-04 21:43:47 (GMT)
committermarkt <markt>2006-08-04 21:43:47 (GMT)
commit1dd5e0143e6ab63833851f4b3a42c500a9777162 (patch)
tree37273c4214f11483a0f24d8f0d4011e7a3e8c326 /src
parentc2b35f06715e67e263b3ae70509930c474a9351c (diff)
downloadfluxbox-1dd5e0143e6ab63833851f4b3a42c500a9777162.zip
fluxbox-1dd5e0143e6ab63833851f4b3a42c500a9777162.tar.bz2
don't re-apply remembered settings on restart if they are set as window properties
Diffstat (limited to 'src')
-rw-r--r--src/Remember.cc29
-rw-r--r--src/Screen.cc2
-rw-r--r--src/Window.cc4
3 files changed, 18 insertions, 17 deletions
diff --git a/src/Remember.cc b/src/Remember.cc
index 2a28dda..3d8db2e 100644
--- a/src/Remember.cc
+++ b/src/Remember.cc
@@ -962,15 +962,31 @@ void Remember::setupFrame(FluxboxWindow &win) {
962 if (app == 0) 962 if (app == 0)
963 return; // nothing to do 963 return; // nothing to do
964 964
965 // first, set the options that aren't preserved as window properties on
966 // restart, then return if fluxbox is starting up -- we want restart to
967 // disturb the current window state as little as possible
965 if (app->is_grouped && app->group == 0) 968 if (app->is_grouped && app->group == 0)
966 app->group = &win; 969 app->group = &win;
967 970
971 if (app->focushiddenstate_remember)
972 win.setFocusHidden(true);
973 if (app->iconhiddenstate_remember)
974 win.setIconHidden(true);
975 if (app->layer_remember)
976 win.moveToLayer(app->layer);
977 if (app->decostate_remember)
978 win.setDecorationMask(app->decostate);
979
980 // now check if fluxbox is starting up
981 if (Fluxbox::instance()->isStartup())
982 return;
983
968 BScreen &screen = winclient.screen(); 984 BScreen &screen = winclient.screen();
969 985
970 if (app->workspace_remember) { 986 if (app->workspace_remember) {
971 // we use setWorkspace and not reassoc because we're still initialising 987 // we use setWorkspace and not reassoc because we're still initialising
972 win.setWorkspace(app->workspace); 988 win.setWorkspace(app->workspace);
973 if (app->jumpworkspace_remember && !Fluxbox::instance()->isStartup()) 989 if (app->jumpworkspace_remember)
974 screen.changeWorkspaceID(app->workspace); 990 screen.changeWorkspaceID(app->workspace);
975 } 991 }
976 992
@@ -978,10 +994,6 @@ void Remember::setupFrame(FluxboxWindow &win) {
978 win.screen().setOnHead<FluxboxWindow>(win, app->head); 994 win.screen().setOnHead<FluxboxWindow>(win, app->head);
979 } 995 }
980 996
981 if (app->decostate_remember)
982 win.setDecorationMask(app->decostate);
983
984
985 if (app->dimensions_remember) 997 if (app->dimensions_remember)
986 win.resize(app->w, app->h); 998 win.resize(app->w, app->h);
987 999
@@ -1032,13 +1044,6 @@ void Remember::setupFrame(FluxboxWindow &win) {
1032 if (win.isStuck() && !app->stuckstate || 1044 if (win.isStuck() && !app->stuckstate ||
1033 !win.isStuck() && app->stuckstate) 1045 !win.isStuck() && app->stuckstate)
1034 win.stick(); // toggles 1046 win.stick(); // toggles
1035 if (app->focushiddenstate_remember)
1036 win.setFocusHidden(true);
1037 if (app->iconhiddenstate_remember)
1038 win.setIconHidden(true);
1039
1040 if (app->layer_remember)
1041 win.moveToLayer(app->layer);
1042 1047
1043} 1048}
1044 1049
diff --git a/src/Screen.cc b/src/Screen.cc
index 35df59a..60aed17 100644
--- a/src/Screen.cc
+++ b/src/Screen.cc
@@ -1379,7 +1379,7 @@ FluxboxWindow *BScreen::createWindow(Window client) {
1379 // and if so, then join it. 1379 // and if so, then join it.
1380 if ((other = findGroupRight(*winclient)) && other->fbwindow() != win) 1380 if ((other = findGroupRight(*winclient)) && other->fbwindow() != win)
1381 win->attachClient(*other); 1381 win->attachClient(*other);
1382 else if (other) 1382 else if (other) // should never happen
1383 win->moveClientRightOf(*other, *winclient); 1383 win->moveClientRightOf(*other, *winclient);
1384 1384
1385 m_clientlist_sig.notify(); 1385 m_clientlist_sig.notify();
diff --git a/src/Window.cc b/src/Window.cc
index f6c7242..687f2d4 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -627,7 +627,6 @@ void FluxboxWindow::attachClient(WinClient &client, int x, int y) {
627 WinClient *was_focused = 0; 627 WinClient *was_focused = 0;
628 WinClient *focused_win = FocusControl::focusedWindow(); 628 WinClient *focused_win = FocusControl::focusedWindow();
629 629
630 WinClient *other = m_screen.findGroupLeft(client);
631 // get the current window on the end of our client list 630 // get the current window on the end of our client list
632 Window leftwin = None; 631 Window leftwin = None;
633 if (!clientList().empty()) 632 if (!clientList().empty())
@@ -691,9 +690,6 @@ void FluxboxWindow::attachClient(WinClient &client, int x, int y) {
691 690
692 client.saveBlackboxAttribs(m_blackbox_attrib); 691 client.saveBlackboxAttribs(m_blackbox_attrib);
693 m_clientlist.push_back(&client); 692 m_clientlist.push_back(&client);
694
695 if (other && other->fbwindow() == this)
696 moveClientRightOf(client, *other);
697 } 693 }
698 694
699 // make sure that the state etc etc is updated for the new client 695 // make sure that the state etc etc is updated for the new client