예제 #1
0
파일: panel.c 프로젝트: o9000/tint2
Clock *click_clock(Panel *panel, int x, int y)
{
	Clock *clock = &panel->clock;
	if (area_is_under_mouse(clock, x, y))
		return clock;
	return NULL;
}
예제 #2
0
파일: panel.c 프로젝트: o9000/tint2
Battery *click_battery(Panel *panel, int x, int y)
{
	Battery *bat = &panel->battery;
	if (area_is_under_mouse(bat, x, y))
		return bat;
	return NULL;
}
예제 #3
0
파일: panel.c 프로젝트: o9000/tint2
Execp *click_execp(Panel *panel, int x, int y)
{
	for (GList *l = panel->execp_list; l; l = l->next) {
		Execp *execp = (Execp *)l->data;
		if (area_is_under_mouse(execp, x, y))
			return execp;
	}
	return NULL;
}
예제 #4
0
파일: panel.c 프로젝트: o9000/tint2
Launcher *click_launcher(Panel *panel, int x, int y)
{
	Launcher *launcher = &panel->launcher;

	if (area_is_under_mouse(launcher, x, y))
		return launcher;

	return NULL;
}
예제 #5
0
파일: panel.c 프로젝트: o9000/tint2
Taskbar *click_taskbar(Panel *panel, int x, int y)
{
	for (int i = 0; i < panel->num_desktops; i++) {
		Taskbar *taskbar = &panel->taskbar[i];
		if (area_is_under_mouse(taskbar, x, y))
			return taskbar;
	}
	return NULL;
}
예제 #6
0
파일: panel.c 프로젝트: o9000/tint2
LauncherIcon *click_launcher_icon(Panel *panel, int x, int y)
{
	Launcher *launcher = click_launcher(panel, x, y);
	if (launcher) {
		for (GSList *l = launcher->list_icons; l; l = l->next) {
			LauncherIcon *icon = (LauncherIcon *)l->data;
			if (area_is_under_mouse(icon, x, y))
				return icon;
		}
	}
	return NULL;
}
예제 #7
0
파일: panel.c 프로젝트: o9000/tint2
Task *click_task(Panel *panel, int x, int y)
{
	Taskbar *taskbar = click_taskbar(panel, x, y);
	if (taskbar) {
		GList *l = taskbar->area.children;
		if (taskbarname_enabled)
			l = l->next;
		for (; l; l = l->next) {
			Task *task = (Task *)l->data;
			if (area_is_under_mouse(task, x, y)) {
				return task;
			}
		}
	}
	return NULL;
}
예제 #8
0
Area *find_area_under_mouse(void *root, int x, int y)
{
	Area *result = root;
	Area *new_result = result;
	do {
		result = new_result;
		GList *it = result->children;
		while (it) {
			Area *a = (Area *)it->data;
			if (area_is_under_mouse(a, x, y)) {
				new_result = a;
				break;
			}
			it = it->next;
		}
	} while (new_result != result);
	return result;
}