LINUX.ORG.RU

GdkWindow прозрачность


0

1

Каким образом можно GDK_WINDOW_CHILD сделать прозрачным, не используя set_composited?

Хочу допустим нарисовать большой красный крестик в центре GtkContainer, в котором может быть все что угодно. Никак не получается избавится от бэкграунда.

Ответ на: комментарий от ckotinko

Это уже пробовал. Если поставишь альфу в 0.0 то CAIRO_OPERATOR_SOURCE стирает фон, полностью до черного. Не могу понять в чем проблема.

gdk_screen_is_composited - возвращает TRUE

Вот код где окно создаю

static void 
my_widget_realize (GtkWidget *widget)
{
     GdkWindowAttr attributes;
     gint attributes_mask;

     gtk_widget_set_realized (widget, TRUE);

     GdkScreen *screen;
     GdkColormap *rgba;

     screen = gtk_widget_get_screen (widget);
     rgba = gdk_screen_get_rgba_colormap (screen);

     gtk_widget_set_colormap (widget, rgba);
     attributes.window_type 	= GDK_WINDOW_CHILD;
     attributes.wclass 		= GDK_INPUT_OUTPUT;
     attributes.visual 		= gtk_widget_get_visual (widget);
     attributes.colormap 	= gtk_widget_get_colormap (widget);

     attributes_mask 		= GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
     priv->control_window = gdk_window_new (gtk_widget_get_parent_window (widget), 
					    &attributes, attributes_mask);
}


Ну и соответственно потом с cairo на expose устанавливаю фон с альфа каналом как в примере по ссылке.

В итоге Чорное Окно.

Если делать через gdk_window_shape_combine_mask, то работает как надо - только соответственно все events тоже окну посылаются соответственно этой mask, а надо чтобы весь квадрат окна принимал события мыши.

Второе окно только для событий создавать не хочется.

grassmeister
() автор топика
Ответ на: комментарий от grassmeister

в мануале английским по белому сказано:

true и не-нуль возвращаются когда альфа-канал поддерживается оборудованием, дровами, иксами, directfb, или иным вэйландом. Но есть еще window manager, который цука иногда ложит болт на альфа-канал. это признак того, что пользователю надо поменять WM

ckotinko ☆☆☆
()
Ответ на: комментарий от grassmeister

пример по ссылке работать-то должен! вот уж кто-кто, а он завелся у меня без бубна(есть нотариально заверенные скриншоты)

ckotinko ☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.