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 51fb165..8a3ad2a 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -277,7 +277,7 @@ BScreen::ScreenResource::ScreenResource(FbTk::ResourceManager_base &rm, | |||
277 | click_raises(rm, true, scrname+".clickRaises"), | 277 | click_raises(rm, true, scrname+".clickRaises"), |
278 | default_deco(rm, "NORMAL", scrname+".defaultDeco"), | 278 | default_deco(rm, "NORMAL", scrname+".defaultDeco"), |
279 | tab_placement(rm, FbWinFrame::TOPLEFT, scrname+".tab.placement"), | 279 | tab_placement(rm, FbWinFrame::TOPLEFT, scrname+".tab.placement"), |
280 | windowmenufile(rm, Fluxbox::instance()->getDefaultDataFilename("windowmenu"), scrname+".windowMenu"), | 280 | windowmenufile(rm, Fluxbox::instance()->getDefaultDataFilename("windowmenu2"), scrname+".windowMenu"), |
281 | typing_delay(rm, 0, scrname+".noFocusWhileTypingDelay"), | 281 | typing_delay(rm, 0, scrname+".noFocusWhileTypingDelay"), |
282 | workspaces(rm, 4, scrname+".workspaces"), | 282 | workspaces(rm, 4, scrname+".workspaces"), |
283 | edge_snap_threshold(rm, 10, scrname+".edgeSnapThreshold"), | 283 | edge_snap_threshold(rm, 10, scrname+".edgeSnapThreshold"), |
@@ -1403,26 +1403,25 @@ void BScreen::reassociateWindow(FluxboxWindow *w, unsigned int wkspc_id, | |||
1403 | } | 1403 | } |
1404 | 1404 | ||
1405 | void BScreen::initMenus() { | 1405 | void BScreen::initMenus() { |
1406 | lua::state &l = Fluxbox::instance()->lua(); | ||
1407 | m_workspacemenu.reset(MenuCreator::createMenuType("workspacemenu", screenNumber())); | 1406 | m_workspacemenu.reset(MenuCreator::createMenuType("workspacemenu", screenNumber())); |
1408 | l.loadfile(FbTk::StringUtil::expandFilename(Fluxbox::instance()->getMenuFilename()).c_str()); | 1407 | |
1409 | l.call(0, 0); | 1408 | m_rootmenu->reloadHelper()->setMainFile(Fluxbox::instance()->getMenuFilename()); |
1410 | l.getglobal("menu"); | ||
1411 | m_rootmenu = MenuCreator::createMenu(l, 0); | ||
1412 | // m_rootmenu->reloadHelper()->setMainFile(Fluxbox::instance()->getMenuFilename()); | ||
1413 | m_windowmenu->reloadHelper()->setMainFile(windowMenuFilename()); | 1409 | m_windowmenu->reloadHelper()->setMainFile(windowMenuFilename()); |
1414 | } | 1410 | } |
1415 | 1411 | ||
1416 | 1412 | ||
1417 | void BScreen::rereadMenu() { | 1413 | void BScreen::rereadMenu() { |
1418 | 1414 | ||
1419 | m_rootmenu->removeAll(); | ||
1420 | m_rootmenu->setLabel(FbTk::BiDiString("")); | ||
1421 | |||
1422 | Fluxbox * const fb = Fluxbox::instance(); | 1415 | Fluxbox * const fb = Fluxbox::instance(); |
1423 | if (!fb->getMenuFilename().empty()) | 1416 | lua::state &l = fb->lua(); |
1424 | MenuCreator::createFromFile(fb->getMenuFilename(), *m_rootmenu, | 1417 | l.checkstack(1); |
1425 | m_rootmenu->reloadHelper()); | 1418 | lua::stack_sentry s(l); |
1419 | |||
1420 | // XXX try/catch | ||
1421 | m_rootmenu->removeAll(); | ||
1422 | l.loadfile(FbTk::StringUtil::expandFilename(fb->getMenuFilename()).c_str()); | ||
1423 | l.call(0, 1); | ||
1424 | MenuCreator::createMenu(*m_rootmenu, l, screenNumber(), m_rootmenu->reloadHelper()); | ||
1426 | 1425 | ||
1427 | if (m_rootmenu->numberOfItems() == 0) { | 1426 | if (m_rootmenu->numberOfItems() == 0) { |
1428 | _FB_USES_NLS; | 1427 | _FB_USES_NLS; |
@@ -1449,12 +1448,16 @@ const std::string BScreen::windowMenuFilename() const { | |||
1449 | } | 1448 | } |
1450 | 1449 | ||
1451 | void BScreen::rereadWindowMenu() { | 1450 | void BScreen::rereadWindowMenu() { |
1451 | lua::state &l = Fluxbox::instance()->lua(); | ||
1452 | l.checkstack(1); | ||
1453 | lua::stack_sentry s(l); | ||
1452 | 1454 | ||
1453 | m_windowmenu->removeAll(); | ||
1454 | if (!windowMenuFilename().empty()) | ||
1455 | MenuCreator::createFromFile(windowMenuFilename(), *m_windowmenu, | ||
1456 | m_windowmenu->reloadHelper()); | ||
1457 | 1455 | ||
1456 | // XXX try/catch | ||
1457 | m_windowmenu->removeAll(); | ||
1458 | l.loadfile(FbTk::StringUtil::expandFilename(windowMenuFilename()).c_str()); | ||
1459 | l.call(0, 1); | ||
1460 | MenuCreator::createMenu(*m_windowmenu, l, screenNumber(), m_windowmenu->reloadHelper()); | ||
1458 | } | 1461 | } |
1459 | 1462 | ||
1460 | void BScreen::addConfigMenu(const FbTk::FbString &label, FbTk::Menu &menu) { | 1463 | void BScreen::addConfigMenu(const FbTk::FbString &label, FbTk::Menu &menu) { |