[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.