Могу ли я begin_move_drag только на непрозрачной части при использовании cairo в Gtk?

#gtk #cairo #vala

#gtk #cairo #вала

Вопрос:

Gtk-3.0 здесь.

Я рисую что-то прямо в окне, используя cairo. Какая-то часть окна прозрачна, другая непрозрачна (или частично прозрачна).

Я хочу начинать перетаскивать (функция begin_move_drag) окно только тогда, когда точка мыши находится на непрозрачной части. Итак, как я могу судить, что текущая точка прозрачна statu? Получить пиксельную карту экрана и проверить альфа-значение? Или, может быть, мне помогут какие-нибудь приемы cairo?

Комментарии:

1. Ваш код нарисовал содержимое окна. Разве это не может просто «решить» таким же образом, какая часть прозрачна? Я имею в виду, если вы сделаете все от x = 0 до x = 30 прозрачным, тогда «if (x <= 30)» сделает свое дело.

2. Я не могу выполнить этот тест. Несколько раз я просто загружал SVG-картинку. в других случаях я использую метод show_text().