summaryrefslogtreecommitdiffstats
path: root/client/windows/red_window.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'client/windows/red_window.cpp')
-rw-r--r--client/windows/red_window.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/client/windows/red_window.cpp b/client/windows/red_window.cpp
index 43587e13..188c7724 100644
--- a/client/windows/red_window.cpp
+++ b/client/windows/red_window.cpp
@@ -1066,18 +1066,26 @@ void RedWindow_p::release_menu(Menu* menu)
}
}
-void RedWindow::set_menu(Menu* menu)
+int RedWindow::set_menu(Menu* menu)
{
release_menu(_menu);
_menu = NULL;
if (!menu) {
- return;
+ return 0;
}
- _menu = menu->ref();
+
_sys_menu = GetSystemMenu(_win, FALSE);
+ if (! _sys_menu) {
+ return -1;
+ }
+
+ _menu = menu->ref();
+
insert_seperator(_sys_menu);
insert_menu(_menu, _sys_menu, _commands_map);
+
+ return 0;
}
static LRESULT CALLBACK MessageFilterProc(int nCode, WPARAM wParam, LPARAM lParam)