Ковыряю свой собственный медиаплеер на gtkmm3 и gstreamer, и не могу заставить виджеты отображаться поверх видео, которое выводится в окно через xvideo.
Окно, на которое выводится видео - это виджет со своим собственным x11 окном, например, GtkEventBox, GtkWindow или самописный. На нем лежит дочерний GtkEventBox, и проблема в том, что когда видео воспроизводится, дочерний виджет не перекрывает часть видео, а само видео рисуется поверх него.
Написанная на голом XLib тестовая программа с родительским и дочерним окнами работает как и предполагается - дочернее окно перекрывает видео.
В чем разница? Почему GtkEventBox, имеющий собственное x11 window, работает не так, как дочернее окно в примере с XLib? Гуглинг и прочтение статьи GTK+ Drawing Model понимания не дали. Что такое очевидное я упускаю?
Понятно, что ответ скрыт в понимании X11 и тонкостей работы gtk, но хотелось бы услышать: в какую сторону копать?
Для тех, кому это может потребоваться: вот минимальный тестовый пример. Gtk вариант собирается по make app_gtk, X11 вариант - по make app_x11. Зависимости можно посмотреть в мейкфайле. Путь к медиафайлу захардкожен в дефайне FILE_PATH. Воспроизведение начинается по клику в окно.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Gtk + виджеты (2007)
- Форум [gtk] Стили виджетов. (2010)
- Форум Gtk+ стилизация виджета (2020)
- Форум [gtk] перекрывающиеся виджеты (2009)
- Форум Qt4.8 и Список дочерних виджетов (2012)
- Форум [GTK#] пропорции виджетов (2011)
- Форум GTK: список виджетов (2010)
- Форум GTK размещение виджетов (2011)
- Форум GTK-виджет «таблица» (2009)
- Форум [gtk] Виджет «файловый менеджер» (2010)