diff options
Diffstat (limited to 'src/MenuCreator.cc')
-rw-r--r-- | src/MenuCreator.cc | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/MenuCreator.cc b/src/MenuCreator.cc index ef97b63..8507388 100644 --- a/src/MenuCreator.cc +++ b/src/MenuCreator.cc | |||
@@ -451,16 +451,18 @@ FbTk::Menu *MenuCreator::createFromFile(const string &filename, int screen_numbe | |||
451 | if (!parser.isLoaded()) | 451 | if (!parser.isLoaded()) |
452 | return 0; | 452 | return 0; |
453 | 453 | ||
454 | startFile(); | ||
454 | string label; | 455 | string label; |
455 | if (require_begin && !getStart(parser, label, m_stringconvertor)) | 456 | if (require_begin && !getStart(parser, label, m_stringconvertor)) { |
457 | endFile(); | ||
456 | return 0; | 458 | return 0; |
459 | } | ||
457 | 460 | ||
458 | FbTk::Menu *menu = createMenu(label, screen_number); | 461 | FbTk::Menu *menu = createMenu(label, screen_number); |
459 | if (menu != 0) { | 462 | if (menu != 0) |
460 | startFile(); | ||
461 | parseMenu(parser, *menu, m_stringconvertor); | 463 | parseMenu(parser, *menu, m_stringconvertor); |
462 | endFile(); | 464 | |
463 | } | 465 | endFile(); |
464 | 466 | ||
465 | return menu; | 467 | return menu; |
466 | } | 468 | } |
@@ -474,14 +476,16 @@ bool MenuCreator::createFromFile(const string &filename, | |||
474 | if (!parser.isLoaded()) | 476 | if (!parser.isLoaded()) |
475 | return false; | 477 | return false; |
476 | 478 | ||
479 | startFile(); | ||
477 | string label; | 480 | string label; |
478 | if (require_begin && !getStart(parser, label, m_stringconvertor)) | 481 | if (require_begin && !getStart(parser, label, m_stringconvertor)) { |
482 | endFile(); | ||
479 | return false; | 483 | return false; |
484 | } | ||
480 | 485 | ||
481 | // save menu filename, so we can check if it changes | 486 | // save menu filename, so we can check if it changes |
482 | Fluxbox::instance()->saveMenuFilename(real_filename.c_str()); | 487 | Fluxbox::instance()->saveMenuFilename(real_filename.c_str()); |
483 | 488 | ||
484 | startFile(); | ||
485 | parseMenu(parser, inject_into, m_stringconvertor); | 489 | parseMenu(parser, inject_into, m_stringconvertor); |
486 | endFile(); | 490 | endFile(); |
487 | 491 | ||
@@ -499,10 +503,12 @@ bool MenuCreator::createWindowMenuFromFile(const string &filename, | |||
499 | 503 | ||
500 | string label; | 504 | string label; |
501 | 505 | ||
502 | if (require_begin && !getStart(parser, label, m_stringconvertor)) | 506 | startFile(); |
507 | if (require_begin && !getStart(parser, label, m_stringconvertor)) { | ||
508 | endFile(); | ||
503 | return false; | 509 | return false; |
510 | } | ||
504 | 511 | ||
505 | startFile(); | ||
506 | parseWindowMenu(parser, inject_into, m_stringconvertor); | 512 | parseWindowMenu(parser, inject_into, m_stringconvertor); |
507 | endFile(); | 513 | endFile(); |
508 | 514 | ||