diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Screen.cc | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/src/Screen.cc b/src/Screen.cc index ccff0d0..4650fad 100644 --- a/src/Screen.cc +++ b/src/Screen.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: Screen.cc,v 1.107 2003/02/16 15:12:08 rathnor Exp $ | 25 | // $Id: Screen.cc,v 1.108 2003/02/16 16:45:23 fluxgen Exp $ |
26 | 26 | ||
27 | 27 | ||
28 | #include "Screen.hh" | 28 | #include "Screen.hh" |
@@ -287,6 +287,13 @@ void setupWorkspacemenu(BScreen &scr, FbTk::Menu &menu) { | |||
287 | RefCount<Command> remove_last(new RemoveLastWorkspaceCmd(scr)); | 287 | RefCount<Command> remove_last(new RemoveLastWorkspaceCmd(scr)); |
288 | menu.insert("New Workspace", new_workspace); | 288 | menu.insert("New Workspace", new_workspace); |
289 | menu.insert("Remove Last", remove_last); | 289 | menu.insert("Remove Last", remove_last); |
290 | // for each workspace add workspace name and it's menu to our workspace menu | ||
291 | for (size_t workspace = 0; workspace < scr.getCount(); ++workspace) { | ||
292 | Workspace *wkspc = scr.getWorkspace(workspace); | ||
293 | menu.insert(wkspc->name().c_str(), &wkspc->menu()); | ||
294 | } | ||
295 | |||
296 | // update graphics | ||
290 | menu.update(); | 297 | menu.update(); |
291 | } | 298 | } |
292 | 299 | ||
@@ -484,14 +491,14 @@ BScreen::BScreen(ResourceManager &rm, | |||
484 | Workspace *wkspc = (Workspace *) 0; | 491 | Workspace *wkspc = (Workspace *) 0; |
485 | if (*resource.workspaces != 0) { | 492 | if (*resource.workspaces != 0) { |
486 | for (int i = 0; i < *resource.workspaces; ++i) { | 493 | for (int i = 0; i < *resource.workspaces; ++i) { |
487 | wkspc = new Workspace(this, m_layermanager, workspacesList.size()); | 494 | wkspc = new Workspace(*this, m_layermanager, workspacesList.size()); |
488 | workspacesList.push_back(wkspc); | 495 | workspacesList.push_back(wkspc); |
489 | workspacemenu->insert(wkspc->name().c_str(), &wkspc->menu()); | 496 | // workspacemenu->insert(wkspc->name().c_str(), &wkspc->menu()); |
490 | } | 497 | } |
491 | } else { | 498 | } else { |
492 | wkspc = new Workspace(this, m_layermanager, workspacesList.size()); | 499 | wkspc = new Workspace(*this, m_layermanager, workspacesList.size()); |
493 | workspacesList.push_back(wkspc); | 500 | workspacesList.push_back(wkspc); |
494 | workspacemenu->insert(wkspc->name().c_str(), &wkspc->menu()); | 501 | // workspacemenu->insert(wkspc->name().c_str(), &wkspc->menu()); |
495 | } | 502 | } |
496 | 503 | ||
497 | current_workspace = workspacesList.front(); | 504 | current_workspace = workspacesList.front(); |
@@ -703,13 +710,10 @@ void BScreen::reconfigure() { | |||
703 | workspacemenu->reconfigure(); | 710 | workspacemenu->reconfigure(); |
704 | m_configmenu->reconfigure(); | 711 | m_configmenu->reconfigure(); |
705 | 712 | ||
706 | { | 713 | initMenu(); |
707 | //int remember_sub = m_rootmenu->currentSubmenu(); | 714 | raiseWindows(Workspace::Stack()); |
708 | initMenu(); | 715 | m_rootmenu->reconfigure(); |
709 | raiseWindows(Workspace::Stack()); | 716 | |
710 | m_rootmenu->reconfigure(); | ||
711 | //m_rootmenu->drawSubmenu(remember_sub); | ||
712 | } | ||
713 | 717 | ||
714 | // m_toolbar->setPlacement(*resource.toolbar_placement); | 718 | // m_toolbar->setPlacement(*resource.toolbar_placement); |
715 | m_toolbar->reconfigure(); | 719 | m_toolbar->reconfigure(); |
@@ -816,7 +820,7 @@ void BScreen::setAntialias(bool value) { | |||
816 | } | 820 | } |
817 | 821 | ||
818 | int BScreen::addWorkspace() { | 822 | int BScreen::addWorkspace() { |
819 | Workspace *wkspc = new Workspace(this, m_layermanager, workspacesList.size()); | 823 | Workspace *wkspc = new Workspace(*this, m_layermanager, workspacesList.size()); |
820 | workspacesList.push_back(wkspc); | 824 | workspacesList.push_back(wkspc); |
821 | addWorkspaceName(wkspc->name().c_str()); // update names | 825 | addWorkspaceName(wkspc->name().c_str()); // update names |
822 | //add workspace to workspacemenu | 826 | //add workspace to workspacemenu |
@@ -954,8 +958,8 @@ void BScreen::sendToWorkspace(unsigned int id, FluxboxWindow *win, bool changeWS | |||
954 | win->setInputFocus(); | 958 | win->setInputFocus(); |
955 | } | 959 | } |
956 | #ifdef DEBUG | 960 | #ifdef DEBUG |
957 | cerr<<"Sending to id = "<<id<<endl; | 961 | cerr<<__FILE__<<": Sending to id = "<<id<<endl; |
958 | cerr<<"win->workspaceId="<<win->getWorkspaceNumber()<<endl; | 962 | cerr<<__FILE__<<": win->workspaceId="<<win->getWorkspaceNumber()<<endl; |
959 | #endif //DEBUG | 963 | #endif //DEBUG |
960 | 964 | ||
961 | } | 965 | } |
@@ -1123,7 +1127,8 @@ void BScreen::setupWindowActions(FluxboxWindow &win) { | |||
1123 | CommandRef close_cmd(new WindowCmd(win, &FluxboxWindow::close)); | 1127 | CommandRef close_cmd(new WindowCmd(win, &FluxboxWindow::close)); |
1124 | CommandRef shade_cmd(new WindowCmd(win, &FluxboxWindow::shade)); | 1128 | CommandRef shade_cmd(new WindowCmd(win, &FluxboxWindow::shade)); |
1125 | CommandRef raise_cmd(new WindowCmd(win, &FluxboxWindow::raise)); | 1129 | CommandRef raise_cmd(new WindowCmd(win, &FluxboxWindow::raise)); |
1126 | CommandRef lower_cmd(new WindowCmd(win, &FluxboxWindow::lower)); | 1130 | CommandRef raise_and_focus_cmd(new WindowCmd(win, &FluxboxWindow::raiseAndFocus)); |
1131 | CommandRef lower_cmd(new WindowCmd(win, &FluxboxWindow::raise)); | ||
1127 | CommandRef stick_cmd(new WindowCmd(win, &FluxboxWindow::stick)); | 1132 | CommandRef stick_cmd(new WindowCmd(win, &FluxboxWindow::stick)); |
1128 | CommandRef show_menu_cmd(new WindowCmd(win, &FluxboxWindow::popupMenu)); | 1133 | CommandRef show_menu_cmd(new WindowCmd(win, &FluxboxWindow::popupMenu)); |
1129 | 1134 | ||
@@ -1133,7 +1138,8 @@ void BScreen::setupWindowActions(FluxboxWindow &win) { | |||
1133 | // get titlebar configuration | 1138 | // get titlebar configuration |
1134 | const vector<Fluxbox::Titlebar> *dir = &Fluxbox::instance()->getTitlebarLeft(); | 1139 | const vector<Fluxbox::Titlebar> *dir = &Fluxbox::instance()->getTitlebarLeft(); |
1135 | for (char c=0; c<2; c++) { | 1140 | for (char c=0; c<2; c++) { |
1136 | for (unsigned int i=0; i< dir->size(); ++i) { | 1141 | |
1142 | for (size_t i=0; i< dir->size(); ++i) { | ||
1137 | //create new buttons | 1143 | //create new buttons |
1138 | FbTk::Button *newbutton = 0; | 1144 | FbTk::Button *newbutton = 0; |
1139 | if (win.isIconifiable() && (*dir)[i] == Fluxbox::MINIMIZE) { | 1145 | if (win.isIconifiable() && (*dir)[i] == Fluxbox::MINIMIZE) { |
@@ -1155,7 +1161,7 @@ void BScreen::setupWindowActions(FluxboxWindow &win) { | |||
1155 | newbutton->setOnClick(maximize_vert_cmd, 2); | 1161 | newbutton->setOnClick(maximize_vert_cmd, 2); |
1156 | 1162 | ||
1157 | #ifdef DEBUG | 1163 | #ifdef DEBUG |
1158 | cerr<<__FILE__<<":Creating maximize button"<<endl; | 1164 | cerr<<__FILE__<<": Creating maximize button"<<endl; |
1159 | #endif // DEBUG | 1165 | #endif // DEBUG |
1160 | } else if (win.isClosable() && (*dir)[i] == Fluxbox::CLOSE) { | 1166 | } else if (win.isClosable() && (*dir)[i] == Fluxbox::CLOSE) { |
1161 | newbutton = new WinButton(WinButton::CLOSE, | 1167 | newbutton = new WinButton(WinButton::CLOSE, |
@@ -1188,7 +1194,7 @@ void BScreen::setupWindowActions(FluxboxWindow &win) { | |||
1188 | } // end for c | 1194 | } // end for c |
1189 | 1195 | ||
1190 | // setup titlebar | 1196 | // setup titlebar |
1191 | frame.setOnClickTitlebar(raise_cmd, 1, false, true); // on press with button 1 | 1197 | frame.setOnClickTitlebar(raise_and_focus_cmd, 1, false, true); // on press with button 1 |
1192 | frame.setOnClickTitlebar(shade_cmd, 1, true); // doubleclick with button 1 | 1198 | frame.setOnClickTitlebar(shade_cmd, 1, true); // doubleclick with button 1 |
1193 | frame.setOnClickTitlebar(show_menu_cmd, 3); // on release with button 3 | 1199 | frame.setOnClickTitlebar(show_menu_cmd, 3); // on release with button 3 |
1194 | frame.setOnClickTitlebar(lower_cmd, 2, false, true); // on press with button 2 | 1200 | frame.setOnClickTitlebar(lower_cmd, 2, false, true); // on press with button 2 |