2009-09-01 5 views
0

Я пытаюсь выяснить, как определить, когда текущий пользователь изменил свое рабочее пространство в Mono. Я даже не уверен, как работает аспект работы Gnome. Краткий обзор Monodoc ничего не изменил, и я не смог найти ключ GConf, который дал мне то, что я хотел.Обнаружение измененной рабочей области в Gnome

Обновление: Метод ниже будет ТОЛЬКО работать, если Compiz не установлен в виртуальном размере. Например, если вы установите количество рабочих столов в Compiz равным 1 с горизонтальным виртуальным размером 2, Gdk.Global.CurrentDesktop вернет 0 для обеих рабочих областей.

Знает ли кто-нибудь о методе определения того, было ли изменено рабочее пространство, когда в Compiz включены виртуальные рабочие столы?

ответ

1

Это на самом деле функция диспетчера окон и то, как именно она работает, варьируется между менеджерами окон. Я не знаком с доступом к xlib в Mono, но вы ищете _NET_NUMBER_OF_DESKTOPS, _NET_DESKTOP_NAMES, _NET_CURRENT_DESKTOP и т. Д. Свойства X в корневом окне.

Extended Window Manager Hints specification FreeDesktop.org содержит множество деталей.

+0

Вооружившись тем, что я немного поработал и обнаружил, что глобальный класс в GDK содержит свойства, эквивалентные свойствам, которые вы дали. Благодаря! http://www.go-mono.com/docs/[email protected]%3a261%23Global%2fP – marco0009

1

Использование libwnck. Я уверен, что для него есть обложка Mono.