all repos — fluxbox @ 79d526b968b0e8cec31a66b0eafa8ddeb32cc16e

custom fork of the fluxbox windowmanager

Convert Screen::reconfigureSig to FbTk::Signal
Pavel Labath pavelo@centrum.sk
commit

79d526b968b0e8cec31a66b0eafa8ddeb32cc16e

parent

e1b0decf559113b43162d9e54bdbf75ee1d80b1f

5 files changed, 10 insertions(+), 29 deletions(-)

jump to
M src/Screen.ccsrc/Screen.cc

@@ -59,7 +59,6 @@ #include "SystemTray.hh"

#include "Debug.hh" #include "FbTk/I18n.hh" -#include "FbTk/Subject.hh" #include "FbTk/FbWindow.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/MultLayers.hh"

@@ -301,7 +300,6 @@ BScreen::BScreen(FbTk::ResourceManager &rm,

const string &screenname, const string &altscreenname, int scrn, int num_layers) : - m_reconfigure_sig(*this), // reconfigure signal m_layermanager(num_layers), m_image_control(0), m_focused_windowtheme(new FbWinFrameTheme(scrn, ".focus", ".Focus")),

@@ -918,7 +916,7 @@ mem_fun(&FluxboxWindow::reconfigure));

imageControl().cleanCache(); // notify objects that the screen is reconfigured - m_reconfigure_sig.notify(); + m_reconfigure_sig.emit(*this); // Reload style FbTk::ThemeManager::instance().load(fluxbox->getStyleFilename(),
M src/Screen.hhsrc/Screen.hh

@@ -213,7 +213,7 @@ ScreenSignal &currentWorkspaceSig() { return m_currentworkspace_sig; }

/// focused window signal FbTk::Signal<BScreen&, FluxboxWindow*, WinClient*> &focusedWindowSig() { return m_focusedwindow_sig; } /// reconfigure signal - FbTk::Subject &reconfigureSig() { return m_reconfigure_sig; } + ScreenSignal &reconfigureSig() { return m_reconfigure_sig; } ScreenSignal &resizeSig() { return m_resize_sig; } ScreenSignal &bgChangeSig() { return m_bg_change_sig; } //@}

@@ -455,18 +455,6 @@ /// This resource is now owned by Screen and will be destroyed

/// when screen dies void addManagedResource(FbTk::Resource_base *resource); - /** - * Used to emit different signals for the screen - */ - class ScreenSubject:public FbTk::Subject { - public: - ScreenSubject(BScreen &scr):m_scr(scr) { } - const BScreen &screen() const { return m_scr; } - BScreen &screen() { return m_scr; } - private: - BScreen &m_scr; - }; - private: void setupConfigmenu(FbTk::Menu &menu); void renderGeomWindow();

@@ -476,8 +464,7 @@

const Strut* availableWorkspaceArea(int head) const; FbTk::SignalTracker m_tracker; - ScreenSubject m_reconfigure_sig; ///< reconfigure signal - + ScreenSignal m_reconfigure_sig; ///< reconfigure signal FbTk::Signal<BScreen&, FluxboxWindow*, WinClient*> m_focusedwindow_sig; ///< focused window signal ScreenSignal m_resize_sig; ///< resize signal
M src/Slit.ccsrc/Slit.cc

@@ -271,7 +271,7 @@

join(scr.bgChangeSig(), FbTk::MemFunIgnoreArgs(*this, &Slit::reconfigure)); - scr.reconfigureSig().attach(this); // if alpha changed (we disablethis signal when we get theme change sig) + join(scr.reconfigureSig(), FbTk::MemFunIgnoreArgs(*this, &Slit::reconfigure)); scr.addConfigMenu(_FB_XTEXT(Slit, Slit, "Slit", "The Slit"), m_slitmenu);

@@ -1040,10 +1040,6 @@ #ifdef XINERAMA

if (m_xineramaheadmenu) m_xineramaheadmenu->reloadHeads(); #endif // XINERAMA -} - -void Slit::update(FbTk::Subject*) { - reconfigure(); } void Slit::clearWindow() {
M src/Slit.hhsrc/Slit.hh

@@ -52,8 +52,7 @@ class Strut;

class Layer; /// Handles dock apps -class Slit: public FbTk::EventHandler, public FbTk::Observer, - public LayerObject, private FbTk::SignalTracker +class Slit: public FbTk::EventHandler, public LayerObject, private FbTk::SignalTracker { public: typedef std::list<SlitClient *> SlitClients;

@@ -101,8 +100,6 @@ void leaveNotifyEvent(XCrossingEvent &event);

void configureRequestEvent(XConfigureRequestEvent &event); void exposeEvent(XExposeEvent &event); //@} - - void update(FbTk::Subject *subj); void moveToLayer(int layernum); void toggleHidden();
M src/Toolbar.ccsrc/Toolbar.cc

@@ -229,9 +229,12 @@ m_resize_lock(false) {

_FB_USES_NLS; // NOTE: first subject is always the rearrangeItem ! m_observers.push_back(makeObserver(*this, &Toolbar::rearrangeItems)); + + // get this on antialias change + m_signal_tracker.join(screen().reconfigureSig(), + FbTk::MemFunIgnoreArgs(*this, &Toolbar::reconfigure)); + // we need to get notified when the theme is reloaded - m_observers.push_back(makeObserver(*this, &Toolbar::reconfigure)); - screen().reconfigureSig().attach(m_observers.back()); // get this on antialias change m_signal_tracker.join(m_theme.reconfigSig(), FbTk::MemFun(*this, &Toolbar::reconfigure)); // listen to screen size changes