From f21186431b12bb2f91f31c766e7f2eaced7b5e63 Mon Sep 17 00:00:00 2001
From: markt <markt>
Date: Sat, 12 May 2007 17:31:34 +0000
Subject: fixed tabs disappearing on reconfigure with [Deco] {TAB} and tabs in
 titlebar

---
 ChangeLog     |  3 +++
 src/Screen.cc | 18 ++++--------------
 src/Window.cc |  4 +++-
 3 files changed, 10 insertions(+), 15 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b6aba3d..269cef2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
  (Format: Year/Month/Day)
 Changes for 1.0.0:
+*07/05/12:
+   * Fixed tabs disappearing with [Deco] {TAB} and tabs in titlebar (Mark)
+     Window.cc Screen.cc
 *07/05/04:
    * Fixed infinite loop caused by deiconify command (Mark)
      FbCommands.cc
diff --git a/src/Screen.cc b/src/Screen.cc
index 0075c4b..625e412 100644
--- a/src/Screen.cc
+++ b/src/Screen.cc
@@ -982,24 +982,14 @@ void BScreen::reconfigureTabs() {
         if (!(*w_it)->windowList().empty()) {
             Workspace::Windows::iterator win_it = (*w_it)->windowList().begin();
             const Workspace::Windows::iterator win_it_end = (*w_it)->windowList().end();
-            for (; win_it != win_it_end; ++win_it) {
-                (*win_it)->frame().updateTabProperties();
-                if (*resource.default_internal_tabs)
-                    (*win_it)->frame().setTabMode(FbWinFrame::INTERNAL);
-                else
-                    (*win_it)->frame().setTabMode(FbWinFrame::EXTERNAL);
-            }
+            for (; win_it != win_it_end; ++win_it)
+                (*win_it)->applyDecorations();
         }
     }
     Icons::iterator icon_it = m_icon_list.begin();
     Icons::iterator icon_it_end = m_icon_list.end();
-    for (; icon_it != icon_it_end; ++icon_it) {
-        (*icon_it)->frame().updateTabProperties();
-        if (*resource.default_internal_tabs)
-            (*icon_it)->frame().setTabMode(FbWinFrame::INTERNAL);
-        else
-            (*icon_it)->frame().setTabMode(FbWinFrame::EXTERNAL);
-    }
+    for (; icon_it != icon_it_end; ++icon_it)
+        (*icon_it)->applyDecorations();
 }
 
 
diff --git a/src/Window.cc b/src/Window.cc
index 24fc8df..87d8d15 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -3104,8 +3104,10 @@ void FluxboxWindow::applyDecorations(bool initial) {
     if (decorations.titlebar) {
         bool change = frame().showTitlebar();
         client_move |= change;
-        if (change && screen().getDefaultInternalTabs()) {
+        if (screen().getDefaultInternalTabs()) {
             client_move |= frame().setTabMode(FbWinFrame::INTERNAL);
+        } else {
+            client_move |= frame().setTabMode(FbWinFrame::EXTERNAL);
         }
     } else {
         client_move |= frame().hideTitlebar();
-- 
cgit v0.11.2