From df5d6f30e27eb058c71cf4f3b80e358f35260a2d Mon Sep 17 00:00:00 2001
From: fluxgen <fluxgen>
Date: Mon, 19 Jan 2004 18:28:08 +0000
Subject: using isHidden attrib in Window

---
src/IconbarTool.cc | 31 ++++++++++++++-----------------
1 file changed, 14 insertions(+), 17 deletions(-)

diff --git a/src/IconbarTool.cc b/src/IconbarTool.cc
index c367296..e3fc6c5 100644
--- a/src/IconbarTool.cc
+++ b/src/IconbarTool.cc
@@ -20,7 +20,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.

-// $Id: IconbarTool.cc,v 1.30 2004/01/14 23:06:13 fluxgen Exp $
+// $Id: IconbarTool.cc,v 1.31 2004/01/19 18:28:08 fluxgen Exp $

#include "IconbarTool.hh"

@@ -188,30 +188,33 @@ void setupModeMenu(FbTk::Menu &menu, IconbarTool &handler) {
}

inline bool checkAddWindow(IconbarTool::Mode mode, const FluxboxWindow &win) {
-
+ bool ret_val = false;
// just add the icons that are on the this workspace
switch (mode) {
case IconbarTool::NONE:
break;
case IconbarTool::ICONS:
if (win.isIconic())
- return true;
+ ret_val = true;
break;
case IconbarTool::WORKSPACEICONS:
if(win.workspaceNumber() == win.screen().currentWorkspaceID() &&
win.isIconic())
- return true;
+ ret_val = true;
break;
case IconbarTool::WORKSPACE:
if (win.workspaceNumber() == win.screen().currentWorkspaceID())
- return true;
+ ret_val = true;
break;
case IconbarTool::ALLWINDOWS:
- return true;
+ ret_val = true;
break;
}

- return false;
+ if (win.isHidden())
+ ret_val = false;
+
+ return ret_val;
}

void removeDuplicate(const IconbarTool::IconList &iconlist, std::list<FluxboxWindow *> &windowlist) {
@@ -433,17 +436,11 @@ void IconbarTool::update(FbTk::Subject *subj) {
renderTheme();
return; // we don't need to update the entire list
} else if (subj == &(winsubj->win().stateSig())) {
- if (mode() == ICONS || mode() == WORKSPACEICONS) {
- if (!winsubj->win().isIconic()) {
- removeWindow(winsubj->win());
- renderTheme();
- }
- } else if (mode() != WORKSPACE) {
- if (winsubj->win().isIconic() && mode() != ALLWINDOWS) {
- removeWindow(winsubj->win());
- renderTheme();
- }
+ if (!checkAddWindow(mode(), winsubj->win())) {
+ removeWindow(winsubj->win());
+ renderTheme();
}
+
return;

} else if (subj == &(winsubj->win().titleSig())) {
--
cgit v0.11.2