static void openApplicationMenu(WApplication *wapp, int x, int y) { WMenu *menu; WScreen *scr = wapp->main_window_desc->screen_ptr; int i; if (!scr->icon_menu) { scr->icon_menu = createApplicationMenu(scr); wfree(scr->icon_menu->entries[1]->text); } menu = scr->icon_menu; if (wapp->flags.hidden) { menu->entries[1]->text = _("Unhide"); } else { menu->entries[1]->text = _("Hide"); } menu->flags.realized = 0; wMenuRealize(menu); x -= menu->frame->core->width/2; if (x + menu->frame->core->width > scr->scr_width) x = scr->scr_width - menu->frame->core->width; if (x < 0) x = 0; /* set client data */ for (i = 0; i < menu->entry_no; i++) { menu->entries[i]->clientdata = wapp; } wMenuMapAt(menu, x, y, False); }
static WMenu *openApplicationMenu(WApplication *wapp, int x, int y) { WMenu *menu; virtual_screen *vscr = wapp->main_window_desc->vscr; WScreen *scr = vscr->screen_ptr; int i; menu = createApplicationMenu(vscr, wapp->flags.hidden); menu->flags.realized = 0; /* set client data */ for (i = 0; i < menu->entry_no; i++) menu->entries[i]->clientdata = wapp; /* Menu position inside the screen */ x -= menu->frame->width / 2; if (x + menu->frame->width > scr->scr_width) x = scr->scr_width - menu->frame->width; if (x < 0) x = 0; menu->x_pos = x; menu->y_pos = y; menu_map(menu); wMenuMapAt(vscr, menu, False); return menu; }