diff options
author | Mathias Gumz <akira@fluxbox.org> | 2015-01-21 21:16:19 (GMT) |
---|---|---|
committer | Mathias Gumz <akira@fluxbox.org> | 2015-01-21 21:16:19 (GMT) |
commit | e2dbdeeb2eb1dd1e2ff97499e894a86d47d9e3db (patch) | |
tree | b8c195be09bb46413025ed2a8f0c3cc7eadc8482 /src/Remember.cc | |
parent | 145cf94ea67a7d58ccd0a90dae8cba8c38a3275a (diff) | |
download | fluxbox-e2dbdeeb2eb1dd1e2ff97499e894a86d47d9e3db.zip fluxbox-e2dbdeeb2eb1dd1e2ff97499e894a86d47d9e3db.tar.bz2 |
Fix segfault on shutdown
There was a problem deep within how the menus were connected and when and
what gets deleted. It was clearly related to a menu which was kind of
global. In order to better understand the code flow I eliminated the
ExtraMenu code: it was used only to get the Remember-Menu into the
Window-Menu. Instead of having a singleton of the Remember-Menu and fight
against the shaky interconnections we just create a new one on demand
and delete when the menu gets deleted. Looks like this fixes the problem.
The menu code needs more love anyway.
Closes #1118
Diffstat (limited to 'src/Remember.cc')
-rw-r--r-- | src/Remember.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/Remember.cc b/src/Remember.cc index f946ad0..19ea5f0 100644 --- a/src/Remember.cc +++ b/src/Remember.cc | |||
@@ -1442,10 +1442,10 @@ void Remember::updateClientClose(WinClient &winclient) { | |||
1442 | 1442 | ||
1443 | } | 1443 | } |
1444 | 1444 | ||
1445 | void Remember::initForScreen(BScreen &screen) { | 1445 | void Remember::initForScreen(BScreen &screen) { } |
1446 | // All windows get the remember menu. | 1446 | |
1447 | _FB_USES_NLS; | 1447 | FbTk::Menu* Remember::createMenu(BScreen& screen) { |
1448 | screen.addExtraWindowMenu(_FB_XTEXT(Remember, MenuItemName, "Remember...", "Remember item in menu"), | ||
1449 | createRememberMenu(screen)); | ||
1450 | 1448 | ||
1449 | return createRememberMenu(screen); | ||
1451 | } | 1450 | } |
1451 | |||