diff options
author | marha <marha@users.sourceforge.net> | 2012-11-19 11:21:45 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-11-19 11:21:45 +0100 |
commit | 57b3e446b9b4017ccfdd3227be481df590740426 (patch) | |
tree | 0e4899f530f75d343c090202fc7123c78f9b4866 /xorg-server/hw/xfree86/os-support/linux | |
parent | 24635abae6008bef13e30d798b3f33abab412770 (diff) | |
parent | b3e1e62c45f525cdd332073aaa34d8452cb23374 (diff) | |
download | vcxsrv-57b3e446b9b4017ccfdd3227be481df590740426.tar.gz vcxsrv-57b3e446b9b4017ccfdd3227be481df590740426.tar.bz2 vcxsrv-57b3e446b9b4017ccfdd3227be481df590740426.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
git update 19 nov 2012
Added bash script to update released branch
Conflicts:
mesalib/src/mapi/glapi/gen/gl_API.xml
mesalib/src/mesa/program/.gitignore
pixman/pixman/pixman-mmx.c
xorg-server/Xi/xiquerypointer.c
xorg-server/xkb/xkb.c
Diffstat (limited to 'xorg-server/hw/xfree86/os-support/linux')
-rw-r--r-- | xorg-server/hw/xfree86/os-support/linux/lnx_init.c | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/xorg-server/hw/xfree86/os-support/linux/lnx_init.c b/xorg-server/hw/xfree86/os-support/linux/lnx_init.c index 68c296b0f..bcb039f3f 100644 --- a/xorg-server/hw/xfree86/os-support/linux/lnx_init.c +++ b/xorg-server/hw/xfree86/os-support/linux/lnx_init.c @@ -38,6 +38,14 @@ #include <sys/stat.h> +#ifndef K_OFF +#define K_OFF 0x4 +#endif + +#ifndef KDSKBMUTE +#define KDSKBMUTE 0x4B51 +#endif + static Bool KeepTty = FALSE; static int activeVT = -1; @@ -213,19 +221,23 @@ xf86OpenConsole(void) tcgetattr(xf86Info.consoleFd, &tty_attr); SYSCALL(ioctl(xf86Info.consoleFd, KDGKBMODE, &tty_mode)); -#ifdef K_OFF - /* disable kernel special keys and buffering */ - SYSCALL(ret = ioctl(xf86Info.consoleFd, KDSKBMODE, K_OFF)); + /* disable kernel special keys and buffering, new style */ + SYSCALL(ret = ioctl(xf86Info.consoleFd, KDSKBMUTE, 1)); if (ret < 0) -#endif { - SYSCALL(ret = ioctl(xf86Info.consoleFd, KDSKBMODE, K_RAW)); + /* disable kernel special keys and buffering, old style */ + SYSCALL(ret = ioctl(xf86Info.consoleFd, KDSKBMODE, K_OFF)); if (ret < 0) - FatalError("xf86OpenConsole: KDSKBMODE K_RAW failed %s\n", - strerror(errno)); - - /* need to keep the buffer clean, else the kernel gets angry */ - xf86SetConsoleHandler(drain_console, NULL); + { + /* fine, just disable special keys */ + SYSCALL(ret = ioctl(xf86Info.consoleFd, KDSKBMODE, K_RAW)); + if (ret < 0) + FatalError("xf86OpenConsole: KDSKBMODE K_RAW failed %s\n", + strerror(errno)); + + /* ... and drain events, else the kernel gets angry */ + xf86SetConsoleHandler(drain_console, NULL); + } } nTty = tty_attr; @@ -271,6 +283,7 @@ xf86CloseConsole(void) xf86Msg(X_WARNING, "xf86CloseConsole: KDSETMODE failed: %s\n", strerror(errno)); + SYSCALL(ioctl(xf86Info.consoleFd, KDSKBMUTE, 0)); SYSCALL(ioctl(xf86Info.consoleFd, KDSKBMODE, tty_mode)); tcsetattr(xf86Info.consoleFd, TCSANOW, &tty_attr); |