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.
mathias mathias
1 files changed,
9 insertions(+),
6 deletions(-)
jump to
M
src/IconButton.cc
→
src/IconButton.cc
@@ -76,21 +76,24 @@ m_win(win), m_tool(tool) { }
void execute() { if(m_win.isIconic() || !m_win.isFocused()) { switch(m_tool.deiconifyMode()) { - case IconbarTool::CURRENT: - m_win.screen().sendToWorkspace(m_win.screen().currentWorkspaceID(), &m_win); - break; case IconbarTool::FOLLOW: m_win.screen().changeWorkspaceID(m_win.workspaceNumber()); + m_win.raiseAndFocus(); break; case IconbarTool::SEMIFOLLOW: - if (m_win.isIconic()) + if (m_win.isIconic()) { m_win.screen().sendToWorkspace(m_win.screen().currentWorkspaceID(), &m_win); - else + } else { m_win.screen().changeWorkspaceID(m_win.workspaceNumber()); + m_win.raiseAndFocus(); + } + break; + case IconbarTool::CURRENT: + default: + m_win.screen().sendToWorkspace(m_win.screen().currentWorkspaceID(), &m_win); break; }; - m_win.raiseAndFocus(); } else m_win.iconify(); }