diff --git a/XServer/jni/application/xserver/xserver/fix-miregion b/XServer/jni/application/xserver/xserver/fix-miregion deleted file mode 100755 index fc502bb..0000000 --- a/XServer/jni/application/xserver/xserver/fix-miregion +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -sed -i \ --e 's/miRegionCreate\b/RegionCreate/g' \ --e 's/miRegionInit\b/RegionInit/g' \ --e 's/miRegionDestroy\b/RegionDestroy/g' \ --e 's/miRegionUninit\b/RegionUninit/g' \ --e 's/miRegionCopy\b/RegionCopy/g' \ --e 's/miIntersect\b/RegionIntersect/g' \ --e 's/miUnion\b/RegionUnion/g' \ --e 's/miRegionAppend\b/RegionAppend/g' \ --e 's/miRegionValidate\b/RegionValidate/g' \ --e 's/miRectsToRegion\b/RegionFromRects/g' \ --e 's/miSubtract\b/RegionSubtract/g' \ --e 's/miInverse\b/RegionInverse/g' \ --e 's/miRectIn\b/RegionContainsRect/g' \ --e 's/miTranslateRegion\b/RegionTranslate/g' \ --e 's/miRegionReset\b/RegionReset/g' \ --e 's/miRegionBreak\b/RegionBreak/g' \ --e 's/miPointInRegion\b/RegionContainsPoint/g' \ --e 's/miRegionEqual\b/RegionEqual/g' \ --e 's/miRegionNotEmpty\b/RegionNotEmpty/g' \ --e 's/miRegionEmpty\b/RegionEmpty/g' \ --e 's/miRegionExtents\b/RegionExtents/g' \ --e 's/miPrintRegion\b/RegionPrint/g' \ --e 's/miRectAlloc\b/RegionRectAlloc/g' \ --e 's/miValidRegion\b/RegionIsValid/g' \ --e 's/miRegionBroken\b/RegionBroken/g' \ --e 's/miClipSpans\b/RegionClipSpans/g' \ -"$@" diff --git a/XServer/jni/application/xserver/xserver/fix-miregion-private b/XServer/jni/application/xserver/xserver/fix-miregion-private deleted file mode 100755 index ebc24fa..0000000 --- a/XServer/jni/application/xserver/xserver/fix-miregion-private +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -sed -i \ --e 's/miEmptyBox\b/RegionEmptyBox/g' \ --e 's/miEmptyData\b/RegionEmptyData/g' \ --e 's/miBrokenData\b/RegionBrokenData/g' \ --e 's/miBrokenRegion\b/RegionBrokenRegion/g' \ --e 's/miCoalesce\b/RegionCoalesce/g' \ --e 's/miAppendNonO\b/RegionAppendNonO/g' \ --e 's/miRegionOp\b/RegionOp/g' \ --e 's/miSetExtents\b/RegionSetExtents/g' \ --e 's/miIntersectO\b/RegionIntersectO/g' \ --e 's/miUnionO\b/RegionUnionO/g' \ --e 's/miSubtractO\b/RegionSubtractO/g' \ -"$@" diff --git a/XServer/jni/application/xserver/xserver/fix-patch-whitespace b/XServer/jni/application/xserver/xserver/fix-patch-whitespace deleted file mode 100755 index 2d06d8e..0000000 --- a/XServer/jni/application/xserver/xserver/fix-patch-whitespace +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -git diff --check | -sed -n 's!^\([^:]*\):\([^:]*\):.*!sed -i "\2 s/[ \t]*$//; \2 s/ *\t/\t/g" \1!p' | -sh diff --git a/XServer/jni/application/xserver/xserver/fix-region b/XServer/jni/application/xserver/xserver/fix-region deleted file mode 100755 index ef8eb42..0000000 --- a/XServer/jni/application/xserver/xserver/fix-region +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -sed -i \ - -e 's/REGION_NIL\b/RegionNil/g' \ - -e 's/REGION_NAR\b/RegionNar/g' \ - -e 's/REGION_NUM_RECTS\b/RegionNumRects/g' \ - -e 's/REGION_SIZE\b/RegionSize/g' \ - -e 's/REGION_RECTS\b/RegionRects/g' \ - -e 's/REGION_BOXPTR\b/RegionBoxptr/g' \ - -e 's/REGION_BOX\b/RegionBox/g' \ - -e 's/REGION_TOP\b/RegionTop/g' \ - -e 's/REGION_END\b/RegionEnd/g' \ - -e 's/REGION_SZOF\b/RegionSizeof/g' \ - -e 's/REGION_CREATE *([^,]*, */RegionCreate(/g' \ - -e 's/REGION_COPY *([^,]*, */RegionCopy(/g' \ - -e 's/REGION_DESTROY *([^,]*, */RegionDestroy(/g' \ - -e 's/REGION_INTERSECT *([^,]*, */RegionIntersect(/g' \ - -e 's/REGION_UNION *([^,]*, */RegionUnion(/g' \ - -e 's/REGION_SUBTRACT *([^,]*, */RegionSubtract(/g' \ - -e 's/REGION_INVERSE *([^,]*, */RegionInverse(/g' \ - -e 's/REGION_TRANSLATE *([^,]*, */RegionTranslate(/g' \ - -e 's/RECT_IN_REGION *([^,]*, */RegionContainsRect(/g' \ - -e 's/POINT_IN_REGION *([^,]*, */RegionContainsPoint(/g' \ - -e 's/REGION_EQUAL *([^,]*, */RegionEqual(/g' \ - -e 's/REGION_APPEND *([^,]*, */RegionAppend(/g' \ - -e 's/REGION_VALIDATE *([^,]*, */RegionValidate(/g' \ - -e 's/BITMAP_TO_REGION\b/BitmapToRegion/g' \ - -e 's/RECTS_TO_REGION *([^,]*, */RegionFromRects(/g' \ - -e 's/REGION_BREAK *([^,]*, */RegionBreak(/g' \ - -e 's/REGION_INIT *([^,]*, */RegionInit(/g' \ - -e 's/REGION_UNINIT *([^,]*, */RegionUninit(/g' \ - -e 's/REGION_RESET *([^,]*, */RegionReset(/g' \ - -e 's/REGION_NOTEMPTY *([^,]*, */RegionNotEmpty(/g' \ - -e 's/REGION_BROKEN *([^,]*, */RegionBroken(/g' \ - -e 's/REGION_EMPTY *([^,]*, */RegionEmpty(/g' \ - -e 's/REGION_EXTENTS *([^,]*, */RegionExtents(/g' \ - -e 's/REGION_NULL *([^,]*, */RegionNull(/g' \ - -e 's/REGION_NULL$/RegionNull/g' \ - "$@" diff --git a/XServer/jni/application/xserver/xserver/hw/kdrive/Xkdrive.man b/XServer/jni/application/xserver/xserver/hw/kdrive/Xkdrive.man deleted file mode 100644 index b37f9f1..0000000 --- a/XServer/jni/application/xserver/xserver/hw/kdrive/Xkdrive.man +++ /dev/null @@ -1,57 +0,0 @@ -.\" $RCSId: xc/programs/Xserver/hw/kdrive/Xkdrive.man,v 1.3 2001/01/24 00:06:10 dawes Exp $ -.\" -.TH Xkdrive 1 __vendorversion__ -.SH NAME -Xkdrive \- tiny X server -.SH SYNOPSIS -.B Xvesa -.RI [ :display ] -.RI [ option ...] - -.B Xfbdev -.RI [ :display ] -.RI [ option ...] -.SH DESCRIPTION -.B Xkdrive -is a family of X servers designed to be particularly small. This -manual page describes the common functionality of the -.B Xkdrive -servers; for information on a specific X server, please refer to the -relevant manual page. -.SH OPTIONS -In addition to the standard options accepted by all X servers (see -Xserver(1)), all the -.B Xkdrive -servers accept the following options: -.TP 8 -.B -card \fIpcmcia\fP -use pcmcia card as additional screen. -.TP 8 -.B -dumb -disable hardware acceleration. -.TP 8 -.B -origin \fIX\fP,\fIY\fP -Locates the next screen in the Xinerama virtual screen. -.TP 8 -.B -screen \fIwidth\fBx\fIheight\fR[\fBx\fIdepth\fR[\fBx\fIfreq\fR]]\fR[\fB@\fIrotation\fR]\fB -use a screen of the specified \fIwidth\fP, \fIheight\fP, screen \fIdepth\fP, \fIfrequency\fP, and \fIrotation\fP (0, 90, 180 and 270 are legal values). -.TP 8 -.B -softCursor -disable the hardware cursor. -.TP 8 -.B -videoTest -start the server, pause momentarily, and exit. -.TP 8 -.B -zaphod -disable switching screens by moving the pointer across a screen boundary. -.TP 8 -.B -2button -enable emulation of a middle mouse button by chording. -.TP 8 -.B -3button -disable emulation of a middle mouse button by chording. -.SH SEE ALSO -X(__miscmansuffix__), Xserver(1), xdm(1), xinit(1), Xvesa(1), Xfbdev(1). -.SH AUTHORS -The Xkdrive common core was written by Keith Packard, -and is based on the Sample Implementation of X. diff --git a/XServer/jni/application/xserver/xserver/mi/mibstore.c b/XServer/jni/application/xserver/xserver/mi/mibstore.c deleted file mode 100644 index 3748e1f..0000000 --- a/XServer/jni/application/xserver/xserver/mi/mibstore.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2007 Red Hat, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -#ifdef HAVE_DIX_CONFIG_H -#include -#endif -#include "scrnintstr.h" -#include "mibstore.h" - -/* - * There is no longer an mi implementation of backing store. This function - * is only for source compatibility with old drivers. - * - * Note though that you do get backing store for free if your server has - * Composite enabled, since the automatic redirection mechanism provides - * essentially the same functionality. See compChangeWindowAttributes() - * for the implementation. - */ - -//void -//miInitializeBackingStore (ScreenPtr pScreen) -//{ -//} diff --git a/XServer/jni/application/xserver/xserver/xkb/XKM_file_format.txt b/XServer/jni/application/xserver/xserver/xkb/XKM_file_format.txt deleted file mode 100644 index 0ba28ee..0000000 --- a/XServer/jni/application/xserver/xserver/xkb/XKM_file_format.txt +++ /dev/null @@ -1,684 +0,0 @@ - XKM File Format Description - Version 15 - -1. Introduction - -The XKM file format is the exchange format for XKB keyboard descriptions -between the server and xkbcomp. Usually, the server forks off xkbcomp, -xkbcomp compiles the XKM format from the given parameters. -The resulting XKM file is put into a directory readable by the server and -then parsed. - -The XKM format is little more than a binary dump of various XKB-specific -structures and hence tied to the ABI of the server. - - ❧❧❧❧❧❧❧❧❧❧❧ - -1.1 About this file format description - -This description was produced by analyzing the XKM parsing code. Parts of -the file description present in the original format specification may be -missing. This description thus cannot be a reference document for XKM -implementations. - -No description of the meaning of the various fields is given here. Refer to -the XKB protocol specification for more details. - ❧❧❧❧❧❧❧❧❧❧❧ - -2. Notations used in this document - -Notation for structures: - -┌─── - Name of struct - name of field: type or fixed value of field - name of field: type or fixed value of field -└─── - -Data types are identical to those used in the X Protocol specification -except where noted otherwise. Structs specific to XKM are prefixed with XKM, -defines specific to the XKB protocol specification are prefixed with Xkb and -their value is equivalent to that in the protocol specification. - -Multiple instances of a given type are denoted in the following form: - name of field: LISTofFIELDTYPE - -Length specifiers for such fields are usually prefixed with num_. For -example, a struct containing a num_foo of 8 and a 'foo' field contains 8 -structures of type 'foo'. - -Variable length padding is specified as pad(x), where x is the length of the -data to be padded out to a multiple of 4 bytes. For example, given an x of -10, pad(x) would be the remaining 2 bytes to pad the whole struct to 12 -bytes. - -A special notation is a variable content struct. In this case, the contents -of the struct depend on the value of one or more specific fields. -┌─── - Name of struct - field: type or fixed value of field - field: type or fixed value of field - ─── - field ⇒ value 1 - ⇒ - specific field: type - specific field: type - ─── - field ⇒ value 2 - ⇒ - specific field: type - specific field: type -└─── -This notation denotes that if field is of value 1, this struct contains the -specific fields listed underneath value 1. - - ❧❧❧❧❧❧❧❧❧❧❧ - -3. XKM Format - -The XKM format is a binary format with structs usually being padded to a -multiple of 4 bytes. No provisions for endianess are provided, the parser is -left to guess the endianess of the XKM file. - - ❧❧❧❧❧❧❧❧❧❧❧ -3.1 Common data types - -┌─── - XKMCountedString - count: CARD16 - string: count * CHAR - pad: pad(count + 2) -└─── - -XKMCountedString is used for user-readable identifiers. Prime example are -the level names and the section names ("complete", "evdev(inet)", etc.) - -┌─── - XKMGroupBits: CARD8 - group1 0x1 - group2 0x2 - group3 0x4 - group4 0x8 -└─── - - ❧❧❧❧❧❧❧❧❧❧❧ - -3.2 Header and Table of Contents - -┌─── - XKMHeader - version: CARD8 - identifier1: 'm' - identifier2: 'k' - idenfifier3: 'x' -└─── - -The XKM file format has a 4 byte header identifying the file and the XKM -version. The header is followed by the table of contents indicating the -sections present in this file. - -┌─── - XKMFileInfo - type: CARD8 - min_keycode: CARD8 - max_keycode: CARD8 - num_sectioninfo: CARD8 - present: CARD16 - pad: CARD16 - sectioninfo: LISTofXKMSectionInfo -└─── - -min_keycode and max_keycode specify the keycode range for this keyboard -descriptions. The core protocol requires min_keycode always be equal to or -greater than 8. - -┌─── - XKMSectionInfo - type: CARD16 - XkmTypesIndex 0 - XkmCompatMapIndex 1 - XkmSymbolsIndex 2 - XkmIndicatorsIndex 3 - XkmKeyNamesIndex 4 - XkmGeometryIndex 5 - XkmVirtualModsIndex 6 - format: CARD16 - size: CARD16 - offset: CARD16 -└─── - -Describes the section found in a chunk of a file. This struct is found -_twice_ in the file per section, once as part of the XKMFileInfo, once at -the beginning of the actual section (see offset). -The type specifies the type of the section, the section is to be parsed -according to this type. -Size and offset specify the size in bytes and the offset into the file in -bytes, respectively. - -3.3 Sections - -Each section resides at the offset specified in the XKMFileInfo sectioninfo. - - ❧❧❧❧❧❧❧❧❧❧❧ - -3.3.1 XKMTypes - -An XKMTypes section describes the key types defined in a layout. Roughly -speaking, a key type defines how many levels a given key has and which -modifiers change to a particular level. - -┌─── - XKMTypesSection - section_info: XKMSectionInfo - name: XKMCountedString - num_types: CARD16 - pad: CARD16 - types: LISTofXKMKeyType -└─── - -┌─── - XKMKeyType - real_mods: CARD8 - num_levels: CARD8 - virt_mods: CARD16 - num_map_entries: CARD8 - num_level_names: CARD8 - perserve: CARD8 - pad: CARD8 - map_entries: LISTofXKMKTMapEntry - name: XKMCountedString - mods: LISTofXKMModsDesc - level_names: LISXTofXKMCountedString -└─── - -The num_map_entries specifies the number of structs in both map_entries and mods. mods is only present if preserve is TRUE. - -┌─── - XKMKTMapEntry - level: CARD8 - real_mods: CARD8 - virt_mods: CARD16 -└─── - -┌─── - XKMModsDesc - real_mods: CARD8 - pad: CARD8 - virt_mods: CARD16 -└─── - - ❧❧❧❧❧❧❧❧❧❧❧ -3.3.2 XKMCompatMap - -An XKMCompatMap section describes the actions a keyboard may trigger. This -ranges from the TerminateServer action to simple modifier bits. - -┌─── - XKMCompatMap - section_info: XKMSectionInfo - name: XKMCountedString - num_si: CARD16 - group_mask: XKMGroupBits - pad: CARD8 - si: LISTofXKMSymInterpreterDesc - groups: LISTofXKMModsDesc -└─── - -One XKMModsDesc is present for each bit set in group_mask. - -┌─── - XKMSymInterpretDesc - sym: CARD32 - mods: CARD8 - match: CARD8 - virtual_mod: CARD8 - flags: CARD8 - action_type: CARD8 - action_data: XKMActionData -└─── - -Where the action is 7 bytes of CARD8 whose content is determined by -action_type. - -┌─── - XKMActionData: - pad0: CARD8 - pad1: CARD16 - pad2: CARD32 - ─── - action_type ⇒ XkbSA_SetMods || - action_type ⇒ XkbSA_LatchMods || - action_type ⇒ XkbSA_LockMods - ⇒ - flags: CARD8 - mask: CARD8 - real_mods: CARD8 - vmods1: CARD8 - vmods2: CARD8 - pad: CARD16 - ─── - action_type ⇒ XkbSA_SetGroup || - action_type ⇒ XkbSA_LatchGroup || - action_type ⇒ XkbSA_LockGroup - ⇒ - flags: CARD8 - group_XXX: CARD8 - pad0: CARD8 - pad1: CARD32 - ─── - action_type ⇒ XkbSA_MovePtr - ⇒ - flags: CARD8 - high_XXX: CARD8 - low_XXX: CARD8 - high_YYY: CARD8 - low_YYY: CARD8 - pad: CARD16 - ─── - action_type ⇒ XkbSA_PtrBtn || - action_type ⇒ XkbSA_LockPtrBtn - ⇒ - flags: CARD8 - count: CARD8 - button: CARD8 - pad: CARD32 - ─── - action_type ⇒ XkbSA_DeviceBtn || - action_type ⇒ XkbSA_LockLockPtrBtn - ⇒ - flags: CARD8 - count: CARD8 - button: CARD8 - device: CARD8 - pad0: CARD8 - pad1: CARD16 - ─── - action_type ⇒ XkbSA_SetPtrDflt - ⇒ - flags: CARD8 - affect: CARD8 - valueXXX: CARD8 - pad0: CARD32 - ─── - action_type ⇒ XkbSA_ISOLock - ⇒ - flags: CARD8 - mask: CARD8 - real_mods: CARD8 - group_XXX: CARD8 - affect: CARD8 - vmods1: CARD8 - vmods1: CARD8 - ─── - action_type ⇒ XkbSA_SwitchScreen - ⇒ - flags: CARD8 - screenXXX: CARD8 - pad0: CARD8 - pad1: CARD32 - ─── - action_type ⇒ XkbSA_SetControls || - action_type ⇒ XkbSA_LockControls - ⇒ - flags: CARD8 - ctrls3: CARD8 - ctrls2: CARD8 - ctrls1: CARD8 - ctrls0: CARD8 - pad: CARD16 - ─── - action_type ⇒ XkbSA_RedirectKey - ⇒ - new_key: CARD8 - mods_mask: CARD8 - mods: CARD8 - vmods_mask0: CARD8 - vmods_mask1: CARD8 - vmods0: CARD8 - vmods1: CARD8 - ─── - action_type ⇒ XkbSA_DeviceValuator - ⇒ - device: CARD8 - v1_what: CARD8 - v1_idx: CARD8 - v1_value: CARD8 - v2_what: CARD8 - v2_idx: CARD8 - v2_value: CARD8 - pad: CARD8 - ─── - action_type ⇒ XkbSA_XFree86Private || - action_type ⇒ XkbSA_Terminate - ⇒ - pad0: CARD8 - pad1: CARD16 - pad2: CARD32 - ─── - action_type ⇒ XkbSA_ActionMessage - ⇒ - press_msg: BOOL - release_msg: BOOL - gen_event: BOOL - message: 4 * CHAR -└─── - -Note: XkbSA_ActionMessage is currently unsupported and the contents are -ignored. - - ❧❧❧❧❧❧❧❧❧❧❧ -3.3.3 XkmSymbols - -The symbols in a keymap define the actual keysyms each key may produce. - -┌─── - XKMSymbols - section_info: XKMSectionInfo - name: XKMCountedString - min_keycode: CARD8 - max_keycode: CARD8 - group_names_mask: XKMGroupBits - num_vmod_maps: CARD8 - group_names: LISTofXKMCountedString - keysyms: XKMKeysymMapDesc - vmod_maps: XKMVModMapDesc -└─── -One group_name is present for each bit set in group_names_mask. -The number of keysyms present is max_keycode - min_keycode + 1. - -┌─── - XKMKeysymMapDesc - width: CARD8 - num_groups: CARD8 - modifier_map: CARD8 - flags: CARD8 - names: LISTofXKMCountedString - syms: LISTofCARD32 - behavior: XKMBehaviorDesc -└─── - -Presence of names is conditional on the XkmKeyHasTypes flag. The number of -strings is equal to the number of group bits in group_names_mask in the -preceeding XKMSymbols section. -The number of elements in syms is equal to width * num_groups. -Presence of behavior is conditional on the XkmKeyHasBehavior flag. - -┌─── - XKMKeyBehaviorDesc - type: CARD8 - data: CARD8 - pad: CARD16 -└─── - -┌─── - XKMVModMapDesc - key: CARD8 - pad: CARD8 - vmods: CARD16 -└─── - - ❧❧❧❧❧❧❧❧❧❧❧ - -3.3.4 XKMIndicators - -┌─── - XKMIndicators - section_info: XKMSectionInfo - name: XKMCountedString - num_indicators: CARD8 - pad0: CARD8 - pad1: CARD16 - indicators: LISTofXKMIndicatorMapDesc -└─── - -┌─── - XKMIndicatorMapDesc - name: XKMCountedString - indicator: CARD8 - flags: CARD8 - which_mods: CARD8 - real_mods: CARD8 - vmods: CARD16 - which_groups: CARD8 - groups: CARD8 - ctrls: CARD32 -└─── - ❧❧❧❧❧❧❧❧❧❧❧ - -3.3.5 XKMKeyNames - -┌─── - XKMKeyNames - section_info: XKMSectionInfo - name: XKMCountedString - min_keycode: CARD8 - max_keycode: CARD8 - num_aliases: CARD8 - pad: CARD8 - keynames: LISTofXKMKeyname - aliases: LISTofXKMKeyAlias -└─── - -keynames contains max_keycode - min_keycode + 1 entries. - -┌─── - XkmKeyname - name: 4 * CHAR8 -└─── - -┌─── - XkmKeyAlias - real: XkmKeyname - alias: XkmKeyname -└─── - - ❧❧❧❧❧❧❧❧❧❧❧ - -3.3.5 XKMGeometry - -┌─── - XKMGeometry - section_info: XKMSectionInfo - name: XKMCountedString - width_mm: CARD16 - height_mm: CARD16 - base_color_ndx: CARD8 - label_color_ndx: CARD8 - num_properties: CARD16 - num_colors: CARD16 - num_shapes: CARD16 - num_sections: CARD16 - num_doodads: CARD16 - num_key_aliases: CARD16 - pad: CARD16 - label_font: XKMCountedString - properties: LISTofXKMGeomProperty - colors: LISTofXKMCountedString - shapes: LISTofXKMGeomShape - sections: LISTofXKMGeomSection - doodads: LISTofXKMGeomDoodad - key_aliases: LISTofXKMKeyAlias -└─── - -┌─── - XKMGeomProperty - name: XKMCountedString - value: XKMCountedString - -└─── - -┌─── - XKMGeomShape - name: XKMCountedString - num_outlines: CARD8 - primary_idx: CARD8 - approx_idx: CARD8 - pad: CARD8 - outlines: LISTofXKMOutlineDesc -└─── - -┌─── - XKMOutlineDesc - num_points: CARD8 - corner_radius: CARD8 - pad: CARD16 - points: LISTofXKMPointDesc -└─── - -┌─── - XKMPointDesc - x: INT16 - y: INT16 -└─── - -┌─── - XKMGeomSection - name: XKMCountedString - top: INT16 - left: INT16 - width: CARD16 - height: CARD16 - angle: INT16 - priority: CARD8 - num_rows: CARD8 - num_doodads: CARD8 - num_overlays: CARD8 - pad: CARD16 - rows: LISTofXKMRowDesc - doodads: LISTofXKMGeomDoodad - overlays: LISTofXKMGeomOverlay -└─── - -┌─── - XKMRowDesc - top: INT16 - left: INT16 - num_keys: CARD8 - vertical: BOOL - pad: CARD16 - keys: XKMKeyDesc -└─── - -┌─── - XKMKeyDesc - name: XKMKeyname - gap: INT16 - shape_idx: CARD8 - color_idx: CARD8 -└─── - -┌─── - XKMGeomDoodad - name: XKMCountedString - type: CARD8 - priority: CARD8 - top: INT16 - left: INT16 - pad1: CARD16 - pad2: CARD32 - pad3: CARD32 - ─── - type ⇒ XkbOutlineDoodad || - type ⇒ XkbSolideDoodad - ⇒ - type: CARD8 - priority: CARD8 - top: INT16 - left: INT16 - angle: INT16 - color_idx: CARD8 - shape_idx: CARD8 - pad0: CARD16 - pad1: CARD32 - ─── - type ⇒ XkbTextDoodad - ⇒ - type: CARD8 - priority: CARD8 - top: INT16 - left: INT16 - angle: INT16 - width: CARD16 - height: CARD16 - color_idx: CARD8 - pad0: CARD8 - pad1: CARD16 - text: XKMCountedString - font: XKMCountedString - ─── - type ⇒ XkbIndicatorDoodad - ⇒ - type: CARD8 - priority: CARD8 - top: INT16 - left: INT16 - shape_idx: CARD8 - on_color_idx: CARD8 - off_color_idx: CARD8 - pad0: CARD8 - pad1: CARD16 - pad2: CARD32 - ─── - type ⇒ XkbLogoDoodad - ⇒ - type: CARD8 - priority: CARD8 - top: INT16 - left: INT16 - angle: INT16 - color_idx: CARD8 - shape_idx: CARD8 - pad0: CARD16 - pad1: CARD32 - logo_name: XKMCountedString -└─── - -WARNING: XKMGeomDoodad has variable length depending on the type. -NOTE: The current server implementation does not use all fields of all -structures. - -┌─── - XKMOverlayDesc - name: XKMCountedString - num_rows: CARD8 - pad0: CARD8 - pad1: CARD16 - rows: LISTofXKMOverlayRowDesc -└─── - -┌─── - XKMOverlayRowDesc - name: XKMCountedString - row_under: CARD8 - num_keys: CARD8 - pad: CARD16 - keys: LISTofXKMOverlayKeyDesc -└─── - -┌─── - XKMOverlayKeyDesc - over: XKMKeyname - under: XKMKeyname -└─── - - ❧❧❧❧❧❧❧❧❧❧❧ - -3.3.6 XKMVirtualMods - -┌─── - XKMOverlayRowDesc - section_info: XKMSectionInfo - name: XKMCountedString - bound_mask: SETofVMODBITS - named_mask: SETofVMODBITS - vmods: LISTofCARD8 - pad: pad(vmods) - names: LISTofXKMCountedString -└─── - - VMODBITS: CARD16 - -Number of elements in vmods is equal to the number of bits set in -bound_mask. The padding completes vmods to a multiple of 4 byte units. -Number of elements in names is equal to the number of bits set in -named_mask.