diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Remember.cc | 29 | ||||
-rw-r--r-- | src/Screen.cc | 2 | ||||
-rw-r--r-- | src/Window.cc | 4 |
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 |