aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormarkt <markt>2007-05-04 17:13:50 (GMT)
committermarkt <markt>2007-05-04 17:13:50 (GMT)
commitdb2904e1445bfe09c7ea55e2d67f4e51aeca292f (patch)
treed58b0fd966562b083ef8e50bf48c9cf936b2ddfb /src
parent5eb658a51fbe8fdb4efdc9379f1bc5bffe86931c (diff)
downloadfluxbox_paul-db2904e1445bfe09c7ea55e2d67f4e51aeca292f.zip
fluxbox_paul-db2904e1445bfe09c7ea55e2d67f4e51aeca292f.tar.bz2
fix infinite loop caused by deiconify command
Diffstat (limited to 'src')
-rw-r--r--src/FbCommands.cc7
-rw-r--r--src/Window.cc2
2 files changed, 6 insertions, 3 deletions
diff --git a/src/FbCommands.cc b/src/FbCommands.cc
index 060f4d3..afa7984 100644
--- a/src/FbCommands.cc
+++ b/src/FbCommands.cc
@@ -394,8 +394,11 @@ void DeiconifyCmd::execute() {
394 if (screen == 0) 394 if (screen == 0)
395 return; 395 return;
396 396
397 BScreen::Icons::reverse_iterator it= screen->iconList().rbegin(); 397 // we need to make a copy of the list of icons, or else our iterator can
398 BScreen::Icons::reverse_iterator itend= screen->iconList().rend(); 398 // become invalid
399 BScreen::Icons icon_list = screen->iconList();
400 BScreen::Icons::iterator it = icon_list.begin();
401 BScreen::Icons::iterator itend= icon_list.end();
399 unsigned int workspace_num= screen->currentWorkspaceID(); 402 unsigned int workspace_num= screen->currentWorkspaceID();
400 unsigned int old_workspace_num; 403 unsigned int old_workspace_num;
401 404
diff --git a/src/Window.cc b/src/Window.cc
index 066d962..24fc8df 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -458,7 +458,7 @@ void FluxboxWindow::init() {
458 458
459 restoreAttributes(); 459 restoreAttributes();
460 460
461 if (m_workspace_number < 0 || m_workspace_number >= screen().numberOfWorkspaces()) 461 if (m_workspace_number >= screen().numberOfWorkspaces())
462 m_workspace_number = screen().currentWorkspaceID(); 462 m_workspace_number = screen().currentWorkspaceID();
463 463
464 bool place_window = (m_old_pos_x == static_cast<signed>(m_screen.width())); 464 bool place_window = (m_old_pos_x == static_cast<signed>(m_screen.width()));