diff options
author | fluxgen <fluxgen> | 2004-01-19 18:33:05 (GMT) |
---|---|---|
committer | fluxgen <fluxgen> | 2004-01-19 18:33:05 (GMT) |
commit | 1fecb21ffdbcdb3364e6ed2fc24ff17f65079e9d (patch) | |
tree | 0c5e314bda09bb8b4562c746bb07a965744822bb | |
parent | 5a54e1a5463cbaeaf4a1e9cd41ba6e307d77ca73 (diff) | |
download | fluxbox-1fecb21ffdbcdb3364e6ed2fc24ff17f65079e9d.zip fluxbox-1fecb21ffdbcdb3364e6ed2fc24ff17f65079e9d.tar.bz2 |
update workspace area and focused window to atomhandlers
-rw-r--r-- | src/fluxbox.cc | 26 |
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 | */ |
1132 | void Fluxbox::handleClientMessage(XClientMessageEvent &ce) { | 1133 | void 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 | ||