diff -r 909fe96e5659 -r 102fc0b8fe3e ui/motif/menu.c --- a/ui/motif/menu.c Sun Jan 24 22:20:47 2016 +0100 +++ b/ui/motif/menu.c Mon Jan 25 16:36:31 2016 +0100 @@ -540,18 +540,28 @@ *c = FALSE; } -void ui_contextmenu(UiObject *obj) { +UIMENU ui_contextmenu(UiObject *obj) { UiContainer *ct = uic_get_current_container(obj); - ui_contextmenu_w(obj, ct->current); + if(ct->current) { + return ui_contextmenu_w(obj, ct->current); + } else { + return NULL; // TODO: warn + } } -void ui_contextmenu_w(UiObject *obj, UIWIDGET widget) { +UIMENU ui_contextmenu_w(UiObject *obj, UIWIDGET widget) { UiContainer *ct = uic_get_current_container(obj); - Widget menu = XmCreatePopupMenu(ct->current, "popup_menu", NULL, 0); + Widget menu = XmCreatePopupMenu(widget, "popup_menu", NULL, 0); ct->menu = menu; XtAddEventHandler(widget, ButtonPressMask, FALSE, ui_popup_handler, menu); + + return menu; +} + +void ui_contextmenu_popup(UIMENU menu) { + } void ui_widget_menuitem(UiObject *obj, char *label, ui_callback f, void *userdata) {