Трудно найти какой-либо "официальный" стандарт или что-то подобное, но
Свойство _MOTIF_WM_HINTS, похоже, исходит из ... набора инструментов Motif (хорошо, вы
догадался что :-)).
См. сайт MotifZone .
Предупреждение: то, что следует, является неполным, но я должен пролить некоторый свет, я надеюсь.
Документация для XmNmwmDecorations, XmNmwmFunctions и XmNmwmInputMode
Функции инструментария указывают, что это свойство является битовой маской различных
значения, используемые для управления внешним видом, функциями (изменение размера, перемещение, ...) и ввод
режим, который оконный менеджер должен предоставить / дать окну.
См. man vendorshell , или Справочники Oreilly Motif, глава 16 Vol. 6 .
Свойства являются частью целого X11. Окно может иметь любое количество
свойства, определенные на нем. Свойства имеют имя, но настройка / получение
свойства делаются через «атом» (идентификатор сортов), чтобы избежать отправки
вся строка в проводе для каждого вызова get / set.
См. Свойства и атомы
Текущий оконный менеджер (если есть) может реагировать на свойство окна
изменяется, устанавливая соответствующий фильтр событий и действуя на PropertyNotify
события, или просто проверка свойств окна, когда оно отображается (или перемещается, или что-то еще). Если оконный менеджер знает о свойстве _MOTIF_WM_HINT, он
интерпретировать их и (надеюсь) делать то, что вы хотите.
(Примечание: я не совсем уверен, передается ли эта привилегия окну
менеджер, или если другие окна могут прослушивать эти события «PropertyNotify». Не
уверен, что это действительно имеет отношение к вашему вопросу.)
Итак, ваш код работает нормально, пока ваш оконный менеджер знает
о свойстве _MOTIF_WM_HINTS.
Вы начинаете с получения атома
(идентификатор / ярлык) для него с помощью XInternAtom и установка его значения с помощью XChangeProperty ()
до того, как окно будет нарисовано через MapWindow () (не уверен, что
работать, если вы делаете это после MapWindow (), это может зависеть от вашего окна
менеджер).
[Редактировать: установка части .decorations в ноль очищает все биты декорации, поэтому это требует, чтобы оконный менеджер по существу оставил ваши границы в покое.]
Я не могу придумать где-то "официальное" определение этой структуры. Это определено в lib / X11 / MwmUtils.h дистрибутива openmotif-2.3.3. Не уверен, как используется запись .flags (не могу найти код для моей жизни: - /), но я подозреваю, что он используется, чтобы указать, какое из {sub-properties 'украшения, функции, inputMode} действующий на. (Не верьте мне на слово.)
Как примечание, использование _MOTIF_WM_HINTS может быть не лучшим вариантом
сейчас. Вы смотрели на Extended Window Manager подсказки
спецификация и другая информация / стандарты / черновики на freedesktop? Держу пари, что большинство «современных» оконных менеджеров / настольных сред / кухонных раковин будут склонны придерживаться этого, а не сохранять обратную совместимость с Motif. Все зависит от того, что вы кодируете, я думаю.
Спасибо за чтение: -)