Example #1
0
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);
}
Example #2
0
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;
}