Changed resize signal in BScreen to use the new signal system
This commit is contained in:
parent
2fcc0fd9e7
commit
9aee5b80cb
7 changed files with 35 additions and 14 deletions
|
@ -1,6 +1,9 @@
|
|||
(Format: Year/Month/Day)
|
||||
Changes for 1.1.2
|
||||
*08/09/28:
|
||||
* Changed resize signal, in screen, to use the new signal system
|
||||
(Henrik)
|
||||
Toolbar.hh/cc, Slit.hh/cc, Screen.hh/cc
|
||||
* Changed workspace area signal to use the new signal system (Henrik)
|
||||
Window.hh/cc, Screen.hh/cc, fluxbox.hh/cc
|
||||
* Changed focused window signal to use the new signal system (Henrik)
|
||||
|
|
|
@ -340,7 +340,6 @@ BScreen::BScreen(FbTk::ResourceManager &rm,
|
|||
const string &altscreenname,
|
||||
int scrn, int num_layers) :
|
||||
m_reconfigure_sig(*this), // reconfigure signal
|
||||
m_resize_sig(*this),
|
||||
m_layermanager(num_layers),
|
||||
m_focused_windowtheme(new FbWinFrameTheme(scrn, ".focus", ".Focus")),
|
||||
m_unfocused_windowtheme(new FbWinFrameTheme(scrn, ".unfocus", ".Unfocus")),
|
||||
|
@ -1931,7 +1930,7 @@ void BScreen::updateSize() {
|
|||
m_root_theme->reconfigTheme();
|
||||
|
||||
// send resize notify
|
||||
m_resize_sig.notify();
|
||||
m_resize_sig.emit(*this);
|
||||
m_workspace_area_sig.emit(*this);
|
||||
|
||||
// move windows out of inactive heads
|
||||
|
|
|
@ -226,7 +226,7 @@ public:
|
|||
FbTk::Signal<void, BScreen&, FluxboxWindow*, WinClient*> &focusedWindowSig() { return m_focusedwindow_sig; }
|
||||
/// reconfigure signal
|
||||
FbTk::Subject &reconfigureSig() { return m_reconfigure_sig; }
|
||||
FbTk::Subject &resizeSig() { return m_resize_sig; }
|
||||
ScreenSignal &resizeSig() { return m_resize_sig; }
|
||||
ScreenSignal &bgChangeSig() { return m_bg_change_sig; }
|
||||
//@}
|
||||
|
||||
|
@ -493,11 +493,11 @@ private:
|
|||
|
||||
const Strut* availableWorkspaceArea(int head) const;
|
||||
|
||||
ScreenSubject
|
||||
m_reconfigure_sig, ///< reconfigure signal
|
||||
m_resize_sig; ///< resize signal
|
||||
ScreenSubject m_reconfigure_sig; ///< reconfigure signal
|
||||
|
||||
|
||||
FbTk::Signal<void, BScreen&, FluxboxWindow*, WinClient*> m_focusedwindow_sig; ///< focused window signal
|
||||
ScreenSignal m_resize_sig; ///< resize signal
|
||||
ScreenSignal m_workspace_area_sig; ///< workspace area changed signal
|
||||
ScreenSignal m_iconlist_sig; ///< notify if a window gets iconified/deiconified
|
||||
ScreenSignal m_clientlist_sig; ///< client signal
|
||||
|
|
20
src/Slit.cc
20
src/Slit.cc
|
@ -265,7 +265,9 @@ Slit::Slit(BScreen &scr, FbTk::XLayer &layer, const char *filename)
|
|||
|
||||
// attach to theme and root window change signal
|
||||
theme().reconfigSig().attach(this);
|
||||
scr.resizeSig().attach(this);
|
||||
|
||||
join(scr.resizeSig(),
|
||||
FbTk::MemFun(*this, &Slit::screenSizeChanged));
|
||||
|
||||
join(scr.bgChangeSig(),
|
||||
FbTk::MemFun(*this, &Slit::updateForScreen));
|
||||
|
@ -1053,16 +1055,20 @@ void Slit::exposeEvent(XExposeEvent &ev) {
|
|||
frame.window.clearArea(ev.x, ev.y, ev.width, ev.height);
|
||||
}
|
||||
|
||||
void Slit::screenSizeChanged(BScreen &screen) {
|
||||
reconfigure();
|
||||
#ifdef XINERAMA
|
||||
if (m_xineramaheadmenu)
|
||||
m_xineramaheadmenu->reloadHeads();
|
||||
#endif // XINERAMA
|
||||
}
|
||||
|
||||
void Slit::updateForScreen(BScreen &screen) {
|
||||
reconfigure();
|
||||
}
|
||||
|
||||
void Slit::update(FbTk::Subject *subj) {
|
||||
reconfigure();
|
||||
#ifdef XINERAMA
|
||||
if (subj == &m_screen.resizeSig() && m_xineramaheadmenu)
|
||||
m_xineramaheadmenu->reloadHeads();
|
||||
#endif // XINERAMA
|
||||
void Slit::update(FbTk::Subject*) {
|
||||
updateForScreen(screen());
|
||||
}
|
||||
|
||||
void Slit::clearWindow() {
|
||||
|
|
|
@ -133,6 +133,7 @@ public:
|
|||
SlitClients &clients() { return m_client_list; }
|
||||
private:
|
||||
/// Called when screen has changed
|
||||
void screenSizeChanged(BScreen &screen);
|
||||
void updateForScreen(BScreen &screen);
|
||||
|
||||
void updateAlpha();
|
||||
|
|
|
@ -51,6 +51,7 @@
|
|||
#include "FbTk/IntMenuItem.hh"
|
||||
#include "FbTk/Shape.hh"
|
||||
#include "FbTk/SimpleObserver.hh"
|
||||
#include "FbTk/MemFun.hh"
|
||||
|
||||
// use GNU extensions
|
||||
#ifndef _GNU_SOURCE
|
||||
|
@ -253,8 +254,10 @@ Toolbar::Toolbar(BScreen &scrn, FbTk::XLayer &layer, size_t width):
|
|||
m_observers.push_back(makeObserver(*this, &Toolbar::reconfigure));
|
||||
m_theme.reconfigSig().attach(m_observers.back());
|
||||
screen().reconfigureSig().attach(m_observers.back()); // get this on antialias change
|
||||
|
||||
// listen to screen size changes
|
||||
screen().resizeSig().attach(m_observers.back());
|
||||
m_signal_tracker.join(screen().resizeSig(),
|
||||
FbTk::MemFun(*this, &Toolbar::screenChanged));
|
||||
|
||||
|
||||
moveToLayer((*m_rc_layernum).getNum());
|
||||
|
@ -380,6 +383,10 @@ void Toolbar::lower() {
|
|||
m_layeritem.lower();
|
||||
}
|
||||
|
||||
void Toolbar::screenChanged(BScreen &screen) {
|
||||
reconfigure();
|
||||
}
|
||||
|
||||
void Toolbar::reconfigure() {
|
||||
|
||||
updateVisibleState();
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#include "FbTk/XLayerItem.hh"
|
||||
#include "FbTk/EventHandler.hh"
|
||||
#include "FbTk/FbWindow.hh"
|
||||
#include "FbTk/Signal.hh"
|
||||
|
||||
#include <memory>
|
||||
|
||||
|
@ -139,6 +140,9 @@ private:
|
|||
void updateStrut();
|
||||
void updateAlpha();
|
||||
|
||||
/// Called when the screen changed property.
|
||||
void screenChanged(BScreen &screen);
|
||||
|
||||
bool m_hidden; ///< hidden state
|
||||
|
||||
/// Toolbar frame
|
||||
|
@ -193,6 +197,7 @@ private:
|
|||
bool m_resize_lock; ///< to lock rearrangeItems or not
|
||||
/// observers for various signals
|
||||
std::vector<FbTk::Observer*> m_observers;
|
||||
FbTk::SignalTracker m_signal_tracker;
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue