aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/fluxbox.cc26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/fluxbox.cc b/src/fluxbox.cc
index ded7ea4..1ee43a1 100644
--- a/src/fluxbox.cc
+++ b/src/fluxbox.cc
@@ -22,7 +22,7 @@
22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23// DEALINGS IN THE SOFTWARE. 23// DEALINGS IN THE SOFTWARE.
24 24
25// $Id: fluxbox.cc,v 1.226 2004/01/18 12:42:47 fluxgen Exp $ 25// $Id: fluxbox.cc,v 1.227 2004/01/19 18:33:05 fluxgen Exp $
26 26
27#include "fluxbox.hh" 27#include "fluxbox.hh"
28 28
@@ -548,6 +548,7 @@ Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, const char *rcfile
548 screen->currentWorkspaceSig().attach(this); 548 screen->currentWorkspaceSig().attach(this);
549 screen->workspaceCountSig().attach(this); 549 screen->workspaceCountSig().attach(this);
550 screen->workspaceNamesSig().attach(this); 550 screen->workspaceNamesSig().attach(this);
551 screen->workspaceAreaSig().attach(this);
551 screen->clientListSig().attach(this); 552 screen->clientListSig().attach(this);
552 553
553 // initiate atomhandler for screen specific stuff 554 // initiate atomhandler for screen specific stuff
@@ -1130,7 +1131,7 @@ void Fluxbox::handleUnmapNotify(XUnmapEvent &ue) {
1130 * Handles XClientMessageEvent 1131 * Handles XClientMessageEvent
1131 */ 1132 */
1132void Fluxbox::handleClientMessage(XClientMessageEvent &ce) { 1133void Fluxbox::handleClientMessage(XClientMessageEvent &ce) {
1133#ifdef DEBUG 1134
1134 char * atom = 0; 1135 char * atom = 0;
1135 if (ce.message_type) 1136 if (ce.message_type)
1136 atom = XGetAtomName(FbTk::App::instance()->display(), ce.message_type); 1137 atom = XGetAtomName(FbTk::App::instance()->display(), ce.message_type);
@@ -1140,7 +1141,7 @@ void Fluxbox::handleClientMessage(XClientMessageEvent &ce) {
1140 1141
1141 if (ce.message_type && atom) XFree((char *) atom); 1142 if (ce.message_type && atom) XFree((char *) atom);
1142 1143
1143#endif // DEBUG 1144
1144 1145
1145 if (ce.format != 32) 1146 if (ce.format != 32)
1146 return; 1147 return;
@@ -1377,6 +1378,11 @@ void Fluxbox::update(FbTk::Subject *changedsub) {
1377 if (m_atomhandler[i]->update()) 1378 if (m_atomhandler[i]->update())
1378 m_atomhandler[i]->updateCurrentWorkspace(screen); 1379 m_atomhandler[i]->updateCurrentWorkspace(screen);
1379 } 1380 }
1381 } else if ((&(screen.workspaceAreaSig())) == changedsub) {
1382 for (size_t i=0; i<m_atomhandler.size(); ++i) {
1383 if (m_atomhandler[i]->update())
1384 m_atomhandler[i]->updateWorkarea(screen);
1385 }
1380 } else if ((&(screen.clientListSig())) == changedsub) { 1386 } else if ((&(screen.clientListSig())) == changedsub) {
1381 for (size_t i=0; i<m_atomhandler.size(); ++i) { 1387 for (size_t i=0; i<m_atomhandler.size(); ++i) {
1382 if (m_atomhandler[i]->update()) 1388 if (m_atomhandler[i]->update())
@@ -1940,11 +1946,21 @@ void Fluxbox::setFocusedWindow(WinClient *client) {
1940 1946
1941 1947
1942 1948
1943 if (screen != 0) 1949 if (screen != 0) {
1944 screen->updateNetizenWindowFocus(); 1950 screen->updateNetizenWindowFocus();
1951 for (int i=0; i < m_atomhandler.size(); ++i) {
1952
1953 m_atomhandler[i]->updateFocusedWindow(*screen, (m_focused_window ?
1954 m_focused_window->window() :
1955 0));
1956 }
1957 }
1945 1958
1946 if (old_screen && old_screen != screen) 1959 if (old_screen && old_screen != screen) {
1947 old_screen->updateNetizenWindowFocus(); 1960 old_screen->updateNetizenWindowFocus();
1961 for (int i=0; i < m_atomhandler.size(); ++i)
1962 m_atomhandler[i]->updateFocusedWindow(*old_screen, 0);
1963 }
1948 1964
1949} 1965}
1950 1966