[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: про X-овую клавиатуру
> Ну это я не понял. Можно еще кое-что "свалить на клиента", но зачем?
1. Уменьшится размер сервера. 2. В сервер бинарные модули подгрузить -
большая проблема, а в клиента - легко.
> Единственное, что еще можно отдать клиенту - "язык".
> А представьте себе, если каждое приложение начнет само решать - какая
> клавиша типа CapsLock, Shift, L_Win, Menu и т.п. - как меняет состояние.
> В одном приложении CapsLock работает как CapsLock, в другом - переключает
> "язык". В одном приложении правый Shift - Shift, в другом - Meta.
> Ну и так далее.
> Сами же взвоете и захотите "однообразия".
Если все это будет делаться на уровне Xlib - будет и однообразие.
Сейчас ведь все приложения уже пользуются X{,mb,wc}LookupString.
> Так что подправлять то?
> Вместо нынешней схемы где
> - сервер просто держит раскладку и "раздает" ее приложениям
> - зависимость флажков-модификаторов от физических кнопок заложена
> в сервере
> - а состояние сообщается клиенту с каждой кнопкой.
> Вы предлагаете
> - таблицу приложениям грузить не с сервера, а из текстового файла
> или - опять же с сервера только через properties root'ового окна
тут разницы нет, но с сервера убирается целый блок работы с Keymapping'гом,
и убирается часть X протокола.
> - зависимость модификаторов от клавиш вычислять в каждом приложении
> (а если они это будут делать по разному? Кошмар!!!)
Xlib?
> - состояние клавиатуры (если клиент не сам его вычисляет) пусть каждый
> раз запрашивает с сервера. (Зачем? Ему сейчас его и так докладывают.)
Каждый раз не надо, конечно. При загрузке приложения делается
XQueryKeymap, затем отслеживаются нажатия/отпускания клавиш; при
смене фокуса карта нажатых клавиш передается клиенту автоматически.
> Ну и чем это лучше? :-)
Логика переключения состояния клавиатуры переносится в клиента, что позволяет
1. облегчить сервер
2. большую гибкость за счет подгружаемых модулей.
Легкий сервер - это в принципе хорошо, т.к. он не всегда работает на мощных
компьютерах.
Как описывать логику переключения - это другой вопрос.
--
Alexander.