summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormathias <mathias>2004-11-28 12:41:57 (GMT)
committermathias <mathias>2004-11-28 12:41:57 (GMT)
commitc813375f390e7d025c6b699007a7c3e7d03f2e06 (patch)
tree5afbebb3d18abf8c22eef39a1636c23a4c6a0704
parent56e699405a2aa9eaede3f42cc1022137ac5db680 (diff)
downloadfluxbox_lack-c813375f390e7d025c6b699007a7c3e7d03f2e06.zip
fluxbox_lack-c813375f390e7d025c6b699007a7c3e7d03f2e06.tar.bz2
fix possible segfaults in DeiconifyMode::SEMIFOLLOW and FOLLOW ...
the raisAndFocus after the sendToWorkspace makes problems, dunno why exactly so this is still an open issue imho.
-rw-r--r--src/IconButton.cc15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/IconButton.cc b/src/IconButton.cc
index 9b5c054..0ed516d 100644
--- a/src/IconButton.cc
+++ b/src/IconButton.cc
@@ -76,21 +76,24 @@ public:
76 void execute() { 76 void execute() {
77 if(m_win.isIconic() || !m_win.isFocused()) { 77 if(m_win.isIconic() || !m_win.isFocused()) {
78 switch(m_tool.deiconifyMode()) { 78 switch(m_tool.deiconifyMode()) {
79 case IconbarTool::CURRENT:
80 m_win.screen().sendToWorkspace(m_win.screen().currentWorkspaceID(), &m_win);
81 break;
82 case IconbarTool::FOLLOW: 79 case IconbarTool::FOLLOW:
83 m_win.screen().changeWorkspaceID(m_win.workspaceNumber()); 80 m_win.screen().changeWorkspaceID(m_win.workspaceNumber());
81 m_win.raiseAndFocus();
84 break; 82 break;
85 case IconbarTool::SEMIFOLLOW: 83 case IconbarTool::SEMIFOLLOW:
86 if (m_win.isIconic()) 84 if (m_win.isIconic()) {
87 m_win.screen().sendToWorkspace(m_win.screen().currentWorkspaceID(), &m_win); 85 m_win.screen().sendToWorkspace(m_win.screen().currentWorkspaceID(), &m_win);
88 else 86 } else {
89 m_win.screen().changeWorkspaceID(m_win.workspaceNumber()); 87 m_win.screen().changeWorkspaceID(m_win.workspaceNumber());
88 m_win.raiseAndFocus();
89 }
90 break;
91 case IconbarTool::CURRENT:
92 default:
93 m_win.screen().sendToWorkspace(m_win.screen().currentWorkspaceID(), &m_win);
90 break; 94 break;
91 }; 95 };
92 96
93 m_win.raiseAndFocus();
94 } else 97 } else
95 m_win.iconify(); 98 m_win.iconify();
96 } 99 }