История изменений
Исправление Zubok, (текущая версия) :
Есть два поведения: первое — флаг override redirect при создании окна (выпадающих меню, например), второе — читать ICCCM на предмет свойства окна WM_TRANSIENT_FOR (обычно диалоговые окна, окна выбора файлов). Для второго есть функция XSetTransientForHint.
А я вот несколько раз наблюдал решения когда пытаешься поставить в фокус родительское, которое находится под всплывшим, но «оно не даёт», и оставляет в фокусе всплывшее, пока ты в нем что-то там не впишешь или не выберешь (закрыв его). Можешь ссылкой кинуть где почитать про реализацию?
Это, скорее всего, WM_TRANSIENT_FOR. Открываешь любое приложение, например, GTK. в терминале пишешь:
$ xprop | grep "WM_TRANSIENT_FOR"
и клацаешь в диалог. В диалогах, которые не дают что-то ввести в родительском окне, это свойство будет, а в обычных окнах эта команда ничего не выдаст. Можешь проверить.
Исходная версия Zubok, :
Есть два поведения: первое — флаг override redirect при создании окна (выпадающих меню, например), второе: читать ICCCM на предмет свойства окна WM_TRANSIENT_FOR (обычно диалоговые окна, окна выбора файлов). Для второго есть функция XSetTransientForHint.
А я вот несколько раз наблюдал решения когда пытаешься поставить в фокус родительское, которое находится под всплывшим, но «оно не даёт», и оставляет в фокусе всплывшее, пока ты в нем что-то там не впишешь или не выберешь (закрыв его). Можешь ссылкой кинуть где почитать про реализацию?
Это, скорее всего, WM_TRANSIENT_FOR. Открываешь любое приложение, например, GTK. в терминале пишешь:
$ xprop | grep "WM_TRANSIENT_FOR"
и клацаешь в диалог. В диалогах, которые не дают что-то ввести в родительском окне, это свойство будет, а в обычных окнах эта команда ничего не выдаст. Можешь проверить.