Альтернатива GDK2 для gdk_window_set_fullscreen_mode

Я пытаюсь установить окно как GDK_FULLSCREEN_ON_ALL_MONITORS, но для этого мне нужно использовать gdk_window_set_fullscreen_mode, что это за версия GDK2?

Спасибо


person Noitidart    schedule 12.07.2015    source источник


Ответы (1)


Версии GDK 2.x этого API нет. Метод set_fullscreen_mode() был добавлен в 2013 году, спустя много времени после того, как API GTK+ 2.x был заморожен; это означает, что в API GTK+ 2.x не будет добавляться никаких новых функций.

Реализация set_fullscreen_mode() на X11 нетривиальна; это подразумевает получение индекса XINERAMA каждого монитора и отправку специального крафтера ClientMessage работающему оконному менеджеру для атома _NET_WM_FULLSCREEN_MONITORS. Вы можете увидеть реализацию, используемую в GDK, прикрепленную к проблеме, которая ее представила.

Если вам нужна такая функциональность, вам придется использовать GTK+ 3.x.

person ebassi    schedule 13.07.2015
comment
Большое спасибо @ebassi, мне нужна эта функциональность и в системах gtk2, будет ли достаточно расположить окно в верхнем левом углу, а затем присвоить этому окну высоту и ширину всех мониторов вместе взятых? Мне просто нужно убедиться, что окно отображается поверх любых специальных виджетов, таких как док-станция Unity и т. д. Я делаю скриншот следующим образом: addons.mozilla.org/en-US/firefox/addon/lightshot При щелчке покрывается полным снимком экрана, после чего пользователь может редактировать это изображение. - person Noitidart; 13.07.2015
comment
Вы можете использовать геометрию мониторов, и если вы используете окно, которое не управляется оконным менеджером (т. е. GtkWindow верхнего уровня GTK_WINDOW_POPUP), то вы сможете поместить его на всю область экрана. - person ebassi; 15.07.2015
comment
Пожалуйста, посмотрите мою тему здесь: stackoverflow.com/questions /31366706/ я не могу понять :( - person Noitidart; 15.07.2015