Окно должно оставаться поверх всех остальных окон. Возможно ли это как-то с простым x11 / xlib? Поиск в Google для «Always on top» и «x11» / «xlib» не дал ничего полезного.
Я бы избегал наборов инструментов, таких как GTK +, если бы это было возможно.
Я использую Ubuntu с рабочим столом gnome. В меню окна есть опция «Всегда сверху». Это обеспечивается X-сервером или оконным менеджером? Если второй случай, есть ли общая функция, которая может быть вызвана почти для любого wm? Или как это сделать «универсальным» способом X11?
Редактировать: я реализовал ответ fizzer, теперь имея следующий код:
XSelectInput(this->display, this->window,
ButtonPressMask |
StructureNotifyMask |
ExposureMask |
KeyPressMask |
PropertyChangeMask |
VisibilityChangeMask );
// ...
// In a loop:
if (XPending(this->display) >= 0)
{
XNextEvent(this->display, &ev);
switch(ev.type) {
// ...
case VisibilityNotify:
XRaiseWindow(this->display, this->window);
XFlush(this->display);
break;
// ...
}
}
Но обработка событий и поднятие почти никогда не выполняются, даже моя маска верна?!