Fix shared reqs for Xlibi18n, Xaw6 & Xmu for Solaris

Improved support for Compose and Kana Lock LED's on Sun keyboards
Add event definitions for additional keys on Sun Japanese keyboards
VUID mouse protocol support for Solaris Make default mouse message clearer
    on machines that use a default other than /dev/mouse.
This commit is contained in:
Alan Coopersmith 2004-07-28 03:57:19 +00:00
parent d374dffb20
commit 736e511824
4 changed files with 295 additions and 22 deletions

View File

@ -49,6 +49,7 @@
*/
/* $XConsortium: xf86Io.c /main/27 1996/10/19 17:58:55 kaleb $ */
/* $XdotOrg:$ */
#define NEED_EVENTS
#include "X.h"
@ -147,6 +148,10 @@ xf86KbdLeds ()
#else
if (leds & XLED4) real_leds |= LED_SCR;
#endif
#endif
#ifdef sun
/* Pass through any additional LEDs, such as Kana LED on Sun Japanese kbd */
real_leds |= (leds & 0xFFFFFFF0);
#endif
xf86SetKbdLeds(real_leds);
(void)leds;

View File

@ -23,6 +23,7 @@
*/
/* [JCH-96/01/21] Extended std reverse map to four buttons. */
/* $XdotOrg:$ */
#include "xf86.h"
#include "xf86Priv.h"
@ -41,8 +42,11 @@
#endif
#include <sys/vuid_event.h>
#include <sys/kbd.h>
#include "atKeynames.h"
extern int sun_ktype;
#ifdef XKB
extern Bool noXkbExtension;
#endif
@ -104,6 +108,11 @@ static OsTimerPtr sunTimer = NULL;
* This doesn't seem right. It probably needs to be dependent on a keyboard
* type.
*/
/* Additional Sun Japanese Keyboard Keys not defined in common/atKeynames.h */
#define KEY_Kanji 0x82
#define KEY_Execute 0x83
static unsigned char map[256] = {
#if defined(i386) || defined(__i386) || defined(__i386__)
KEY_NOTUSED, /* 0 */
@ -374,6 +383,248 @@ static unsigned char map[256] = {
/* The rest default to KEY_UNKNOWN */
};
#if defined(KB_USB)
static unsigned char usbmap[256] = {
/*
* partially taken from ../bsd/bsd_KbdMap.c
*
* added keycodes for Sun special keys (left function keys, audio control)
*/
/* 0 */ KEY_NOTUSED,
/* 1 */ KEY_NOTUSED,
/* 2 */ KEY_NOTUSED,
/* 3 */ KEY_NOTUSED,
/* 4 */ KEY_A,
/* 5 */ KEY_B,
/* 6 */ KEY_C,
/* 7 */ KEY_D,
/* 8 */ KEY_E,
/* 9 */ KEY_F,
/* 10 */ KEY_G,
/* 11 */ KEY_H,
/* 12 */ KEY_I,
/* 13 */ KEY_J,
/* 14 */ KEY_K,
/* 15 */ KEY_L,
/* 16 */ KEY_M,
/* 17 */ KEY_N,
/* 18 */ KEY_O,
/* 19 */ KEY_P,
/* 20 */ KEY_Q,
/* 21 */ KEY_R,
/* 22 */ KEY_S,
/* 23 */ KEY_T,
/* 24 */ KEY_U,
/* 25 */ KEY_V,
/* 26 */ KEY_W,
/* 27 */ KEY_X,
/* 28 */ KEY_Y,
/* 29 */ KEY_Z,
/* 30 */ KEY_1, /* 1 !*/
/* 31 */ KEY_2, /* 2 @ */
/* 32 */ KEY_3, /* 3 # */
/* 33 */ KEY_4, /* 4 $ */
/* 34 */ KEY_5, /* 5 % */
/* 35 */ KEY_6, /* 6 ^ */
/* 36 */ KEY_7, /* 7 & */
/* 37 */ KEY_8, /* 8 * */
/* 38 */ KEY_9, /* 9 ( */
/* 39 */ KEY_0, /* 0 ) */
/* 40 */ KEY_Enter, /* Return */
/* 41 */ KEY_Escape, /* Escape */
/* 42 */ KEY_BackSpace, /* Backspace Delete */
/* 43 */ KEY_Tab, /* Tab */
/* 44 */ KEY_Space, /* Space */
/* 45 */ KEY_Minus, /* - _ */
/* 46 */ KEY_Equal, /* = + */
/* 47 */ KEY_LBrace, /* [ { */
/* 48 */ KEY_RBrace, /* ] } */
/* 49 */ KEY_BSlash, /* \ | */
/* 50 */ KEY_BSlash, /* \ _ # ~ on some keyboards */
/* 51 */ KEY_SemiColon, /* ; : */
/* 52 */ KEY_Quote, /* ' " */
/* 53 */ KEY_Tilde, /* ` ~ */
/* 54 */ KEY_Comma, /* , < */
/* 55 */ KEY_Period, /* . > */
/* 56 */ KEY_Slash, /* / ? */
/* 57 */ KEY_CapsLock, /* Caps Lock */
/* 58 */ KEY_F1, /* F1 */
/* 59 */ KEY_F2, /* F2 */
/* 60 */ KEY_F3, /* F3 */
/* 61 */ KEY_F4, /* F4 */
/* 62 */ KEY_F5, /* F5 */
/* 63 */ KEY_F6, /* F6 */
/* 64 */ KEY_F7, /* F7 */
/* 65 */ KEY_F8, /* F8 */
/* 66 */ KEY_F9, /* F9 */
/* 67 */ KEY_F10, /* F10 */
/* 68 */ KEY_F11, /* F11 */
/* 69 */ KEY_F12, /* F12 */
/* 70 */ KEY_Print, /* PrintScrn SysReq */
/* 71 */ KEY_ScrollLock, /* Scroll Lock */
/* 72 */ KEY_Pause, /* Pause Break */
/* 73 */ KEY_Insert, /* Insert XXX Help on some Mac Keyboards */
/* 74 */ KEY_Home, /* Home */
/* 75 */ KEY_PgUp, /* Page Up */
/* 76 */ KEY_Delete, /* Delete */
/* 77 */ KEY_End, /* End */
/* 78 */ KEY_PgDown, /* Page Down */
/* 79 */ KEY_Right, /* Right Arrow */
/* 80 */ KEY_Left, /* Left Arrow */
/* 81 */ KEY_Down, /* Down Arrow */
/* 82 */ KEY_Up, /* Up Arrow */
/* 83 */ KEY_NumLock, /* Num Lock */
/* 84 */ KEY_KP_Divide, /* Keypad / */
/* 85 */ KEY_KP_Multiply, /* Keypad * */
/* 86 */ KEY_KP_Minus, /* Keypad - */
/* 87 */ KEY_KP_Plus, /* Keypad + */
/* 88 */ KEY_KP_Enter, /* Keypad Enter */
/* 89 */ KEY_KP_1, /* Keypad 1 End */
/* 90 */ KEY_KP_2, /* Keypad 2 Down */
/* 91 */ KEY_KP_3, /* Keypad 3 Pg Down */
/* 92 */ KEY_KP_4, /* Keypad 4 Left */
/* 93 */ KEY_KP_5, /* Keypad 5 */
/* 94 */ KEY_KP_6, /* Keypad 6 */
/* 95 */ KEY_KP_7, /* Keypad 7 Home */
/* 96 */ KEY_KP_8, /* Keypad 8 Up */
/* 97 */ KEY_KP_9, /* KEypad 9 Pg Up */
/* 98 */ KEY_KP_0, /* Keypad 0 Ins */
/* 99 */ KEY_KP_Decimal, /* Keypad . Del */
/* 100 */ KEY_Less, /* < > on some keyboards */
/* 101 */ KEY_Menu, /* Menu */
/* 102 */ KEY_Power, /* Sun: Power */
/* 103 */ KEY_KP_Equal, /* Keypad = on Mac keyboards */
/* 104 */ KEY_NOTUSED,
/* 105 */ KEY_NOTUSED,
/* 106 */ KEY_NOTUSED,
/* 107 */ KEY_NOTUSED,
/* 108 */ KEY_NOTUSED,
/* 109 */ KEY_NOTUSED,
/* 110 */ KEY_NOTUSED,
/* 111 */ KEY_NOTUSED,
/* 112 */ KEY_NOTUSED,
/* 113 */ KEY_NOTUSED,
/* 114 */ KEY_NOTUSED,
/* 115 */ KEY_NOTUSED,
/* 116 */ KEY_L7, /* Sun: Open */
/* 117 */ KEY_Help, /* Sun: Help */
/* 118 */ KEY_L3, /* Sun: Props */
/* 119 */ KEY_L5, /* Sun: Front */
/* 120 */ KEY_L1, /* Sun: Stop */
/* 121 */ KEY_L2, /* Sun: Again */
/* 122 */ KEY_L4, /* Sun: Undo */
/* 123 */ KEY_L10, /* Sun: Cut */
/* 124 */ KEY_L6, /* Sun: Copy */
/* 125 */ KEY_L8, /* Sun: Paste */
/* 126 */ KEY_L9, /* Sun: Find */
/* 127 */ KEY_Mute, /* Sun: AudioMute */
/* 128 */ KEY_AudioRaise, /* Sun: AudioRaise */
/* 129 */ KEY_AudioLower, /* Sun: AudioLower */
/* 130 */ KEY_NOTUSED,
/* 131 */ KEY_NOTUSED,
/* 132 */ KEY_NOTUSED,
/* 133 */ KEY_NOTUSED,
/* 134 */ KEY_NOTUSED,
/* 135 */ KEY_BSlash2, /* Sun Japanese Kbd: Backslash / Underscore */
/* 136 */ KEY_XFER, /* Sun Japanese Kbd: Henkan Mode */
/* 137 */ KEY_Yen, /* Sun Japanese Kbd: Yen / Brokenbar */
/* 138 */ KEY_Kanji, /* Sun Japanese Kbd: Kanji */
/* 139 */ KEY_Execute, /* Sun Japanese Kbd: Execute */
/* 140 */ KEY_NOTUSED,
/* 141 */ KEY_NOTUSED,
/* 142 */ KEY_NOTUSED,
/* 143 */ KEY_NOTUSED,
/* 144 */ KEY_NOTUSED,
/* 145 */ KEY_NOTUSED,
/* 146 */ KEY_NOTUSED,
/* 147 */ KEY_NOTUSED,
/* 148 */ KEY_NOTUSED,
/* 149 */ KEY_NOTUSED,
/* 150 */ KEY_NOTUSED,
/* 151 */ KEY_NOTUSED,
/* 152 */ KEY_NOTUSED,
/* 153 */ KEY_NOTUSED,
/* 154 */ KEY_NOTUSED,
/* 155 */ KEY_NOTUSED,
/* 156 */ KEY_NOTUSED,
/* 157 */ KEY_NOTUSED,
/* 158 */ KEY_NOTUSED,
/* 159 */ KEY_NOTUSED,
/* 160 */ KEY_NOTUSED,
/* 161 */ KEY_NOTUSED,
/* 162 */ KEY_NOTUSED,
/* 163 */ KEY_NOTUSED,
/* 164 */ KEY_NOTUSED,
/* 165 */ KEY_NOTUSED,
/* 166 */ KEY_NOTUSED,
/* 167 */ KEY_NOTUSED,
/* 168 */ KEY_NOTUSED,
/* 169 */ KEY_NOTUSED,
/* 170 */ KEY_NOTUSED,
/* 171 */ KEY_NOTUSED,
/* 172 */ KEY_NOTUSED,
/* 173 */ KEY_NOTUSED,
/* 174 */ KEY_NOTUSED,
/* 175 */ KEY_NOTUSED,
/* 176 */ KEY_NOTUSED,
/* 177 */ KEY_NOTUSED,
/* 178 */ KEY_NOTUSED,
/* 179 */ KEY_NOTUSED,
/* 180 */ KEY_NOTUSED,
/* 181 */ KEY_NOTUSED,
/* 182 */ KEY_NOTUSED,
/* 183 */ KEY_NOTUSED,
/* 184 */ KEY_NOTUSED,
/* 185 */ KEY_NOTUSED,
/* 186 */ KEY_NOTUSED,
/* 187 */ KEY_NOTUSED,
/* 188 */ KEY_NOTUSED,
/* 189 */ KEY_NOTUSED,
/* 190 */ KEY_NOTUSED,
/* 191 */ KEY_NOTUSED,
/* 192 */ KEY_NOTUSED,
/* 193 */ KEY_NOTUSED,
/* 194 */ KEY_NOTUSED,
/* 195 */ KEY_NOTUSED,
/* 196 */ KEY_NOTUSED,
/* 197 */ KEY_NOTUSED,
/* 198 */ KEY_NOTUSED,
/* 199 */ KEY_NOTUSED,
/* 200 */ KEY_NOTUSED,
/* 201 */ KEY_NOTUSED,
/* 202 */ KEY_NOTUSED,
/* 203 */ KEY_NOTUSED,
/* 204 */ KEY_NOTUSED,
/* 205 */ KEY_NOTUSED,
/* 206 */ KEY_NOTUSED,
/* 207 */ KEY_NOTUSED,
/* 208 */ KEY_NOTUSED,
/* 209 */ KEY_NOTUSED,
/* 210 */ KEY_NOTUSED,
/* 211 */ KEY_NOTUSED,
/* 212 */ KEY_NOTUSED,
/* 213 */ KEY_NOTUSED,
/* 214 */ KEY_NOTUSED,
/* 215 */ KEY_NOTUSED,
/* 216 */ KEY_NOTUSED,
/* 217 */ KEY_NOTUSED,
/* 218 */ KEY_NOTUSED,
/* 219 */ KEY_NOTUSED,
/* 220 */ KEY_NOTUSED,
/* 221 */ KEY_NOTUSED,
/* 222 */ KEY_NOTUSED,
/* 223 */ KEY_NOTUSED,
/* 224 */ KEY_LCtrl, /* Left Control */
/* 225 */ KEY_ShiftL, /* Left Shift */
/* 226 */ KEY_Alt, /* Left Alt */
/* 227 */ KEY_LMeta, /* Left Meta */
/* 228 */ KEY_RCtrl, /* Right Control */
/* 229 */ KEY_ShiftR, /* Right Shift */
/* 230 */ KEY_AltLang, /* Right Alt, AKA AltGr */
/* 231 */ KEY_RMeta, /* Right Meta */
};
#endif /* KB_USB */
/*
* sunPostKbdEvent --
* Translate the raw hardware Firm_event into an XEvent, and tell DIX
@ -404,7 +655,12 @@ sunPostKbdEvent(Firm_event *event)
* and now get some special keysequences
*/
keycode = map[event->id];
#if defined(KB_USB)
if(sun_ktype == KB_USB)
keycode = usbmap[event->id];
else
#endif
keycode = map[event->id];
if ((ModifierDown(ControlMask | AltMask)) ||
(ModifierDown(ControlMask | AltLangMask)))

View File

@ -67,6 +67,7 @@
*/
/* $XConsortium: xf86_OSlib.h /main/22 1996/10/27 11:06:31 kaleb $ */
/* $XdotOrg: $ */
/*
* This is private, and should not be included by any drivers. Drivers
@ -260,6 +261,7 @@ typedef signed long xf86ssize_t;
# define LED_CAP LED_CAPS_LOCK
# define LED_NUM LED_NUM_LOCK
# define LED_SCR LED_SCROLL_LOCK
# define LED_COMP LED_COMPOSE
# include <signal.h>

View File

@ -94,7 +94,7 @@
* Chisato Yamauchi(cyamauch@phyas.aichi-edu.ac.jp)
*/
/* $XConsortium: xf86config.c /main/21 1996/10/28 05:43:57 kaleb $ */
/* $XdotOrg: $ */
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/xf86config/xorgconfig.c,v 1.3 2004/05/16 00:03:54 alanc Exp $ */
#include <stdlib.h>
#include <stdio.h>
@ -378,7 +378,7 @@ int M_OSMOUSE, M_WSMOUSE, M_AUTO,
M_NETMOUSE_PS2, M_NETSCROLL_PS2, M_THINKINGMOUSE_PS2,
M_ACECAD, M_GLIDEPOINT, M_INTELLIMOUSE,
M_LOGITECH, M_MMHITTAB, M_MMSERIES,
M_MOUSEMAN, M_THINKINGMOUSE;
M_MOUSEMAN, M_THINKINGMOUSE, M_VUID;
struct {
char *name;
@ -404,6 +404,11 @@ struct {
{"Auto", &M_AUTO,
"Auto detect"
},
#ifdef sun
{"VUID", &M_VUID,
"Solaris VUID"
},
#endif
{"SysMouse", &M_SYSMOUSE,
"SysMouse"
},
@ -470,6 +475,14 @@ struct {
},
};
#ifdef WSCONS_SUPPORT
# define DEF_MOUSEDEV "/dev/wsmouse";
#elif defined(__FreeBSD__)
# define DEF_MOUSEDEV "/dev/sysmouse";
#else
# define DEF_MOUSEDEV "/dev/mouse";
#endif
#ifndef __UNIXOS2__
static char *mouseintro_text =
"First specify a mouse protocol type. Choose one from the following list:\n"
@ -477,13 +490,7 @@ static char *mouseintro_text =
static char *mousedev_text =
"Now give the full device name that the mouse is connected to, for example\n"
"/dev/tty00. Just pressing enter will use the default, /dev/mouse.\n"
#ifdef WSCONS_SUPPORT
"On systems with wscons, the default is /dev/wsmouse.\n"
#endif
#ifdef __FreeBSD__
"On FreeBSD, the default is /dev/sysmouse.\n"
#endif
"/dev/tty00. Just pressing enter will use the default, %s.\n"
"\n";
static char *mousecomment_text =
@ -535,6 +542,7 @@ mouse_configuration(void) {
#if !defined(__UNIXOS2__) && !defined(QNX4)
int i, j;
char s[80];
char *def_mousedev = DEF_MOUSEDEV;
#define MOUSETYPE_COUNT sizeof(mouse_info)/sizeof(mouse_info[0])
for (i = 0; i < MOUSETYPE_COUNT; i++)
@ -627,22 +635,24 @@ mouse_configuration(void) {
config_emulate3buttons = 0;
printf("\n");
printf("%s", mousedev_text);
#if (defined(sun) && defined(__i386))
/* SPARC & USB mice (VUID or AUTO protocols) default to /dev/mouse,
but PS/2 mice default to /dev/kdmouse */
if ((config_mousetype != M_AUTO) && (config_mousetype != M_VUID)) {
def_mousedev = "/dev/kdmouse";
}
#endif
printf(mousedev_text, def_mousedev);
printf("Mouse device: ");
getstring(s);
if (strlen(s) == 0)
#ifdef WSCONS_SUPPORT
config_pointerdevice = "/dev/wsmouse";
#elif defined(__FreeBSD__)
config_pointerdevice = "/dev/sysmouse";
#else
config_pointerdevice = "/dev/mouse";
#endif
else {
if (strlen(s) == 0) {
config_pointerdevice = def_mousedev;
} else {
config_pointerdevice = Malloc(strlen(s) + 1);
strcpy(config_pointerdevice, s);
}
printf("\n");
}
printf("\n");
#else /* __UNIXOS2__ */
/* set some reasonable defaults for OS/2 */