aboutsummaryrefslogtreecommitdiff
path: root/src/Screen.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Screen.cc')
-rw-r--r--src/Screen.cc37
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
1405void BScreen::initMenus() { 1405void 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
1417void BScreen::rereadMenu() { 1413void 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
1451void BScreen::rereadWindowMenu() { 1450void 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
1460void BScreen::addConfigMenu(const FbTk::FbString &label, FbTk::Menu &menu) { 1463void BScreen::addConfigMenu(const FbTk::FbString &label, FbTk::Menu &menu) {