LINUX.ORG.RU

xlib, frameless window


0

0

Как сделать чтобы окно было без заголовка и прочих декораций? override_redirect не подходит, т.к. это должно быть обычное окно, получающее все нужные сообщения, подчиняющееся window-manager-у. В ICCCM и EWMH нужного не нашёл. Погуглив на гномовских форумах нашёл что-то про Motif hints, но их описания не нашёл.

anonymous

Такое точно делается через Qt. Пример идет с qt3 (ищи в гугле tux.cpp).

Как такое сделать кроссплатформенно на чистом xlib не знаю.

signal
()

Ох народ, ну почему Xlib? Почему не использовать SDL/Qt/whatever? Это
в образовательных целях? По теме:
Это зависит от WM и достигается через атомы этого WM.
-----------------------------------------------------
Atom atom = None;
const char* atomName = "_MOTIF_WM_HINTS"; // motif compliant
const char* atomName = "KWM_WIN_DECORATION"; // kwm
const char* atomName = "_WIN_HINTS"; // gnome

// получить атом WMа
if((atom = XInternAtom(display, atomName, True)) != None){
// заполнить зависимую от WM структуру
// и вызвать XChangeProperty для окна
}
-----------------------------------------------------
В том же SDL - вызов SDL_SetVideoMode с флагом SDL_NOFRAME и все.
Не понимаю, что есть ограничения и использовать можно только Xlib
напрямую?

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

> Ох народ, ну почему Xlib?

Так надо :)

Принцип понятен. Вот только конкретные детали неясны, ну ладно, почитаем сорсы.

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

MWM hints - это правильное направление. Как их выставлять, а также константы посмотри в init.c и rxvt.h из исходников rxvt-unicode.

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