X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2Flibaxwin3.so_src%2Fr_menu.c;h=9894abd05e6cf2a30d8c639db1983880d8453559;hb=9a9053e91df6e08761e2ce72be350c5c2233153b;hp=78fa169a6076da2078a8ebeae1247905c9273548;hpb=5057414aefd4d2c869fc9937b48dfdd1910fb573;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin3_src/libaxwin3.so_src/r_menu.c b/Usermode/Applications/axwin3_src/libaxwin3.so_src/r_menu.c index 78fa169a..9894abd0 100644 --- a/Usermode/Applications/axwin3_src/libaxwin3.so_src/r_menu.c +++ b/Usermode/Applications/axwin3_src/libaxwin3.so_src/r_menu.c @@ -43,9 +43,9 @@ int AxWin3_Menu_int_Callback(tHWND Window, int Message, int Length, void *Data) if(msg->ID >= info->nItems) return -1; item = &info->Items[msg->ID]; if(item->Callback) item->Callback(item->CbPtr); - return 0; } + return 1; } } - return 1; + return 0; } tHWND AxWin3_Menu_Create(tHWND Parent) @@ -67,6 +67,7 @@ void AxWin3_Menu_ShowAt(tHWND Menu, int X, int Y) { AxWin3_MoveWindow(Menu, X, Y); AxWin3_ShowWindow(Menu, 1); + AxWin3_FocusWindow(Menu); } tAxWin3_MenuItem *AxWin3_Menu_AddItem( @@ -86,7 +87,7 @@ tAxWin3_MenuItem *AxWin3_Menu_AddItem( _SysDebug("ERROR: Realloc Failed"); return NULL; } - + ret = &info->Items[info->nItems-1]; ret->ID = info->nItems - 1; ret->Window = Menu; @@ -95,16 +96,19 @@ tAxWin3_MenuItem *AxWin3_Menu_AddItem( ret->SubMenu = SubMenu; { - tMenuMsg_AddItem *req; - int data_size; if(!Label) Label = ""; - data_size = sizeof(*req)+strlen(Label)+1; + tMenuIPC_AddItem *req; + int data_size = sizeof(*req) + strlen(Label)+1; req = malloc(data_size); + if( !req ) { + free(ret); + return NULL; + } req->ID = ret->ID; req->Flags = Flags; req->SubMenuID = AxWin3_int_GetWindowID(SubMenu); strcpy(req->Label, Label); - AxWin3_SendMessage(Menu, Menu, MSG_MENU_ADDITEM, data_size, req); + AxWin3_SendIPC(Menu, IPC_MENU_ADDITEM, data_size, req); free(req); }