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