Как сделать XCreateWindow в фоновом режиме? - PullRequest
0 голосов
/ 02 апреля 2019

Я смотрю на улучшение работы разработчиков при запуске графических тестов, которые порождают недолговечные окна «как сумасшедшие». Окна должны быть физически там, так как в противном случае повторное чтение данных не удастся (т.е. окно не может быть скрыто )

Само собой разумеется, окна, появляющиеся с высокой частотой, неприятны. Я решил найти способ сказать XCreateWindow «создать окно на заднем плане», «не красть фокус» или что-то подобное безрезультатно. Самое близкое, что я мог найти, это вызвать XSetInputFocus post-creation. Кроме того, что я не смог заставить его работать, я не ожидаю, что настройка фокуса ввода в любом случае полностью решит проблему (так как окна все равно будут всплывать, но только не без фокуса ввода, верно?).

Как это делается в X11?


P.S. Уведомление об обновлении в Ubuntu запускается без всплывающих окон, поэтому это должно быть возможно.

1 Ответ

0 голосов
/ 02 апреля 2019

В прошлом я пытался и безуспешно терпел неудачу, делая то, что вы хотите сделать.Тем не менее я нашел несколько «достаточно близких» решений, которые могут представлять интерес.

XCreatePixmap может сработать, но в моем случае не было растрового изображения с желаемыми свойствами(мультисэмплинг), так что это "из окна" (ха-ха)

Чтобы предотвратить некоторый уровень спама, вы можете установить XCreateWindow parent на существующее окно, отличное от root, достаточно большое, чтобы вместить ваши тестыи вышел за пределы дисплея.Необходимо создать родительское окно, переместить его за пределы экрана и не сфокусировать, но по крайней мере каждое создание окна не будет красть фокус (я думаю) и спам на дисплее.

Или вы придумали способ создания дополнительныхдисплеи, возможно, используя Xvbf .У администратора не было доступа к corp dev env, поэтому он не пытался установить / настроить, в дополнение к другим препятствиям, но он мог бы просто работать для вас.

...