summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Udaltsov <svu@gnome.org>2005-01-07 03:43:56 +0000
committerSergey Udaltsov <svu@gnome.org>2005-01-07 03:43:56 +0000
commit8b45c4aa4725b28ee4be1c2310874d1620690e71 (patch)
tree8de7c1cb2acdd1461180be6f4e81634adfffdd01
parent9eaa42fea181166273599413bf926923029dcc06 (diff)
downloadlibxklavier-8b45c4aa4725b28ee4be1c2310874d1620690e71.tar.gz
a bit of polish - but, the configuration events still need a bit of thought...
-rw-r--r--libxklavier/xklavier.c7
-rw-r--r--libxklavier/xklavier_evt.c6
-rw-r--r--libxklavier/xklavier_evt_xkb.c7
-rw-r--r--libxklavier/xklavier_evt_xmm.c3
-rw-r--r--libxklavier/xklavier_private.h1
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 );