Вставить приложение в окно - PullRequest
6 голосов
/ 22 марта 2011

FvwmButtons (модуль оконного менеджера fvwm) имеет функцию Swallow, которая встраивает окно приложения в панель.

Мне нужно сделать что-то подобное с Motif и Xlib. Я хочу встроить Xclock в свое приложение. Наверное, мне нужно изменить идентификатор окна встроенного приложения.

Как я могу это сделать?

Ответы [ 2 ]

5 голосов
/ 23 марта 2011

единственный поддерживаемый и надежный механизм - XEmbed, но для взаимодействия требуется встроенное приложение.Без сотрудничающего приложения вы попадаете в мир страшных хаков.

Основная вещь, которую вам нужно сделать, это XReparentWindow (), но проблема в том, что вы боретесь с оконным менеджером, который также захочет перекрасить окно.Вы также можете запутать приложение, которое будет ожидать поведения ICCCM и EWMH и ожидать, что родительское окно будет фреймом WM.

Действительно старые версии GNOME 1.x панели gnome имели функцию ласточки, с которой можно было попытаться украсть хаки.

Без довольно обширных знаний по Х это будет больно, и даже если не всегда возможно сделать 100% надежным.

2 голосов
/ 22 марта 2011

Похоже, вы ищете протокол XEmbed , задокументированный здесь .

...