Exemplo n.º 1
0
void stacking_add(struct wm_window *win)
{
	g_assert(screen_support_win != None);
	if(WINDOW_IS_CLIENT(win))
		g_assert(WINDOW_AS_CLIENT(win)->managed);
	stacking_list = g_list_append(stacking_list, win);
	stacking_raise(win);
}
Exemplo n.º 2
0
gboolean stacking_restack_request(struct wm_client *client, struct wm_client *sibling, gint detail)
{
	gboolean ret = FALSE;
	if(sibling && (client->desktop != sibling->desktop && client->desktop != DESKTOP_ALL && sibling->desktop != DESKTOP_ALL)) {
		wm_debug("Setting restack sibling to NULL, they are not on the same desktop");
		sibling = NULL;
	}
	switch (detail) {
	case Below:
		wm_debug("Restack request Below for client %s sibling %s", client->title, sibling ? sibling->title : "(all)");
		stacking_lower(CLIENT_AS_WINDOW(client));
		ret = TRUE;
		break;
	case BottomIf:
		wm_debug("Restack request BottomIf for client %s sibling %s", client->title, sibling ? sibling->title : "(all)");
		if(stacking_occludes(client, sibling)) {
			stacking_lower(CLIENT_AS_WINDOW(client));
			ret = TRUE;
		}
		break;
	case Above:
		wm_debug("Restack request Above for client %s sibling %s", client->title, sibling ? sibling->title : "(all)");
		stacking_raise(CLIENT_AS_WINDOW(client));
		ret = TRUE;
		break;
	case TopIf:
		wm_debug("Restack request TopIf for client %s sibling %s", client->title, sibling ? sibling->title : "(all)");
		if(stacking_occluded(client, sibling)) {
			stacking_raise(CLIENT_AS_WINDOW(client));
			ret = TRUE;
		}
		break;
	case Opposite:
		wm_debug("Restack request Opposite for client %s sibling %s", client->title, sibling ? sibling->title : "(all)");
		if(stacking_occluded(client, sibling)) {
			stacking_raise(CLIENT_AS_WINDOW(client));
			ret = TRUE;
		} else if(stacking_occludes(client, sibling)) {
			stacking_lower(CLIENT_AS_WINDOW(client));
			ret = TRUE;
		}
		break;
	}
	return ret;
}
Exemplo n.º 3
0
static gboolean popup_show_timeout(gpointer data)
{
    ObPopup *self = data;

    XMapWindow(obt_display, self->bg);
    stacking_raise(INTERNAL_AS_WINDOW(self));
    self->mapped = TRUE;
    self->delay_mapped = FALSE;

    return FALSE; /* don't repeat */
}
Exemplo n.º 4
0
/* Always return FALSE because its not interactive */
static gboolean run_func(ObActionsData *data, gpointer options)
{
    if (data->client) {
//	syslog(LOG_INFO,"raise before move");
        actions_client_move(data, TRUE);
	
//	syslog(LOG_INFO,"raise before raise");
        stacking_raise(CLIENT_AS_WINDOW(data->client));
//	syslog(LOG_INFO,"raise after raise");
        actions_client_move(data, FALSE);
    }

    return FALSE;
}