fix for #1152450, when having multiple screens the rootCommand's were
called too often: m_root_menu is locked for the current screen when loading the style for the current screen, but not for the screens already initialized and thus its executed when called thru Theme::reconfigure(); now only the themes on the same screen are affected by the load-routine.
This commit is contained in:
parent
abce9a0c27
commit
150777e336
2 changed files with 6 additions and 3 deletions
|
@ -135,8 +135,10 @@ bool ThemeManager::load(const std::string &filename, int screen_num) {
|
||||||
theme_it = m_themelist.begin();
|
theme_it = m_themelist.begin();
|
||||||
for (; theme_it != theme_it_end; ++theme_it) {
|
for (; theme_it != theme_it_end; ++theme_it) {
|
||||||
// send reconfiguration signal to theme and listeners
|
// send reconfiguration signal to theme and listeners
|
||||||
(*theme_it)->reconfigTheme();
|
if (screen_num < 0 || (*theme_it)->screenNum() == screen_num) {
|
||||||
(*theme_it)->reconfigSig().notify();
|
(*theme_it)->reconfigTheme();
|
||||||
|
(*theme_it)->reconfigSig().notify();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -368,7 +368,8 @@ BScreen::BScreen(FbTk::ResourceManager &rm,
|
||||||
// So we lock root theme temporary so it doesn't uses RootTheme::reconfigTheme
|
// So we lock root theme temporary so it doesn't uses RootTheme::reconfigTheme
|
||||||
// This must be fixed in the future.
|
// This must be fixed in the future.
|
||||||
m_root_theme->lock(true);
|
m_root_theme->lock(true);
|
||||||
FbTk::ThemeManager::instance().load(fluxbox->getStyleFilename());
|
FbTk::ThemeManager::instance().load(fluxbox->getStyleFilename(),
|
||||||
|
m_root_theme->screenNum());
|
||||||
m_root_theme->lock(false);
|
m_root_theme->lock(false);
|
||||||
m_root_theme->setLineAttributes(*resource.gc_line_width,
|
m_root_theme->setLineAttributes(*resource.gc_line_width,
|
||||||
*resource.gc_line_style,
|
*resource.gc_line_style,
|
||||||
|
|
Loading…
Reference in a new issue