diff options
author | mathias <mathias> | 2004-11-28 12:41:57 (GMT) |
---|---|---|
committer | mathias <mathias> | 2004-11-28 12:41:57 (GMT) |
commit | c813375f390e7d025c6b699007a7c3e7d03f2e06 (patch) | |
tree | 5afbebb3d18abf8c22eef39a1636c23a4c6a0704 | |
parent | 56e699405a2aa9eaede3f42cc1022137ac5db680 (diff) | |
download | fluxbox-c813375f390e7d025c6b699007a7c3e7d03f2e06.zip fluxbox-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.cc | 15 |
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 | } |