all repos — fluxbox @ 9214e519b37be2025eb2fd0b9af6a1216eb3fbd0

custom fork of the fluxbox windowmanager

added new IconbarModes:

  NoIcons          - display all noniconified windows
  WorkspaceNoIcons - display all noniconified windows on the current
                     workspace

modified the nls-files accordingly
mathias mathias
commit

9214e519b37be2025eb2fd0b9af6a1216eb3fbd0

parent

e2acd2b04c4b390a0ce2f6bc7aa91f0476335db9

4 files changed, 53 insertions(+), 9 deletions(-)

jump to
M nls/C/Translation.mnls/C/Translation.m

@@ -185,6 +185,8 @@ 13 Clock: 24h

14 Clock: 12h 15 Edit Clock Format 16 Show Pictures +17 NoIcons +18 WorkspaceNoIcons $set 15 #Window
M nls/fluxbox-nls.hhnls/fluxbox-nls.hh

@@ -177,6 +177,8 @@ ToolbarClock24 = 13,

ToolbarClock12 = 14, ToolbarClockEditFormat = 15, ToolbarShowIcons = 16, + ToolbarIconbarModeNoIcons = 17, + ToolbarIconbarModeWorkspaceNoIcons = 18, WindowSet = 15, WindowUnnamed = 1,
M src/FbWinFrame.hhsrc/FbWinFrame.hh

@@ -163,6 +163,8 @@ inline int x() const { return m_window.x(); }

inline int y() const { return m_window.y(); } inline unsigned int width() const { return m_window.width(); } inline unsigned int height() const { return m_window.height(); } + inline unsigned int widthBeforeShade() const { return m_width_before_shade; } + inline unsigned int heightBeforeShade() const { return m_height_before_shade; } inline const FbTk::FbWindow &window() const { return m_window; } inline FbTk::FbWindow &window() { return m_window; } /// @return titlebar window
M src/IconbarTool.ccsrc/IconbarTool.cc

@@ -55,8 +55,12 @@ if (strcasecmp(strval, "None") == 0)

m_value = IconbarTool::NONE; else if (strcasecmp(strval, "Icons") == 0) m_value = IconbarTool::ICONS; + else if (strcasecmp(strval, "NoIcons") == 0) + m_value = IconbarTool::NOICONS; else if (strcasecmp(strval, "WorkspaceIcons") == 0) m_value = IconbarTool::WORKSPACEICONS; + else if (strcasecmp(strval, "WorkspaceNoIcons") == 0) + m_value = IconbarTool::WORKSPACENOICONS; else if (strcasecmp(strval, "Workspace") == 0) m_value = IconbarTool::WORKSPACE; else if (strcasecmp(strval, "AllWindows") == 0)

@@ -167,8 +171,14 @@ break;

case IconbarTool::ICONS: return string("Icons"); break; + case IconbarTool::NOICONS: + return string("NoIcons"); + break; case IconbarTool::WORKSPACEICONS: return string("WorkspaceIcons"); + break; + case IconbarTool::WORKSPACENOICONS: + return string("WorkspaceNoIcons"); break; case IconbarTool::WORKSPACE: return string("Workspace");

@@ -242,11 +252,23 @@ handler,

IconbarTool::ICONS, saverc_cmd)); menu.insert(new ToolbarModeMenuItem( + _FBTEXT(Toolbar, IconbarModeNoIcons, + "NoIcons", "No iconified windows from all workspaces are shown"), + handler, + IconbarTool::NOICONS, saverc_cmd)); + + menu.insert(new ToolbarModeMenuItem( _FBTEXT(Toolbar, IconbarModeWorkspaceIcons, "WorkspaceIcons", "Iconified windows from this workspace are shown"), handler, IconbarTool::WORKSPACEICONS, saverc_cmd)); + menu.insert(new ToolbarModeMenuItem( + _FBTEXT(Toolbar, IconbarModeWorkspaceNoIcons, + "WorkspaceNoIcons", "No iconified windows from this workspace are shown"), + handler, + IconbarTool::WORKSPACENOICONS, saverc_cmd)); + menu.insert(new ToolbarModeMenuItem( _FBTEXT(Toolbar, IconbarModeWorkspace, "Workspace", "Normal and iconified windows from this workspace are shown"),

@@ -290,11 +312,18 @@ case IconbarTool::ICONS:

if (win.isIconic()) ret_val = true; break; + case IconbarTool::NOICONS: + if (!win.isIconic()) + ret_val = true; + break; case IconbarTool::WORKSPACEICONS: if(win.workspaceNumber() == win.screen().currentWorkspaceID() && win.isIconic()) ret_val = true; break; + case IconbarTool::WORKSPACENOICONS: + if (win.isIconic()) + break; case IconbarTool::WORKSPACE: if (win.workspaceNumber() == win.screen().currentWorkspaceID()) ret_val = true;

@@ -456,9 +485,11 @@ case ICONS: // all icons from all workspaces

case WORKSPACEICONS: // all icons on current workspace updateIcons(); break; + case WORKSPACENOICONS: case WORKSPACE: // all windows and all icons on current workspace updateWorkspace(); break; + case NOICONS: case ALLWINDOWS: // all windows and all icons from all workspaces updateAllWindows(); break;

@@ -595,9 +626,11 @@ case ICONS:

case WORKSPACEICONS: updateIcons(); break; + case WORKSPACENOICONS: case WORKSPACE: updateWorkspace(); break; + case NOICONS: case ALLWINDOWS: updateAllWindows(); break;

@@ -867,13 +900,16 @@ Workspace::Windows::iterator win_it_end = space.windowList().end();

for (; win_it != win_it_end; ++win_it) { if (checkAddWindow(mode(), **win_it)) itemlist.push_back(*win_it); - } + } + // add icons from current workspace - BScreen::Icons::iterator icon_it = m_screen.getIconList().begin(); - BScreen::Icons::iterator icon_it_end = m_screen.getIconList().end(); - for (; icon_it != icon_it_end; ++icon_it) { - if ((*icon_it)->workspaceNumber() == m_screen.currentWorkspaceID()) - itemlist.push_back(*icon_it); + if (mode() != WORKSPACENOICONS) { + BScreen::Icons::iterator icon_it = m_screen.getIconList().begin(); + BScreen::Icons::iterator icon_it_end = m_screen.getIconList().end(); + for (; icon_it != icon_it_end; ++icon_it) { + if ((*icon_it)->workspaceNumber() == m_screen.currentWorkspaceID()) + itemlist.push_back(*icon_it); + } } removeDuplicate(m_icon_list, itemlist);

@@ -892,9 +928,11 @@ (*workspace_it)->windowList().begin(),

(*workspace_it)->windowList().end()); } // add icons - full_list.insert(full_list.end(), - m_screen.getIconList().begin(), - m_screen.getIconList().end()); + if(mode() != NOICONS && mode() != WORKSPACENOICONS) { + full_list.insert(full_list.end(), + m_screen.getIconList().begin(), + m_screen.getIconList().end()); + } removeDuplicate(m_icon_list, full_list); addList(full_list);