diff options
author | Sergey Udaltsov <svu@gnome.org> | 2005-01-07 03:43:56 +0000 |
---|---|---|
committer | Sergey Udaltsov <svu@gnome.org> | 2005-01-07 03:43:56 +0000 |
commit | 8b45c4aa4725b28ee4be1c2310874d1620690e71 (patch) | |
tree | 8de7c1cb2acdd1461180be6f4e81634adfffdd01 | |
parent | 9eaa42fea181166273599413bf926923029dcc06 (diff) | |
download | libxklavier-8b45c4aa4725b28ee4be1c2310874d1620690e71.tar.gz |
a bit of polish - but, the configuration events still need a bit of thought...
-rw-r--r-- | libxklavier/xklavier.c | 7 | ||||
-rw-r--r-- | libxklavier/xklavier_evt.c | 6 | ||||
-rw-r--r-- | libxklavier/xklavier_evt_xkb.c | 7 | ||||
-rw-r--r-- | libxklavier/xklavier_evt_xmm.c | 3 | ||||
-rw-r--r-- | libxklavier/xklavier_private.h | 1 |
5 files changed, 16 insertions, 8 deletions
diff --git a/libxklavier/xklavier.c b/libxklavier/xklavier.c index fd03a41..14183c9 100644 --- a/libxklavier/xklavier.c +++ b/libxklavier/xklavier.c @@ -788,6 +788,13 @@ int XklGetBackendFeatures( void ) return xklVTable->features; } +void _XklResetAllInfo( const char reason[] ) +{ + XklDebug( 150, "Resetting all the info, reason: [%s]\n", reason ); + _XklFreeAllInfo(); + _XklLoadAllInfo(); +} + /** * Calling through vtable */ diff --git a/libxklavier/xklavier_evt.c b/libxklavier/xklavier_evt.c index e0188e6..438020c 100644 --- a/libxklavier/xklavier_evt.c +++ b/libxklavier/xklavier_evt.c @@ -40,8 +40,7 @@ int XklFilterEvents( XEvent * xev ) break; case MappingNotify: XklDebug( 200, "%s\n", _XklGetEventName( xev->type ) ); - _XklFreeAllInfo( ); - _XklLoadAllInfo( ); + _XklResetAllInfo( "X event: MappingNotify" ); break; case GravityNotify: XklDebug( 200, "%s\n", _XklGetEventName( xev->type ) ); @@ -300,8 +299,7 @@ void _XklPropertyEvHandler( XPropertyEvent * pev ) XklDebug( 160, "New value of *_NAMES_PROP_ATOM on root window\n" ); /* If root window got new *_NAMES_PROP_ATOM - it most probably means new keyboard config is loaded by somebody */ - _XklFreeAllInfo( ); - _XklLoadAllInfo( ); + _XklResetAllInfo( "New value of *_NAMES_PROP_ATOM on root window" ); } } } /* XKLL_MANAGE_WINDOW_STATES */ diff --git a/libxklavier/xklavier_evt_xkb.c b/libxklavier/xklavier_evt_xkb.c index 87142b8..1cc0292 100644 --- a/libxklavier/xklavier_evt_xkb.c +++ b/libxklavier/xklavier_evt_xkb.c @@ -89,11 +89,14 @@ int _XklXkbEventHandler( XEvent *xev ) case XkbIndicatorMapNotify: case XkbControlsNotify: case XkbNamesNotify: + /* not really fair - but still better than flooding... */ + XklDebug( 200, "warning: configuration event %s is not actually processed\n", + _XklXkbGetXkbEventName( kev->any.xkb_type ) ); + break; case XkbNewKeyboardNotify: XklDebug( 150, "%s\n", _XklXkbGetXkbEventName( kev->any.xkb_type ) ); - _XklFreeAllInfo(); - _XklLoadAllInfo(); + _XklResetAllInfo( "XKB event: XkbNewKeyboardNotify" ); break; /** diff --git a/libxklavier/xklavier_evt_xmm.c b/libxklavier/xklavier_evt_xmm.c index f2e3a4a..7574f3e 100644 --- a/libxklavier/xklavier_evt_xmm.c +++ b/libxklavier/xklavier_evt_xmm.c @@ -75,8 +75,7 @@ static int _XklXmmPropertyEventHandler( XPropertyEvent* kpe ) */ if( kpe->atom == xklVTable->baseConfigAtom ) { - _XklFreeAllInfo(); - _XklLoadAllInfo(); + _XklResetAllInfo( "base config atom changed" ); } return 0; diff --git a/libxklavier/xklavier_private.h b/libxklavier/xklavier_private.h index 8841e6e..2b92d3f 100644 --- a/libxklavier/xklavier_private.h +++ b/libxklavier/xklavier_private.h @@ -199,6 +199,7 @@ extern void _XklErrHandler( Display * dpy, XErrorEvent * evt ); extern Window _XklGetRegisteredParent( Window win ); extern Bool _XklLoadAllInfo( void ); extern void _XklFreeAllInfo( void ); +extern void _XklResetAllInfo( const char reason[] ); extern Bool _XklLoadWindowTree( void ); extern Bool _XklLoadSubtree( Window window, int level, XklState * initState ); |