Клуб Punto Switcher

Конфликт с программой Jitsi при переключении раскладки

19 августа 2014, 17:59

Ноутбук Acer Aspire E1-572G; Windows 8.1, 64 разр.; проц. Intel Core i3-4010U 1.7Ггц.

 

Пунто настроен на переключение раскладки по дополнительной клавише. Так вот, когда в окне чата Jitsi переключаешься на русский по дополнительной клавише, то Jitsi сдыхает. Что интересно, переключение комбинацией CTRL+SHIFT работает без проблем.

 

Что делать? Мне и пунто нужен, и jitsi! И переключение по доп.клавише как воздух нужно!

20 комментариев
Подписаться на комментарии к посту

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

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

 

А мне бы хотелось всё-таки разобраться, в чём дело. Думаю, вы можете помочь. Вот смотрите, Jitsi падает только при переключении по доп. клавише. Обычное переключение его не затрагивает. Значит, Пунто что-такое дергает в этот момент, что фатальным образом влияет на Jitsi.

Если бы мне хотя бы примерно знать, как действует Пунто при нажатии на доп.клавишу, то я бы более предметно обсуждал проблему с разработчиками Jitsi.

Механизм переключения Punto Switcher не меняется с 2001 года :) это симуляция работы клавиши Backspace и затем впечатывание текста в правильной раскладке.

У меня эта функция отключена, я не пользуюсь автоматическим переводом. Пунто самая вменяемая программа в аспекте моей любимой клавиатурной комбинации, когда левый Ctrl отвечает за один язык, а правый Ctrl за другой, по Дж. Раскину.

Получается, что когда я жму Ctrl+SHIFT, Пунто не вмешивается и даёт винде самой поменять раскладку.

А когда я жму левый/правый Ctrl, что происходит с раскладкой?

Причём Jitsi падает у меня только на Win8.1, 64-битной.

 

Понятно, что тут комбинация из трёх составляющих - ОС, Пунто и Джитси.

 

За какой системный вызов дёргает Пунто при нажатии доп. клавиши?

Сергей, так проблема и проявляла себя с 2001 года. Насколько я знаю, эта проблема есть в скайп и точно была в TrueLaunchBar. На данный момент я ими не пользуюсь, утверждать не могу. Правда, ситуация тогда была другая, зависание происходило при нажатии кнопку Break (исправление текста), а здесь на Ctrl (переключение раскладки без исправления). Но что интересно, в моём случае зависание происходило тоже в момент переключения раскладки. Т.е. текст успевал стереться, а новый не появлялся, т.к. программа зависала.
Убедиться в том, что виновато переключение раскладки легко, достаточно перенести функцию переключения раскладки до эмуляции backspace. Тогда проблемная программа будет зависать прежде, чем сотрутся буквы.
Подозреваю, что переключение делается через SendMessage, а не LoadKeyboardLayout.
Возможно стоит поменять одно на другое, чтобы исправить проблему.

Вы пользуетесь с 2001 года?:) Алгоритм работы нашей программы понятен и описан даже в Википедии. То, что некоторые программы реагируют на симуляцию нажатий клавишь отрицательно это понятно. Но мы не можем обходить правила, которые задает разработчик конкретной программы. Решение. Либо писать этому разработчику, либо ставить конфликтующую  программу в исключения Punto Switcher, либо пользоваться альтернативными программами: Keyboard Ninja, Orfo Switcher или KeySwitcher.

1) Разработчику написано. Не помогло.

2) Конфликтующая программа поставлена в исключения. Не помогло.

3) Поставлена альтернативная программа (Keyboard Ninja). Не помогло.

 

Вывод: современные разработчики не контролируют сложность программных систем.

Что делать? Помочь им в этом.

Как? Нащупать путь к решению путём совместных обсуждений.

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

открыл для себя jitsi, очень уж она подходит как замена скайпу особенно в корпоративном секторк и сразу поймал проблему с зависанием при работе с punto (win 8 64 bit). пробовал разные версии jitsi, обновлял java - не помогло. пробовал keyboard switcher - тоже не помогло. jitsi виснет наглухо, при использовании любой программы автопереключения.
НО если запустить jitsi от имени администратора (прав.кн.мыши на ярлыке), то программа перестает зависать!!! Правда и переключение клавиатуры не работает, но это меньшее зло. в одной программе я обойдусь без punto.
т.е. решением может быть запуск jitsi от имени администратора
 

Я действительно пользуюсь Punto так давно. Правда, с этим багом я столкнулся в году 2004-ом. Что касается алгоритма работы программы, то в википедии нет ни слова про то, как происходит переключение языка. А оно может происходит как извне программы с помощью отсылки сообщения программе, так и изнутри программы, хуком через вызов функции WinAPI. Ещё тогда (в 2004) я писал об этом, через форму обратной связи, но отклика от вас не получил. Зато откликнулся разработчик TrueLaunchBar. Ни чего экзотического в его программе не было, обычное поле ввода, поэтому определить причину зависания так и не удалось. Была ещё какая-то программа, которая вела себя точно так же, вроде бы outlook express, но сейчас я в этом не уверен.

Наиль, читаем текст внимательно! Первый абзац в Википедии: "Основное назначение программы — увеличение продуктивности и удобства при работе с компьютером. Работая в фоновом режиме, Punto Switcher проводит статистический анализ последовательностей вводимых символов слова, и, если сочетание букв оказывается нетипичным для языка, на котором вводятся символы, Punto Switcher переключает язык ввода, стирает напечатанное, эмулируя нажатия клавиши  ← Backspace , и повторно вводит текст уже с правильной раскладкой клавиатуры".

А как производится переключение раскладки?
Эмуляция Alt+Shift?
SendMessage?
LoadKeyboardLayout?
Это важно, именно в этот момент происходит "умирание" программ.
Сейчас обратил внимание, что у всех проблемных программ есть функция global hotkeys. Возможно проблема в этом.
Что касается Jitsi, то исходный код программы открыт: https://github.com/jitsi/jitsi
Так что у вас есть возможность самостоятельно определить каким образом пунто убивает программы.

Прошу заметить, что я не утверждаю, будто Пунто глючит. Я более чем уверен, что проблема именно в Jitsi. Но я прошу лишь информации о его работе при использовании доп. клавиши, чтобы был предмет для разговора с разработчиками Jitsi.

Сергей, вы можете объяснить, какой системный вызов дёргается при нажатии доп. клавиши? Если никакой, то так и скажите. Если не знаете, то так и скажите. Внесите определённость, хотя бы.

Мы не обсуждаем в клубе вопросы программирования и особенностей реализации тех или иных функций программ. Сделаю единственное исключение в этот раз и на этом закончим. Для переключения раскладки окну, в котором стоит фокус, через PostMessage посылается сообщение WM_INPUTLANGCHANGEREQUEST

Спасибо!

Андрей Валерьянкин
9 сентября 2014, 12:44

Tа же история. Jitsi намертво виснет сразу после нажатия Ctrl-Shift (мне и это не помогает).

OS: win xp

Пробовал вносить Jitsi  в запреты Punto - никакой реакции. Хотя, как я понимаю, в случае программы из списка запретов Пунто должен ничего ей не слать. Однако пуля выходит...

 

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

Такая же беда... жаль, что за столько лет ни с той, ни с этой стороны не найдено решения. Джитси -- корпоративная, так что приходится отказываться из-за неё от пунто :-(