From d76194cc0163fa493ca333b5c758db094a52588f Mon Sep 17 00:00:00 2001 From: Alex Bramley Date: Thu, 9 Sep 2010 17:52:25 +0200 Subject: [PATCH] Attempt to revert 4a7a1437. --- src/ButtonTheme.cc | 1 - src/FbTk/MenuTheme.cc | 2 -- src/FbTk/Theme.cc | 12 +++++------- src/FbWinFrameTheme.cc | 1 - src/IconbarTheme.cc | 2 -- src/RootTheme.cc | 2 +- src/Screen.cc | 11 +++++++++++ src/SlitTheme.cc | 1 - src/ToolTheme.cc | 1 - src/ToolbarTheme.cc | 1 - src/WinButtonTheme.cc | 1 - src/WorkspaceNameTheme.hh | 1 - src/fluxbox.cc | 6 +++--- 13 files changed, 20 insertions(+), 22 deletions(-) diff --git a/src/ButtonTheme.cc b/src/ButtonTheme.cc index 1f2d3ba..c33d60a 100644 --- a/src/ButtonTheme.cc +++ b/src/ButtonTheme.cc @@ -37,7 +37,6 @@ ButtonTheme::ButtonTheme(int screen_num, m_name(name), m_fallbackname(extra_fallback), m_altfallbackname(extra_fallback_alt) { - FbTk::ThemeManager::instance().loadTheme(*this); } bool ButtonTheme::fallback(FbTk::ThemeItem_base &item) { diff --git a/src/FbTk/MenuTheme.cc b/src/FbTk/MenuTheme.cc index 28bcc35..b23cb70 100644 --- a/src/FbTk/MenuTheme.cc +++ b/src/FbTk/MenuTheme.cc @@ -82,8 +82,6 @@ MenuTheme::MenuTheme(int screen_num): *m_border_width = 0; *m_shapeplace = FbTk::Shape::NONE; - ThemeManager::instance().loadTheme(*this); - m_real_item_height = std::max(*m_item_height, frameFont().height() + 2*bevelWidth()); m_real_title_height = std::max(*m_title_height, titleFont().height() + 2*bevelWidth()); diff --git a/src/FbTk/Theme.cc b/src/FbTk/Theme.cc index cd478fc..10908e0 100644 --- a/src/FbTk/Theme.cc +++ b/src/FbTk/Theme.cc @@ -95,14 +95,12 @@ bool ThemeManager::registerTheme(Theme &tm) { // valid screen num? if (m_max_screens < tm.screenNum() || tm.screenNum() < 0) return false; + // TODO: use find and return false if it's already there + // instead of unique - ThemeList::const_iterator it = m_themes[tm.screenNum()].begin(), - it_end = m_themes[tm.screenNum()].end(); - if (std::find(it, it_end, &tm) == it_end) { - m_themes[tm.screenNum()].push_back(&tm); - return true; - } - return false; + m_themes[tm.screenNum()].push_back(&tm); + m_themes[tm.screenNum()].unique(); + return true; } bool ThemeManager::unregisterTheme(Theme &tm) { diff --git a/src/FbWinFrameTheme.cc b/src/FbWinFrameTheme.cc index 92cb134..dd9faf2 100644 --- a/src/FbWinFrameTheme.cc +++ b/src/FbWinFrameTheme.cc @@ -63,7 +63,6 @@ FbWinFrameTheme::FbWinFrameTheme(int screen_num, const std::string &extra, m_cursor_right_side = XCreateFontCursor(disp, XC_right_side); m_cursor_bottom_side = XCreateFontCursor(disp, XC_bottom_side); - FbTk::ThemeManager::instance().loadTheme(*this); reconfigTheme(); } diff --git a/src/IconbarTheme.cc b/src/IconbarTheme.cc index 0be9cd1..ba0729e 100644 --- a/src/IconbarTheme.cc +++ b/src/IconbarTheme.cc @@ -33,8 +33,6 @@ IconbarTheme::IconbarTheme(int screen_num, m_text(*this, name, altname), m_name(name), m_altname(altname) { - FbTk::ThemeManager::instance().loadTheme(*this); - } IconbarTheme::~IconbarTheme() { diff --git a/src/RootTheme.cc b/src/RootTheme.cc index d303834..934c720 100644 --- a/src/RootTheme.cc +++ b/src/RootTheme.cc @@ -156,7 +156,7 @@ RootTheme::RootTheme(FbTk::ImageControl &image_control): m_opgc.setForeground(WhitePixel(disp, screenNum())^BlackPixel(disp, screenNum())); m_opgc.setFunction(GXxor); m_opgc.setSubwindowMode(IncludeInferiors); - FbTk::ThemeManager::instance().loadTheme(*this); + m_opgc.setLineAttributes(1, LineSolid, CapNotLast, JoinMiter); } RootTheme::~RootTheme() { diff --git a/src/Screen.cc b/src/Screen.cc index db302fe..fa4d66a 100644 --- a/src/Screen.cc +++ b/src/Screen.cc @@ -512,6 +512,17 @@ BScreen::BScreen(FbTk::ResourceManager &rm, changeWorkspaceID(first_desktop); + // we need to load win frame theme before we create any fluxbox window + // and after we've load the resources + // else we get some bad handle/grip height/width + // FbTk::ThemeManager::instance().loadTheme(*m_windowtheme.get()); + //!! TODO: For some strange reason we must load everything, + // else the focus label doesn't get updated + // This must be fixed in the future. + FbTk::ThemeManager::instance().load(fluxbox->getStyleFilename(), + fluxbox->getStyleOverlayFilename(), + m_root_theme->screenNum()); + #ifdef SLIT m_slit.reset(new Slit(*this, *layerManager().getLayer(Layer::DESKTOP), fluxbox->getSlitlistFilename().c_str())); diff --git a/src/SlitTheme.cc b/src/SlitTheme.cc index 88dc195..bca3442 100644 --- a/src/SlitTheme.cc +++ b/src/SlitTheme.cc @@ -32,7 +32,6 @@ SlitTheme::SlitTheme(int screen_num):FbTk::Theme(screen_num), m_border_color.setDefaultValue(); // default texture type m_texture->setType(FbTk::Texture::SOLID); - FbTk::ThemeManager::instance().loadTheme(*this); } diff --git a/src/ToolTheme.cc b/src/ToolTheme.cc index a5abc1a..a9624b1 100644 --- a/src/ToolTheme.cc +++ b/src/ToolTheme.cc @@ -29,7 +29,6 @@ ToolTheme::ToolTheme(int screen_num, const std::string &name, const std::string m_border(*this, name, altname), m_alpha(255) { - FbTk::ThemeManager::instance().loadTheme(*this); } ToolTheme::~ToolTheme() { diff --git a/src/ToolbarTheme.cc b/src/ToolbarTheme.cc index a9eeb82..7cd8ef4 100644 --- a/src/ToolbarTheme.cc +++ b/src/ToolbarTheme.cc @@ -40,7 +40,6 @@ ToolbarTheme::ToolbarTheme(int screen_num): *m_shape = false; *m_height = 0; *m_button_size = -1; - FbTk::ThemeManager::instance().loadTheme(*this); } ToolbarTheme::~ToolbarTheme() { diff --git a/src/WinButtonTheme.cc b/src/WinButtonTheme.cc index c6e6ddf..e0beaf5 100644 --- a/src/WinButtonTheme.cc +++ b/src/WinButtonTheme.cc @@ -54,7 +54,6 @@ WinButtonTheme::WinButtonTheme(int screen_num, "Window.Stuck" + altextra + ".Pixmap"), m_frame_theme(frame_theme) { - FbTk::ThemeManager::instance().loadTheme(*this); } WinButtonTheme::~WinButtonTheme() { diff --git a/src/WorkspaceNameTheme.hh b/src/WorkspaceNameTheme.hh index e90ef01..5049dfe 100644 --- a/src/WorkspaceNameTheme.hh +++ b/src/WorkspaceNameTheme.hh @@ -32,7 +32,6 @@ public: const std::string &name, const std::string &alt_name): ToolTheme(screen_num, name, alt_name) { - FbTk::ThemeManager::instance().loadTheme(*this); } bool fallback(FbTk::ThemeItem_base &item) { diff --git a/src/fluxbox.cc b/src/fluxbox.cc index 192b44c..6ee024f 100644 --- a/src/fluxbox.cc +++ b/src/fluxbox.cc @@ -302,9 +302,6 @@ Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, #endif // HAVE_GETPID - // setup theme manager to have our style file ready to be scanned - FbTk::ThemeManager::instance().load(getStyleFilename(), getStyleOverlayFilename()); - // Create keybindings handler and load keys file // Note: this needs to be done before creating screens m_key.reset(new Keys); @@ -397,6 +394,9 @@ Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, XAllowEvents(disp, ReplayPointer, CurrentTime); + // setup theme manager to have our style file ready to be scanned + FbTk::ThemeManager::instance().load(getStyleFilename(), getStyleOverlayFilename()); + //XSynchronize(disp, False); sync(false); -- 1.7.1