Skip to content
Snippets Groups Projects
winwidget.c 27.2 KiB
Newer Older
		no_ptr = XCreatePixmapCursor(disp, bm_no, bm_no, &black, &black, 0, 0);
		XDefineCursor(disp, winwid->win, no_ptr);
	}
}

int winwidget_get_width(winwidget winwid)
{
	int rect[4];
	winwidget_get_geometry(winwid, rect);
int winwidget_get_height(winwidget winwid)
{
	int rect[4];
	winwidget_get_geometry(winwid, rect);
void winwidget_get_geometry(winwidget winwid, int *rect)
{
	XGetGeometry(disp, winwid->win, &root, &(rect[0]), &(rect[1]), (unsigned
				int *)&(rect[2]), (unsigned int *)&(rect[3]), &bw, &bp);

	XTranslateCoordinates(disp, winwid->win, root, 0, 0, &(rect[0]), &(rect[1]), &child);

	/* update the window geometry (in case it's inaccurate) */
	winwid->x = rect[0];
	winwid->y = rect[1];
	winwid->w = rect[2];
	winwid->h = rect[3];
void winwidget_show_menu(winwidget winwid)
{
	int x, y, b;
	unsigned int c;
	Window r;

	XQueryPointer(disp, winwid->win, &r, &r, &x, &y, &b, &b, &c);
	if (winwid->type == WIN_TYPE_SINGLE) {
		if (!menu_single_win)
			feh_menu_init_single_win();
		feh_menu_show_at_xy(menu_single_win, winwid, x, y);
	} else if (winwid->type == WIN_TYPE_THUMBNAIL) {
		if (!menu_thumbnail_win)
			feh_menu_init_thumbnail_win();
		feh_menu_show_at_xy(menu_thumbnail_win, winwid, x, y);
	} else if (winwid->type == WIN_TYPE_THUMBNAIL_VIEWER) {
		if (!menu_single_win)
			feh_menu_init_thumbnail_viewer();
		feh_menu_show_at_xy(menu_thumbnail_viewer, winwid, x, y);
	} else {
		if (!menu_main)
			feh_menu_init_main();
		feh_menu_show_at_xy(menu_main, winwid, x, y);
	}