LINUX.ORG.RU

Окна chromium теряют фокус

 , , ,


0

1

Привет, ЛОР.

Уже давно наблюдаю такую проблему:
Через некоторое время при работе с браузером chromium он перестаёт принимать фокус при наведении на него мышки - чтоб окно получило фокус по нему нужно кликнуть. Это ужасно вымораживает, когда у тебя рядом IDE и открытый в хроме говносайт, ты переводишь мышь от окна IDE к окну chromium, нажимаешь ctrl+r, а хоткей уходит в IDE, потому что хром не в фокусе.

Если открепить от хрома вкладку в отдельное окно - с этим окном всё будет в порядке, тоже до некоторого момента. Сделал xprop больного и здорового окон хрома:

...
< WM_HINTS(WM_HINTS):
< 		Client accepts input or input focus: False
...
Я так понимаю, что этот WM_HINT используется для всяких всплывающих подсказок, которые не должны брать на себя фокус пока юзер по ним не кликнет, но почему этот хинт получает окно хрома, и от кого - ума не приложу.

Явную зависимость между своими действиями при работе с браузером и появлением этой проблемы не могу разглядеть, но наверняка проблема в чём-то при работе с браузером.

С другими окнами других приложений такой проблемы нет.

chromium-44.0.2403.18
awesome-3.5.6

UPD: решение -

c:connect_signal("mouse::enter", function(c)
    if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
        and (awful.client.focus.filter(c) or c.class == "Chromium-browser") then
        client.focus = c
    end
end)

★★★★★

Последнее исправление: NeverLoved (всего исправлений: 3)

У меня в awesome окна теряют фокус или не реагируют на клик по тайтлу в панели при выбранной русской раскладке.

Проверьте, не повторяется ли такой симптом у вас?


А так, хромиум ведет себя вполне предсказуемо, проблема только с wine и java приложениями, к примеру PhpStorm, когда запущено несколько копий, не реагируют на клики, нельзя «свернуть все», обязательно какое-то окно должно остаться и т.д.

BaBL ★★★★★
()

Переключай окна хоткеями, sloppy focus не нужен

annulen ★★★★★
()

Никогда не понимал, как можно пользоваться wm с фокусом по наведению. Всегда бесило, что окно получает фокус как только на него мышкой наводишь. Это была первая или одна из первых вещей, которую я убирал из дефолта осом.

sudopacman ★★★★★
()
Ответ на: комментарий от sudopacman

Проверьте, не повторяется ли такой симптом у вас?

На лоре куча тем с решением этой проблемы

Я помню кучу тем с решением проблемы в JAVA приложениях и в Firefox, а не в awesome.

Проблема вообще в xkbcomp

BaBL ★★★★★
()
Ответ на: комментарий от BaBL

Так оно перестаёт себя нормально вести даже когда оно одно. Открепляем вкладку, прибиваем больное окно, продолжаем работу в новом.

У меня в awesome окна теряют фокус или не реагируют на клик по тайтлу в панели при выбранной русской раскладке.

Проверьте, не повторяется ли такой симптом у вас?

Древняя проблема - или откатить xkbcomp до версии 1.2.3, или использовать патченный awesome от местного умельца (не могу вспомнить ник, возможно он придёт сюда по тегу), или использовать вот такое колдунство перед стартом awesome: xkbcomp $DISPLAY - | egrep -v "group . = AltGr;" | xkbcomp - $DISPLAY
У меня колдунство не заработало, просто замаскировал более новые версии xkbcomp.

NeverLoved ★★★★★
() автор топика
Ответ на: комментарий от NeverLoved

Не, я к раскладке привык, на автомате на енг переключаюсь просто.

Я имел ввиду может у вас окна фокус при русской теряют.

BaBL ★★★★★
()
Ответ на: комментарий от sudopacman

не понимал

Ну субъективизм же. Я, например, наоборот, пока юзал KWin, врубал оное почти на максимум (правда, там при полном флоатинге это было не очень удобно).

DeadEye ★★★★★
()
Ответ на: комментарий от NeverLoved

Лол. Там же нужно просто закомментировать 3 строчки в каком-то файле. Я тоже этот вопрос в своё время поднимал. Можешь найти эту тему (один из первых моих топиков), там сказанно, какой файл редактировать.

sudopacman ★★★★★
()
Ответ на: комментарий от DeadEye

Мне нельзя 9999, у меня патченный 3.5.6 (патч на systray.c, делающий трей в две полоски. Пользую для вертикальной панели).

Да и как-то замаскированные версии xkbcomp не мешают вообще. Будет с чем-нибудь конфликтовать - пропатчу awesome и размаскирую xkbcomp. Пока не нужно, и проблема топика в другом.

NeverLoved ★★★★★
() автор топика
Последнее исправление: NeverLoved (всего исправлений: 1)
Ответ на: комментарий от NeverLoved

Я не патчил осом, я запилил микро-патч в xkeyboard-config, собственно, который поставляет тот самый файл, обеспечивающий проблему с мышью в awesome.

DeadEye, злодей, вот не удалось мне скромно отмолчаться.

По сабжу: Не пробовал принудительно хинты заменять (правило, коллбэк или что-то в этом роде)? Если мне не изменяет пямять, awesome умеет подмену значений клиента (глубже не копал, и не в курсе конкретно за WM_HINTS).

Да и sloppy focus давно никто не пользует. Двадцать первый век на дворе, хоткеи же!

r3lgar ★★★★★
()
Ответ на: комментарий от r3lgar

С двумя мониторами вполне удобно, чо.

По поводу отпиливания этого хинта у проблемных окон - я изначально думал что-нибудь в таком духе сделать, но интересно же, почему такое поведение появляется, и при каких условиях.

NeverLoved ★★★★★
() автор топика
Ответ на: комментарий от NeverLoved

почему такое поведение появляется, и при каких условиях.

На этот вопрос толком может ответить только гугол, но он вряд ли станет это делать.

r3lgar ★★★★★
()

Попробуй, не поможет ли замена

if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
   and awful.client.focus.filter(c) then
на
if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier then

Worron ★★★
()
Ответ на: комментарий от Worron

Шикарно, помогло!

c:connect_signal("mouse::enter", function(c)
    if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
        and (awful.client.focus.filter(c) or c.class == "Chromium-browser") then
        client.focus = c
    end
end)

Полностью выпилить filter не нужно - таким же хинтом обозначаются всякие всплывающие штуки. Дополнение кода в IDE, например.

Спасибо за помощь.

NeverLoved ★★★★★
() автор топика
Последнее исправление: NeverLoved (всего исправлений: 1)
Ответ на: Шикарно, помогло! от NeverLoved

Полностью выпилить filter не нужно

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

Worron ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.