Подробности

[В начало]

Проблема в реализации № D0087

Краткое описание

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

Подробное описание

Каждая из следующих функций:

  1. XkbGetKeyTypes
  2. XkbGetKeySyms
  3. XkbGetKeyModifierMap
  4. XkbGetKeyActions
  5. XkbGetKeyExplicitComponents
  6. XkbGetKeyBehaviors
  7. XkbGetVirtualMods
осуществляет запрос к серверу с кодом операции "XkbGetMap" для получения частичного набора компонентов отображения клавиатуры. Как указано в "The X Keyboard Extension: Protocol Specification (Protocol Version 1.0 / Document Revision 1.0), Chapter 16 XKB Protocol Requests; 16.3.6 Querying and Changing the Keyboard Mapping" для этого необходимa устaновка соответствующей битовой маски в поле "partial:KB_MAPPARTMASK". На данный момент функции не устанавливают необходимого значения в поле "partial" структуры "xkbGetMapReq", оставляя его равным 0, что приводит к некорректной обработке запроса сервером и невозможностью получения запрашиваемых данных.

Раздел стандарта

Linux Standard Base Desktop Specification 3.1, Chapter 6. Libraries, 6.1.1.1 Interfaces for X Windows System Interface, который ссылается на The X Keyboard Extension: Library Specification (Library Version 1.0 / Document Revision 1.1), Chapter 15 Xkb Client Keyboard Mapping, Chapter 16 Xkb Server Keyboard Mapping

Способы устранения

Необходимо изменить исходный код функций с тем, чтобы установить корректные значения битовых масок в соответствии с: "The X Keyboard Extension: Protocol Specification (Protocol Version 1.0 / Document Revision 1.0), Chapter 16 XKB Protocol Requests; 16.3.6 Querying and Changing the Keyboard Mapping; page 67".

Компонент

X11 R6.4 or later

Принято

freedesktop.org Bugzilla 16159

[В начало]