fixed bug with keys not working when using a style background
This commit is contained in:
parent
ed3731fa30
commit
40c0c7c364
3 changed files with 12 additions and 7 deletions
|
@ -25,6 +25,7 @@
|
|||
|
||||
#include "FbRootWindow.hh"
|
||||
#include "FbCommands.hh"
|
||||
#include "Screen.hh"
|
||||
|
||||
#include "FbTk/App.hh"
|
||||
#include "FbTk/Font.hh"
|
||||
|
@ -141,8 +142,9 @@ private:
|
|||
};
|
||||
|
||||
|
||||
RootTheme::RootTheme(FbTk::ImageControl &image_control):
|
||||
RootTheme::RootTheme(FbTk::ImageControl &image_control, BScreen *scrn):
|
||||
FbTk::Theme(image_control.screenNumber()),
|
||||
m_screen(scrn),
|
||||
m_background(new BackgroundItem(*this, "background", "Background")),
|
||||
m_opgc(RootWindow(FbTk::App::instance()->display(), image_control.screenNumber())),
|
||||
m_image_ctrl(image_control) {
|
||||
|
@ -182,11 +184,9 @@ void RootTheme::reconfigTheme() {
|
|||
return;
|
||||
}
|
||||
|
||||
if (!m_background->changed())
|
||||
if (!m_background->changed() || !m_screen)
|
||||
return;
|
||||
|
||||
m_background->setApplied();
|
||||
|
||||
// style doesn't wish to change the background
|
||||
if (strstr(m_background->options().c_str(), "none") != 0)
|
||||
return;
|
||||
|
@ -196,7 +196,9 @@ void RootTheme::reconfigTheme() {
|
|||
//
|
||||
|
||||
// root window helper
|
||||
FbRootWindow rootwin(screenNum());
|
||||
FbRootWindow &rootwin = m_screen->rootWindow();
|
||||
|
||||
m_background->setApplied();
|
||||
|
||||
// handle background option in style
|
||||
std::string filename = m_background->filename();
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include <string>
|
||||
|
||||
class BackgroundItem;
|
||||
class BScreen;
|
||||
|
||||
namespace FbTk {
|
||||
class ResourceManager;
|
||||
|
@ -45,7 +46,7 @@ public:
|
|||
/// constructor
|
||||
/// @param resmanager resource manager for finding specific resources
|
||||
/// @param image_control for rendering background texture
|
||||
RootTheme(FbTk::ImageControl &image_control);
|
||||
RootTheme(FbTk::ImageControl &image_control, BScreen *scrn = 0);
|
||||
~RootTheme();
|
||||
|
||||
bool fallback(FbTk::ThemeItem_base &item);
|
||||
|
@ -61,6 +62,7 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
BScreen *m_screen;
|
||||
BackgroundItem *m_background;///< background image/texture
|
||||
FbTk::GContext m_opgc;
|
||||
FbTk::ImageControl &m_image_ctrl; ///< image control for rendering background texture
|
||||
|
|
|
@ -439,7 +439,8 @@ BScreen::BScreen(FbTk::ResourceManager &rm,
|
|||
cmd.execute();
|
||||
}
|
||||
|
||||
m_root_theme.reset(new RootTheme(imageControl()));
|
||||
m_root_theme.reset(new RootTheme(imageControl(), this));
|
||||
m_root_theme->reconfigTheme();
|
||||
|
||||
m_windowtheme->setFocusedAlpha(*resource.focused_alpha);
|
||||
m_windowtheme->setUnfocusedAlpha(*resource.unfocused_alpha);
|
||||
|
|
Loading…
Reference in a new issue