LINUX.ORG.RU

NETWM, ICCCM, fbpanel - где точка входа


0

0

Понадобилось написать нечто аналогичное тому что здесь http://fbpanel.sourceforge.net - реализует почти все что задумано. Переписать надо при помощи Qt. На этом сайте я выяснил что все это соответствует некоему стандарту NETWM, ICCCM. Скачал исходники, установил - работает. Теперь изучаю код.

Первое что интересует - как зарегистрировано окно так, чтобы при запуске панели все развернутые на весь экран окна подвигались и освобождали место для панельки. Где этот код содержится в этих исходниках и с каким пунктом в описании NETWM это соотносится?

Есть ли у кого-нибудь опыт работы с программами подобного рода?

читайте про _NET_WM_STRUT_PARTIAL

ananas ★★★★★
()

Вот код из одного из старых проектов:

void set_strut(GdkWindow *win,gulong size)
{
    Display *display;
    Window window;
    gulong struts[4]={0,0,0,0};
    Atom at;

    display=GDK_WINDOW_XDISPLAY(win);
    window=GDK_WINDOW_XWINDOW(win);

    at=XInternAtom(display,"_NET_WM_STRUT", False);

    struts[3]=size;

    gdk_error_trap_push();
    XChangeProperty(display,window,at,XA_CARDINAL,32,PropModeReplace,
		    (guchar*)&struts,4);
    gdk_error_trap_pop();
}

Darkman ★★★
()
Ответ на: комментарий от ananas

> тут лучше gdk_property_change() вместо XChangeProperty() использовать. единообразнее получится

Во времена написания этого кода gdk_property_change ухитрялся глючить временами, ибо GTK был ещё 2.2. Сейчас, конечно, лучше использовать её.

Darkman ★★★
()
Ответ на: комментарий от Darkman

если автор качал пример из вики, то там это всё используется.

alex_custov ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.