summaryrefslogtreecommitdiff
path: root/libxklavier/xklavier_config_xmm.c
diff options
context:
space:
mode:
authorSergey Udaltsov <svu@gnome.org>2004-11-25 23:17:30 +0000
committerSergey Udaltsov <svu@gnome.org>2004-11-25 23:17:30 +0000
commitd431ef4a3ca6228954ddb21e2e4a88f0cf9e8624 (patch)
treebf8eb5bf48f308bfe325e1d7dcffa89bdfb9245e /libxklavier/xklavier_config_xmm.c
parentd5c0ab08dad47f5a9d1c17eb18f80aceca5843b9 (diff)
downloadlibxklavier-d431ef4a3ca6228954ddb21e2e4a88f0cf9e8624.tar.gz
first commit with xmodmap support
Diffstat (limited to 'libxklavier/xklavier_config_xmm.c')
-rw-r--r--libxklavier/xklavier_config_xmm.c36
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;
}