Как сделать приложение Mono/С# зарезервировать пространство экрана с помощью GTK?

У меня есть приложение Mono/С#, работающее на Linux, которое должно вести себя как панель. Он состыкован на стороне и "всегда сверху", но я не могу сделать это, чтобы зарезервировать место на экране. Я решил сделать что-то вроде этого:

byte[] StrutData = new byte[4];
StrutData [2] = 20;
Gdk.Property.Change(this.GdkWindow, Gdk.Atom.Intern("_NET_WM_STRUT", false), Gdk.Atom.Intern("CARDINAL", false), 32, Gdk.PropMode.Replace, StrutData , 4);

Результатом этого является то, что все окна находятся в нижней половине экрана и могут перемещаться только на 50 пикселей вверх и вниз. Что не так? Или, по крайней мере, можно это сделать?

1 ответ

Скопируйте код из этого файла Gtk # Screen Space Reserver в пустой файл и его просто введите

XLib.ReserveScreen (это, XLib.Position.> Top/Bottom/Left/Right>,> нужный размер>);

licensed under cc by-sa 3.0 with attribution.