Подразумевает ли _NET_WM_STATE_HIDDEN _NET_WM_STATE_SKIP_TASKBAR

После переключения с KDE на XFCE я заметил, что окно диспетчера boinc останется видимым на панели задач в виде свернутого окна, когда я его закрою. В KDE (насколько я помню) закрытие окна полностью скрывало его, а значок на панели задач оставался для управления приложением. Я думаю, что это предполагаемое поведение в любом случае.

Согласно xprop, окно имеет

WM_STATE(WM_STATE):
                window state: Iconic
                icon window: 0x10a3f90
_NET_WM_STATE(ATOM) = _NET_WM_STATE_HIDDEN

Атом состояния _NET_WM_STATE_SKIP_TASKBAR, явно указывающий, что пропуск на панели задач не включены в этот список.

Теперь хочу понять, где это исправить. Должен ли я исправить xfce-panel, чтобы пропускать окна со скрытым состоянием? Или я должен попытаться включить состояние окна _NET_WM_STATE_SKIP_TASKBAR? Путь кода для сокрытия окна, по-видимому, проходит через wxWidgets и его wxWindowGTK::Show метод к gtk_widget_hide к XWithdrawWindow, так что, возможно, xfwm4 должен отреагировать и добавить этот атом?

Существуют ли какие-либо официальные документы о том, как должно работать скрытие окна?




Ответы (1)


_NET_WM_STATE_HIDDEN должен быть установлен оконным менеджером, а не приложением. В частности, все свернутые окна должны иметь _NET_WM_STATE установлено значение _NET_WM_STATE_HIDDEN. Ни в коем случае это состояние не подразумевает _NET_WM_STATE_SKIP_TASKBAR.

person n. 1.8e9-where's-my-share m.    schedule 27.04.2014