Index: i18n_xkb.cxx =================================================================== RCS file: /cvs/gsl/vcl/unx/source/app/i18n_xkb.cxx,v retrieving revision 1.2 diff -u -r1.2 i18n_xkb.cxx --- i18n_xkb.cxx 19 Dec 2000 00:25:06 -0000 1.2 +++ i18n_xkb.cxx 14 Dec 2002 09:14:40 -0000 @@ -62,7 +62,7 @@ #include -#if defined(LINUX) || defined(FREEBSD) // should really check for xfree86 or for X11R6.1 and higher +#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX) // should really check for xfree86 or for X11R6.1 and higher #define __XKeyboardExtension__ 1 #else #define __XKeyboardExtension__ 0 Index: keysymnames.cxx =================================================================== RCS file: /cvs/gsl/vcl/unx/source/app/keysymnames.cxx,v retrieving revision 1.6 diff -u -r1.6 keysymnames.cxx --- keysymnames.cxx 1 Nov 2001 14:08:06 -0000 1.6 +++ keysymnames.cxx 14 Dec 2002 09:14:40 -0000 @@ -608,17 +608,29 @@ { XkbDescPtr pXkbDesc = NULL; // try X keyboard extension + #ifdef MACOSX + // FIXME + // XDarwin doesn't yet have very good support for the Xkeyboard extension. + // When we call XkbGetKeyboard(), the XServer throws a message up in the + // console about xkbcomp and files for geometry include. The side effect of + // this is _very_ noticable lag when drawing menus. The file menu, for example, + // takes about 1s to come down on my G4/450 DP and you can see it draw. Therefore + // we are disabling it for the moment until better XDarwin support exists. + // It is so ordered. + if ( 0 ) + #else if( pXkbDesc = XkbGetKeyboard( GetDisplay(), XkbAllComponentsMask, XkbUseCoreKbd ) ) + #endif { - const char* pAtom = NULL; - if( pXkbDesc->names->groups[0] ) - { - pAtom = XGetAtomName( GetDisplay(), pXkbDesc->names->groups[0] ); - m_aKeyboardName = pAtom; - XFree( (void*)pAtom ); - } - else - m_aKeyboardName = ""; + const char* pAtom = NULL; + if( pXkbDesc->names->groups[0] ) + { + pAtom = XGetAtomName( GetDisplay(), pXkbDesc->names->groups[0] ); + m_aKeyboardName = pAtom; + XFree( (void*)pAtom ); + } + else + m_aKeyboardName = ""; #ifdef DEBUG #define PRINT_ATOM( x ) { if( pXkbDesc->names->x ) { pAtom = XGetAtomName( GetDisplay(), pXkbDesc->names->x ); fprintf( stderr, "%s: %s\n", #x, pAtom ); XFree( (void*)pAtom ); } else fprintf( stderr, "%s: \n", #x ); }