diff options
author | Sergey Udaltsov <svu@gnome.org> | 2005-01-08 00:00:40 +0000 |
---|---|---|
committer | Sergey Udaltsov <svu@gnome.org> | 2005-01-08 00:00:40 +0000 |
commit | 46b857188be32ad483211b36635779a0241c45ef (patch) | |
tree | 255b509274bbabf941d83148ce86992cb1496235 /libxklavier/xklavier.c | |
parent | 8b45c4aa4725b28ee4be1c2310874d1620690e71 (diff) | |
download | libxklavier-46b857188be32ad483211b36635779a0241c45ef.tar.gz |
optimizations/fixes
Diffstat (limited to 'libxklavier/xklavier.c')
-rw-r--r-- | libxklavier/xklavier.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libxklavier/xklavier.c b/libxklavier/xklavier.c index 14183c9..6422846 100644 --- a/libxklavier/xklavier.c +++ b/libxklavier/xklavier.c @@ -790,9 +790,14 @@ int XklGetBackendFeatures( void ) void _XklResetAllInfo( const char reason[] ) { - XklDebug( 150, "Resetting all the info, reason: [%s]\n", reason ); - _XklFreeAllInfo(); - _XklLoadAllInfo(); + XklDebug( 150, "Resetting all the cached info, reason: [%s]\n", reason ); + _XklEnsureVTableInited(); + if( !(*xklVTable->xklIfCachedInfoEqualsActualHandler)() ) + { + (*xklVTable->xklFreeAllInfoHandler)(); + (*xklVTable->xklLoadAllInfoHandler)(); + } else + XklDebug( 100, "NOT Resetting the cache: same configuration\n" ); } /** |