diff options
Diffstat (limited to 'src/SendToMenu.cc')
-rw-r--r-- | src/SendToMenu.cc | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/SendToMenu.cc b/src/SendToMenu.cc index 9677107..a64e594 100644 --- a/src/SendToMenu.cc +++ b/src/SendToMenu.cc | |||
@@ -20,7 +20,7 @@ | |||
20 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 20 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
21 | // DEALINGS IN THE SOFTWARE. | 21 | // DEALINGS IN THE SOFTWARE. |
22 | 22 | ||
23 | // $Id: SendToMenu.cc,v 1.2 2003/11/27 22:01:11 fluxgen Exp $ | 23 | // $Id: SendToMenu.cc,v 1.3 2003/11/28 13:39:41 fluxgen Exp $ |
24 | 24 | ||
25 | #include "SendToMenu.hh" | 25 | #include "SendToMenu.hh" |
26 | 26 | ||
@@ -49,15 +49,32 @@ SendToMenu::SendToMenu(FluxboxWindow &win): | |||
49 | win.screen().imageControl(), | 49 | win.screen().imageControl(), |
50 | *win.screen().layerManager().getLayer(Fluxbox::instance()->getMenuLayer())), | 50 | *win.screen().layerManager().getLayer(Fluxbox::instance()->getMenuLayer())), |
51 | m_win(win) { | 51 | m_win(win) { |
52 | 52 | // listen to: | |
53 | // workspace count signal | ||
54 | // workspace names signal | ||
55 | // current workspace signal | ||
53 | win.screen().workspaceCountSig().attach(this); | 56 | win.screen().workspaceCountSig().attach(this); |
54 | win.screen().workspaceNamesSig().attach(this); | 57 | win.screen().workspaceNamesSig().attach(this); |
58 | win.screen().currentWorkspaceSig().attach(this); | ||
55 | 59 | ||
56 | disableTitle(); | 60 | disableTitle(); |
61 | // build menu | ||
57 | update(0); | 62 | update(0); |
58 | } | 63 | } |
59 | 64 | ||
60 | void SendToMenu::update(FbTk::Subject *subj) { | 65 | void SendToMenu::update(FbTk::Subject *subj) { |
66 | // if workspace changed we enable all workspaces except the current one | ||
67 | if (subj != 0 && subj == &(m_win.screen().currentWorkspaceSig())) { | ||
68 | // enabled all workspaces | ||
69 | const BScreen::Workspaces &wlist = m_win.screen().getWorkspacesList(); | ||
70 | for (size_t i = 0; i < wlist.size(); ++i) | ||
71 | setItemEnabled(i, true); | ||
72 | // disable current workspace | ||
73 | setItemEnabled(m_win.screen().currentWorkspaceID(), false); | ||
74 | // we're done | ||
75 | return; | ||
76 | } | ||
77 | |||
61 | // rebuild menu | 78 | // rebuild menu |
62 | 79 | ||
63 | removeAll(); | 80 | removeAll(); |