В случае, если я хочу иметь незадекларированное окно (например, я могу нарисовать декорации самостоятельно), есть ли способ сообщить текущему менеджеру окон X11, что область окна должна быть перетаскиваемой и управляется оконным менеджером? Меня интересуют решения низкого уровня (Xlib, XCB или аналогичные). Я также ищу как стандартное решение, насколько это возможно.Маркировка секций окна X11 как перетаскиваемая
Кроме того, могу ли я указать область окна, представляющую кнопку закрытия?
Я спрашиваю об этом, потому что было бы здорово, если бы я мог добавить дополнительный контент в оформление окна. Это вдохновляет Apple X X, где все декорации просты, старые NSView
s, а некоторые (закрывающиеся кнопки и т. Д.) Могут быть доступны документированным образом. Добавление дополнительного контента также вдохновляет OS X, где можно щелкнуть правой кнопкой мыши по имени документа, связанного с окном (в строке заголовка), и получить путь к документу. В то же время окно остается подвижным, даже если приложение не отвечает, поэтому область перетаскивания должна быть каким-то образом передана диспетчеру окон (то есть WindowServer
, правильно?).
Итак, если есть стандартный способ (или распространенное расширение FreeDesktop.org или что-то еще) для этого в X11, я хотел бы узнать об этом. :-)
Графические интерфейсы GUI часто делают такие вещи, создавая подокна. Любой «виджет», как правило, состоит из нескольких окон, работающих друг с другом. Другой (более простой) подход: 1) обрабатывать событие мыши, но 2) ничего не делать, если мышь x/y не находится в желаемой области. Это в значительной степени это, насколько «Xlib» :) – paulsm4
@ paulsm4 Не выглядит ли окно незаменимым, если приложение, поддерживающее фреймворк графического интерфейса, замерзает? Вот почему я спросил. –