#include "menu.priv.h"
-MODULE_ID("$Id: m_sub.c,v 1.10 2004/12/25 21:38:31 tom Exp $")
+MODULE_ID("$Id: m_sub.c,v 1.11 2009/04/05 00:35:51 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
{
if (menu->status & _POSTED)
RETURN(E_POSTED);
- menu->usersub = win;
- _nc_Calculate_Item_Length_and_Width(menu);
+ else
+#if NCURSES_SP_FUNCS
+ {
+ /* We ensure that usersub is never null. So even if a null
+ WINDOW parameter is passed, we store the SCREENS stdscr.
+ The only MENU that can have a null usersub is the static
+ _nc_default_Menu.
+ */
+ SCREEN *sp = _nc_screen_of(menu->usersub);
+
+ menu->usersub = win ? win : sp->_stdscr;
+ _nc_Calculate_Item_Length_and_Width(menu);
+ }
+#else
+ menu->usersub = win;
+#endif
}
else
_nc_Default_Menu.usersub = win;
/*---------------------------------------------------------------------------
| Facility : libnmenu
-| Function : WINDOW *menu_sub(const MENU *menu)
+| Function : WINDOW* menu_sub(const MENU *menu)
|
| Description : Returns a pointer to the subwindow of the menu
|