diff options
Diffstat (limited to 'src/Screen.cc')
-rw-r--r-- | src/Screen.cc | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/src/Screen.cc b/src/Screen.cc index 64512eb..43fdafe 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -259,7 +259,7 @@ BScreen::ScreenResource::ScreenResource(FbTk::ResourceManager_base &rm, | |||
259 | click_raises(rm, true, scrname+".clickRaises"), | 259 | click_raises(rm, true, scrname+".clickRaises"), |
260 | default_deco(rm, "NORMAL", scrname+".defaultDeco"), | 260 | default_deco(rm, "NORMAL", scrname+".defaultDeco"), |
261 | tab_placement(rm, FbWinFrame::TOPLEFT, scrname+".tab.placement"), | 261 | tab_placement(rm, FbWinFrame::TOPLEFT, scrname+".tab.placement"), |
262 | windowmenufile(rm, Fluxbox::instance()->getDefaultDataFilename("windowmenu"), scrname+".windowMenu"), | 262 | windowmenufile(rm, Fluxbox::instance()->getDefaultDataFilename("windowmenu2"), scrname+".windowMenu"), |
263 | typing_delay(rm, 0, scrname+".noFocusWhileTypingDelay"), | 263 | typing_delay(rm, 0, scrname+".noFocusWhileTypingDelay"), |
264 | workspaces(rm, 4, scrname+".workspaces"), | 264 | workspaces(rm, 4, scrname+".workspaces"), |
265 | edge_snap_threshold(rm, 10, scrname+".edgeSnapThreshold"), | 265 | edge_snap_threshold(rm, 10, scrname+".edgeSnapThreshold"), |
@@ -1384,26 +1384,25 @@ void BScreen::reassociateWindow(FluxboxWindow *w, unsigned int wkspc_id, | |||
1384 | } | 1384 | } |
1385 | 1385 | ||
1386 | void BScreen::initMenus() { | 1386 | void BScreen::initMenus() { |
1387 | lua::state &l = Fluxbox::instance()->lua(); | ||
1388 | m_workspacemenu.reset(MenuCreator::createMenuType("workspacemenu", screenNumber())); | 1387 | m_workspacemenu.reset(MenuCreator::createMenuType("workspacemenu", screenNumber())); |
1389 | l.loadfile(FbTk::StringUtil::expandFilename(Fluxbox::instance()->getMenuFilename()).c_str()); | 1388 | |
1390 | l.call(0, 0); | 1389 | m_rootmenu->reloadHelper()->setMainFile(Fluxbox::instance()->getMenuFilename()); |
1391 | l.getglobal("menu"); | ||
1392 | m_rootmenu = MenuCreator::createMenu(l, 0); | ||
1393 | // m_rootmenu->reloadHelper()->setMainFile(Fluxbox::instance()->getMenuFilename()); | ||
1394 | m_windowmenu->reloadHelper()->setMainFile(windowMenuFilename()); | 1390 | m_windowmenu->reloadHelper()->setMainFile(windowMenuFilename()); |
1395 | } | 1391 | } |
1396 | 1392 | ||
1397 | 1393 | ||
1398 | void BScreen::rereadMenu() { | 1394 | void BScreen::rereadMenu() { |
1399 | 1395 | ||
1400 | m_rootmenu->removeAll(); | ||
1401 | m_rootmenu->setLabel(FbTk::BiDiString("")); | ||
1402 | |||
1403 | Fluxbox * const fb = Fluxbox::instance(); | 1396 | Fluxbox * const fb = Fluxbox::instance(); |
1404 | if (!fb->getMenuFilename().empty()) | 1397 | lua::state &l = fb->lua(); |
1405 | MenuCreator::createFromFile(fb->getMenuFilename(), *m_rootmenu, | 1398 | l.checkstack(1); |
1406 | m_rootmenu->reloadHelper()); | 1399 | lua::stack_sentry s(l); |
1400 | |||
1401 | // XXX try/catch | ||
1402 | m_rootmenu->removeAll(); | ||
1403 | l.loadfile(FbTk::StringUtil::expandFilename(fb->getMenuFilename()).c_str()); | ||
1404 | l.call(0, 1); | ||
1405 | MenuCreator::createMenu(*m_rootmenu, l, screenNumber(), m_rootmenu->reloadHelper()); | ||
1407 | 1406 | ||
1408 | if (m_rootmenu->numberOfItems() == 0) { | 1407 | if (m_rootmenu->numberOfItems() == 0) { |
1409 | _FB_USES_NLS; | 1408 | _FB_USES_NLS; |
@@ -1430,12 +1429,16 @@ const std::string BScreen::windowMenuFilename() const { | |||
1430 | } | 1429 | } |
1431 | 1430 | ||
1432 | void BScreen::rereadWindowMenu() { | 1431 | void BScreen::rereadWindowMenu() { |
1432 | lua::state &l = Fluxbox::instance()->lua(); | ||
1433 | l.checkstack(1); | ||
1434 | lua::stack_sentry s(l); | ||
1433 | 1435 | ||
1434 | m_windowmenu->removeAll(); | ||
1435 | if (!windowMenuFilename().empty()) | ||
1436 | MenuCreator::createFromFile(windowMenuFilename(), *m_windowmenu, | ||
1437 | m_windowmenu->reloadHelper()); | ||
1438 | 1436 | ||
1437 | // XXX try/catch | ||
1438 | m_windowmenu->removeAll(); | ||
1439 | l.loadfile(FbTk::StringUtil::expandFilename(windowMenuFilename()).c_str()); | ||
1440 | l.call(0, 1); | ||
1441 | MenuCreator::createMenu(*m_windowmenu, l, screenNumber(), m_windowmenu->reloadHelper()); | ||
1439 | } | 1442 | } |
1440 | 1443 | ||
1441 | void BScreen::addConfigMenu(const FbTk::FbString &label, FbTk::Menu &menu) { | 1444 | void BScreen::addConfigMenu(const FbTk::FbString &label, FbTk::Menu &menu) { |