diff options
author | Sergey Udaltsov <svu@gnome.org> | 2004-11-25 23:17:30 +0000 |
---|---|---|
committer | Sergey Udaltsov <svu@gnome.org> | 2004-11-25 23:17:30 +0000 |
commit | d431ef4a3ca6228954ddb21e2e4a88f0cf9e8624 (patch) | |
tree | bf8eb5bf48f308bfe325e1d7dcffa89bdfb9245e /libxklavier/xklavier_config_xmm.c | |
parent | d5c0ab08dad47f5a9d1c17eb18f80aceca5843b9 (diff) | |
download | libxklavier-d431ef4a3ca6228954ddb21e2e4a88f0cf9e8624.tar.gz |
first commit with xmodmap support
Diffstat (limited to 'libxklavier/xklavier_config_xmm.c')
-rw-r--r-- | libxklavier/xklavier_config_xmm.c | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/libxklavier/xklavier_config_xmm.c b/libxklavier/xklavier_config_xmm.c index b8b696f..abceec0 100644 --- a/libxklavier/xklavier_config_xmm.c +++ b/libxklavier/xklavier_config_xmm.c @@ -25,23 +25,31 @@ void _XklXmmConfigInit( void ) Bool _XklXmmConfigLoadRegistry( void ) { - return False; -} + struct stat statBuf; + char fileName[MAXPATHLEN] = ""; + char* rf = _XklGetRulesSetName( "" ); -// check only client side support -Bool _XklXmmConfigMultipleLayoutsSupported( void ) -{ - return False; -} + if ( rf == NULL || rf[0] == '\0' ) + return False; -Bool _XklXmmConfigActivate( const XklConfigRecPtr data ) -{ - return False; + snprintf( fileName, sizeof fileName, XMODMAP_BASE "/%s.xml", rf ); + + if( stat( fileName, &statBuf ) != 0 ) + { + _xklLastErrorMsg = "No rules file found"; + return False; + } + + return XklConfigLoadRegistryFromFile( fileName ); } -Bool _XklXmmConfigWriteFile( const char *fileName, - const XklConfigRecPtr data, - const Bool binary ) +Bool _XklXmmConfigActivate( const XklConfigRecPtr data ) { - return False; + Bool rv; + rv = XklSetNamesProp( xklVTable->baseConfigAtom, + currentXmmRules, + data ); + if( rv ) + _XklXmmLockGroup( 0 ); + return rv; } |