? Keyboard.kbd
? am
? ar
? automatic-scanning.xam
? az
? be
? ca
? cs
? cy
? da
? de
? direct-selection.xam
? dwell-selection.xam
? el
? es
? foo
? fr
? ga
? gok-xkb-switch-patch.diff
? gok-xkb-switching.diff
? gok-xkbswitch-patch.diff
? gok.desktop
? hi
? hr
? inverse-scanning.xam
? it
? ja
? ko
? lt
? mk
? ml
? mn
? ms
? nl
? no
? pl
? pt
? pt_BR
? singlekey-automatic-scanning.xam
? singlekey-inverse-scanning.xam
? sk
? sl
? sq
? sr
? sr@Latn
? sv
? ta
? tr
? uk
? vi
? zh_CN
? zh_TW
? docs/reference/gok-decl-list.txt
? docs/reference/gok-decl.txt
? docs/reference/gok-undocumented.txt
? docs/reference/gok-unused.txt
? docs/reference/gok.args
? docs/reference/gok.hierarchy
? docs/reference/gok.signals
? docs/reference/html
? docs/reference/html-build.stamp
? docs/reference/html.stamp
? docs/reference/scan-build.stamp
? docs/reference/sgml
? docs/reference/sgml-build.stamp
? docs/reference/sgml.stamp
? docs/reference/tmpl-build.stamp
? docs/reference/tmpl.stamp
? docs/reference/tmpl/gok-file-util.sgml
? docs/reference/tmpl/gok-file-util.sgml.sgml
? gok/keyboard-geometry
? gok/test-focus-reject
? gok/test-gok-wordcomplete
Index: gok-controls.kbd
===================================================================
RCS file: /cvs/gnome/gok/gok-controls.kbd,v
retrieving revision 1.9
diff -u -r1.9 gok-controls.kbd
--- gok-controls.kbd	26 Jan 2004 19:02:03 -0000	1.9
+++ gok-controls.kbd	29 Jan 2004 00:06:02 -0000
@@ -40,6 +40,7 @@
 		
 		
 		
+		
 	</GOK:key>
 	<GOK:key bottom="1" type="about" top="0" right="4" left="2">
 		<GOK:label>About</GOK:label>
@@ -47,6 +48,11 @@
 		
 		
 		
+		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="1" type="help" top="0" right="6" left="4">
 		<GOK:label>Help</GOK:label>
@@ -54,6 +60,11 @@
 		
 		
 		
+		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="2" type="branchModal" top="1" right="2" target="move-resize" left="0">
 		<GOK:label>Window</GOK:label>
@@ -69,6 +80,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="2" type="branch" top="1" right="4" target="quit" left="2">
 		<GOK:label>Quit GOK</GOK:label>
@@ -76,6 +91,11 @@
 		
 		
 		
+		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="2" type="settings" top="1" right="6" left="4">
 		<GOK:label>Preferences</GOK:label>
@@ -83,6 +103,11 @@
 		
 		
 		
+		
+		
+		
+		
+		
 	</GOK:key>
 </GOK:keyboard>
 </GOK:GokFile>
\ No newline at end of file
Index: hide.kbd
===================================================================
RCS file: /cvs/gnome/gok/hide.kbd,v
retrieving revision 1.5
diff -u -r1.5 hide.kbd
--- hide.kbd	20 Jan 2004 00:20:10 -0000	1.5
+++ hide.kbd	29 Jan 2004 00:06:02 -0000
@@ -16,6 +16,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 </GOK:keyboard>
 </GOK:GokFile>
\ No newline at end of file
Index: launcher.kbd
===================================================================
RCS file: /cvs/gnome/gok/launcher.kbd,v
retrieving revision 1.10
diff -u -r1.10 launcher.kbd
--- launcher.kbd	21 Jan 2004 14:03:28 -0000	1.10
+++ launcher.kbd	29 Jan 2004 00:06:02 -0000
@@ -39,6 +39,7 @@
 		
 		
 		
+		
 		 
 	</GOK:key> 
 	<GOK:key bottom="1" type="normal" top="0" right="3" left="1"> 
@@ -54,6 +55,10 @@
 		
 		
 		
+		
+		
+		
+		
 		 
 		<GOK:output type="exec">gnome-terminal</GOK:output>
 	</GOK:key> 
@@ -70,6 +75,10 @@
 		
 		
 		
+		
+		
+		
+		
 		 
 		<GOK:output type="exec">mozilla</GOK:output>
 	</GOK:key> 
@@ -86,6 +95,10 @@
 		
 		
 		
+		
+		
+		
+		
 		 
 		<GOK:output type="exec">gedit</GOK:output>
 	</GOK:key> 
@@ -102,6 +115,10 @@
 		
 		
 		
+		
+		
+		
+		
 		 
 		<GOK:output type="exec">gnome-help</GOK:output>
 	</GOK:key> 
Index: main.kbd
===================================================================
RCS file: /cvs/gnome/gok/main.kbd,v
retrieving revision 1.23
diff -u -r1.23 main.kbd
--- main.kbd	21 Jan 2004 14:03:28 -0000	1.23
+++ main.kbd	29 Jan 2004 00:06:02 -0000
@@ -42,6 +42,7 @@
 		
 		
 		
+		
 	</GOK:key>
 	<GOK:key bottom="1" type="branch" top="0" right="2" target="Keyboard" left="0">
 		<GOK:label>Compose</GOK:label>
@@ -57,6 +58,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="1" type="branchModal" top="0" right="4" target="move-resize" left="2">
 		<GOK:label>Window</GOK:label>
@@ -72,6 +77,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="1" type="branch" top="0" right="6" target="mouse" left="4">
 		<GOK:label>Mouse</GOK:label>
@@ -87,6 +96,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="2" type="branchWindows" top="1" right="4" left="2">
 		<GOK:label>Activate</GOK:label>
@@ -102,6 +115,9 @@
 		
 		
 		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="3" type="branchToolbars" top="2" right="4" left="2">
 		<GOK:label>Toolbars</GOK:label>
@@ -117,6 +133,9 @@
 		
 		
 		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="2" type="branchSettings" top="1" right="6" target="gok-controls" left="4">
 		<GOK:label>GOK</GOK:label>
@@ -155,6 +174,7 @@
 		
 		
 		
+		
 	</GOK:key>
 	<GOK:key bottom="3" type="branchGUI" top="2" right="6" left="4">
 		<GOK:label>UI Grab</GOK:label>
@@ -170,6 +190,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="2" type="branch" top="1" right="2" target="launcher" left="0">
 		<GOK:label>Launcher</GOK:label>
@@ -185,6 +209,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 </GOK:keyboard>
 </GOK:GokFile>
\ No newline at end of file
Index: mouse.kbd
===================================================================
RCS file: /cvs/gnome/gok/mouse.kbd,v
retrieving revision 1.7
diff -u -r1.7 mouse.kbd
--- mouse.kbd	22 Jan 2004 17:39:51 -0000	1.7
+++ mouse.kbd	29 Jan 2004 00:06:02 -0000
@@ -40,6 +40,7 @@
 		
 		
 		
+		
 	</GOK:key>
 	<GOK:key bottom="1" type="mousebutton" action="latch" top="0" right="2" left="1">
 		<GOK:label>Latch</GOK:label>
@@ -54,6 +55,9 @@
 		
 		
 		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="1" type="pointer" top="0" right="4" left="2">
 		<GOK:label>Pointer</GOK:label>
@@ -69,6 +73,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="1" type="repeat-next" top="0" right="6" left="4">
 		<GOK:label>Repeat</GOK:label>
@@ -84,6 +92,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="northwest" bottom="2" type="mouse" top="1" right="1" left="0">
 		<GOK:label>NW</GOK:label>
@@ -99,6 +111,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="north" bottom="2" type="mouse" top="1" right="3" left="1">
 		<GOK:label>N</GOK:label>
@@ -114,6 +130,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="northeast" bottom="2" type="mouse" top="1" right="4" left="3">
 		<GOK:label>NE</GOK:label>
@@ -129,6 +149,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="2" type="mousebutton" action="button1" top="1" right="6" left="4">
 		<GOK:label>Button 1</GOK:label>
@@ -144,6 +168,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="west" bottom="3" type="mouse" top="2" right="1" left="0">
 		<GOK:label>W</GOK:label>
@@ -159,6 +187,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="3" type="mousebutton" action="double1" top="2" right="3" left="1">
 		<GOK:label>Dbl Click</GOK:label>
@@ -174,6 +206,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="east" bottom="3" type="mouse" top="2" right="4" left="3">
 		<GOK:label>E</GOK:label>
@@ -189,6 +225,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="3" type="mousebutton" action="button2" top="2" right="6" left="4">
 		<GOK:label>Button 2</GOK:label>
@@ -204,6 +244,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="southwest" bottom="4" type="mouse" top="3" right="1" left="0">
 		<GOK:label>SW</GOK:label>
@@ -219,6 +263,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="south" bottom="4" type="mouse" top="3" right="3" left="1">
 		<GOK:label>S</GOK:label>
@@ -234,6 +282,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="southeast" bottom="4" type="mouse" top="3" right="4" left="3">
 		<GOK:label>SE</GOK:label>
@@ -249,6 +301,9 @@
 		
 		
 		
+		
+		
+		
 	</GOK:key>
 	<GOK:key bottom="4" type="mousebutton" action="button3" top="3" right="6" left="4">
 		<GOK:label>Button 3</GOK:label>
@@ -264,6 +319,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 </GOK:keyboard>
 </GOK:GokFile>
\ No newline at end of file
Index: move-resize.kbd
===================================================================
RCS file: /cvs/gnome/gok/move-resize.kbd,v
retrieving revision 1.13
diff -u -r1.13 move-resize.kbd
--- move-resize.kbd	21 Jan 2004 14:03:28 -0000	1.13
+++ move-resize.kbd	29 Jan 2004 00:06:02 -0000
@@ -40,6 +40,7 @@
 		
 		
 		
+		
 	</GOK:key>
 	<GOK:key dir="north" bottom="1" type="dock" top="0" right="3" left="1">
 		<GOK:label>Dock Top</GOK:label>
@@ -55,6 +56,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="south" bottom="1" type="dock" top="0" right="5" left="3">
 		<GOK:label>Dock Bottom</GOK:label>
@@ -70,6 +75,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="fillwidth" bottom="1" type="move-resize" top="0" right="6" left="5">
 		<GOK:label>Fill</GOK:label>
@@ -85,6 +94,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 
 	<GOK:key dir="northwest" bottom="2" type="move-resize" top="1" right="1" left="0">
@@ -104,6 +117,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="northeast" bottom="2" type="move-resize" top="1" right="4" left="3">
 		<GOK:image type="fixed:20,20" align="right" source="NE.png" />
@@ -122,6 +139,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 
 	<GOK:key dir="west" bottom="3" type="move-resize" top="2" right="1" left="0">
@@ -138,6 +159,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="none" bottom="3" type="dock" top="2" right="3" left="1">
 		<GOK:label>Float</GOK:label>
@@ -153,6 +178,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="east" bottom="3" type="move-resize" top="2" right="4" left="3">
 		<GOK:label>Right</GOK:label>
@@ -168,6 +197,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="wider" bottom="3" type="move-resize" top="2" right="6" left="4">
 		<GOK:label>Wider</GOK:label>
@@ -183,6 +216,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 
 	<GOK:key dir="southwest" bottom="4" type="move-resize" top="3" right="1" left="0">
@@ -202,6 +239,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 	<GOK:key dir="southeast" bottom="4" type="move-resize" top="3" right="4" left="3">
 		<GOK:image type="fixed:20,20" align="right" source="SE.png" />
@@ -220,6 +261,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 
 	<GOK:key bottom="5" type="branch" top="4" right="1" target="hide" left="0">
@@ -236,6 +281,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
         <GOK:key bottom="5" type="repeat-next" top="4" right="4" left="1">
                 <GOK:label>Repeat Next Key</GOK:label>
@@ -269,6 +318,7 @@
                 
                 
                 
+                
         </GOK:key>
 	<GOK:key dir="taller" bottom="5" type="move-resize" top="4" right="6" left="4">
 		<GOK:label>Taller</GOK:label>
@@ -284,6 +334,10 @@
 		
 		
 		
+		
+		
+		
+		
 	</GOK:key>
 </GOK:keyboard>
 </GOK:GokFile>
\ No newline at end of file
Index: quit.kbd
===================================================================
RCS file: /cvs/gnome/gok/quit.kbd,v
retrieving revision 1.6
diff -u -r1.6 quit.kbd
--- quit.kbd	21 Jan 2004 14:03:28 -0000	1.6
+++ quit.kbd	29 Jan 2004 00:06:02 -0000
@@ -40,6 +40,7 @@
 		
 		
 		
+		
 	</GOK:key>
 	<GOK:key bottom="1" type="normal" top="0" right="5" left="2">
 		<GOK:output type="internal">quit</GOK:output>
@@ -56,6 +57,10 @@
 		
 		
 		
+		
+		
+		
+		
 		<GOK:image type="stock" source="gtk-quit" />
 	</GOK:key>
 </GOK:keyboard>
Index: docs/reference/tmpl/global.sgml
===================================================================
RCS file: /cvs/gnome/gok/docs/reference/tmpl/global.sgml,v
retrieving revision 1.2
diff -u -r1.2 global.sgml
--- docs/reference/tmpl/global.sgml	26 Aug 2002 14:20:15 -0000	1.2
+++ docs/reference/tmpl/global.sgml	29 Jan 2004 00:06:03 -0000
@@ -21,20 +21,6 @@
 
 
 
-<!-- ##### MACRO Boolean ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO Object ##### -->
-<para>
-
-</para>
-
-
-
 <!-- ##### FUNCTION string_equals ##### -->
 <para>
 
Index: docs/reference/tmpl/gok-page-feedbacks.sgml
===================================================================
RCS file: /cvs/gnome/gok/docs/reference/tmpl/gok-page-feedbacks.sgml,v
retrieving revision 1.2
diff -u -r1.2 gok-page-feedbacks.sgml
--- docs/reference/tmpl/gok-page-feedbacks.sgml	26 Aug 2002 14:20:15 -0000	1.2
+++ docs/reference/tmpl/gok-page-feedbacks.sgml	29 Jan 2004 00:06:03 -0000
@@ -53,14 +53,6 @@
 
 
 
-<!-- ##### FUNCTION gok_page_actions_action_changed ##### -->
-<para>
-
-</para>
-
-@pEditControl: 
-
-
 <!-- ##### FUNCTION gok_page_feedbacks_update_controls ##### -->
 <para>
 
Index: docs/reference/tmpl/gok-unused.sgml
===================================================================
RCS file: /cvs/gnome/gok/docs/reference/tmpl/gok-unused.sgml,v
retrieving revision 1.13
diff -u -r1.13 gok-unused.sgml
--- docs/reference/tmpl/gok-unused.sgml	5 Dec 2003 20:23:55 -0000	1.13
+++ docs/reference/tmpl/gok-unused.sgml	29 Jan 2004 00:06:03 -0000
@@ -1,3 +1,23 @@
+<!-- ##### SECTION ./tmpl/gok-gconf-keys.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/gok-gconf-keys.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/gok-gconf-keys.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/gok-gconf-keys.sgml:Title ##### -->
+gok-gconf-keys
+
+
 <!-- ##### TYPEDEF AppChangeListener ##### -->
 <para>
 
@@ -23,6 +43,12 @@
 </para>
 
 
+<!-- ##### MACRO GOK_GCONF_KEY_HEIGHT ##### -->
+<para>
+
+</para>
+
+
 <!-- ##### ENUM HandlerIds ##### -->
 <para>
 
Index: gok/callbacks.c
===================================================================
RCS file: /cvs/gnome/gok/gok/callbacks.c,v
retrieving revision 1.48
diff -u -r1.48 callbacks.c
--- gok/callbacks.c	12 Jan 2004 14:57:44 -0000	1.48
+++ gok/callbacks.c	29 Jan 2004 00:06:04 -0000
@@ -103,7 +103,8 @@
                                         gpointer         user_data)
 {
   gboolean is_dock = (gboolean) user_data;
-  
+  GdkKeymap *map = gdk_keymap_get_default ();
+
   if (is_dock) {
 	  gok_main_set_wm_dock (TRUE);
   }
@@ -125,6 +126,9 @@
   gdk_window_add_filter (NULL,
 			 gok_xkb_filter,
 			 NULL);
+
+  g_signal_connect (map, "keys-changed",
+		    (GCallback) gok_keyboard_notify_keys_changed, NULL);
 }
 
 
Index: gok/gok-keyboard.c
===================================================================
RCS file: /cvs/gnome/gok/gok/gok-keyboard.c,v
retrieving revision 1.121
diff -u -r1.121 gok-keyboard.c
--- gok/gok-keyboard.c	28 Jan 2004 13:34:42 -0000	1.121
+++ gok/gok-keyboard.c	29 Jan 2004 00:06:10 -0000
@@ -89,6 +89,8 @@
 
 /* private prototypes */
 static gboolean gok_keyboard_focus_object (Accessible *accessible);
+static gboolean gok_keyboard_branch_gui_selectaction (AccessibleNode *node);
+static gboolean gok_keyboard_branch_gui_valuator (AccessibleNode* node);
 
 /**
 * gok_keyboard_initialize
@@ -149,11 +151,52 @@
 	retval = XkbQueryExtension (display, &opcode_rtn, &gok_xkb_base_event_type, 
 			   &error_rtn, NULL, NULL);
 	if (retval) 
-               retval = XkbSelectEvents (display, XkbUseCoreKbd, XkbStateNotifyMask | XkbAccessXNotifyMask, XkbStateNotifyMask | XkbAccessXNotifyMask);
+               retval = XkbSelectEvents (display, XkbUseCoreKbd, XkbStateNotifyMask | XkbAccessXNotifyMask, XkbStateNotifyMask | XkbAccessXNotifyMask | XkbMapNotifyMask);
 	return retval;
 }
 
 void
+gok_keyboard_notify_keys_changed (gpointer foo)
+{
+    if (gok_data_get_use_xkb_kbd ())
+    {
+	if (m_XkbDisplay)
+	{
+	    m_XkbDescPtr = XkbGetMap (m_XkbDisplay, 
+				      XkbAllComponentsMask,
+				      XkbUseCoreKbd);
+	    if (m_XkbDescPtr == NULL)
+		g_warning (_("keyboard description not available!"));
+	    else {
+		int status = XkbGetGeometry (m_XkbDisplay, m_XkbDescPtr);
+		
+		if (status != Success)
+		{
+		    g_warning (_("Keyboard Geometry cannot be read from your X Server."));
+		}	
+		XkbGetNames (m_XkbDisplay, XkbAllNamesMask, m_XkbDescPtr);
+	    }
+	}
+	GokKeyboard *compose_kbd = gok_main_keyboard_find_byname ("Keyboard");
+	GokKeyboard *prev, *next;
+	if (compose_kbd) 
+	{
+	    GokKeyboard *tmp = compose_kbd;
+	    prev = compose_kbd->pKeyboardPrevious;
+	    next = compose_kbd->pKeyboardNext;
+	    g_warning ("recreating core keyboard");
+	    compose_kbd = gok_keyboard_get_core ();
+	    compose_kbd->pKeyboardPrevious = prev;
+	    compose_kbd->pKeyboardNext = next;
+	    if (prev) prev->pKeyboardNext = compose_kbd;
+	    if (next) next->pKeyboardPrevious = compose_kbd;
+	    gok_main_set_first_keyboard (compose_kbd);
+	    gok_keyboard_delete (tmp, TRUE);
+	}
+    }
+}
+
+void
 gok_keyboard_notify_xkb_event (XkbEvent *event)
 {
 	if (event->any.xkb_type == XkbStateNotify) {
@@ -163,7 +206,39 @@
 				 sevent->group);
 			gok_key_set_effective_group (sevent->group);
 		}
+		else
+		{
+		    gok_log ("XKB event changed:%x\n", sevent->changed);
+		}
 	} 
+#ifdef USE_XKB_MAPPING_EVENTS
+	else if (event->any.xkb_type == XkbMapNotify || event->any.type == MappingNotify) 
+	{
+		g_warning ("XKB Map Notify changed:%x", event->map.changed);
+		XkbGetUpdatedMap (m_XkbDisplay, event->map.changed, m_XkbDescPtr);
+		/* XkbRefreshKeyboardMapping (event); */
+		/* rebuild GOK's 'Compose' keyboard */
+		if (gok_data_get_use_xkb_kbd () && event->map.changed & XkbKeySymsMask)
+		{
+			GokKeyboard *compose_kbd = gok_main_keyboard_find_byname ("Keyboard");
+			GokKeyboard *prev, *next;
+			if (compose_kbd) 
+			{
+				GokKeyboard *tmp = compose_kbd;
+				prev = compose_kbd->pKeyboardPrevious;
+				next = compose_kbd->pKeyboardNext;
+				g_warning ("recreating core keyboard");
+				compose_kbd = gok_keyboard_get_core ();
+				compose_kbd->pKeyboardPrevious = prev;
+				compose_kbd->pKeyboardNext = next;
+				if (prev) prev->pKeyboardNext = compose_kbd;
+				if (next) next->pKeyboardPrevious = compose_kbd;
+				gok_main_set_first_keyboard (compose_kbd);
+				gok_keyboard_delete (tmp, TRUE);
+			}
+		}
+	}
+#endif
 	/* 
 	 * TODO: change GOK's shift state notification 
 	 * to use XKB instead of at-spi ?
@@ -716,7 +791,7 @@
 			 gok_keyboard_get_number_columns (pKeyboard));
 	}
 	else
-	{
+	{	  
 		g_free (pKeyboard);
 		pKeyboard = NULL;
 	}
@@ -2378,7 +2453,7 @@
 *
 * returns: TRUE if the selection+action were carried out, FALSE if not.
 **/
-gboolean 
+static gboolean 
 gok_keyboard_branch_gui_selectaction (AccessibleNode* node)
 {
 	AccessibleSelection* aselection;
@@ -2469,7 +2544,7 @@
 *
 * returns: TRUE if the keyboard was displayed, FALSE if not.
 **/
-gboolean 
+static gboolean 
 gok_keyboard_branch_gui_valuator (AccessibleNode* node)
 {
 	AccessibleValue* value;
Index: gok/gok-keyboard.h
===================================================================
RCS file: /cvs/gnome/gok/gok/gok-keyboard.h,v
retrieving revision 1.44
diff -u -r1.44 gok-keyboard.h
--- gok/gok-keyboard.h	26 Jan 2004 20:07:15 -0000	1.44
+++ gok/gok-keyboard.h	29 Jan 2004 00:06:10 -0000
@@ -166,6 +166,7 @@
 GokKey* gok_key_from_xkb_key (GokKey* prevKey, GokKeyboard *pKeyboard, Display *display, XkbGeometryPtr pGeom, XkbRowPtr pRow, XkbSectionPtr pXkbSection, XkbKeyPtr keyp, gint section, gint row, gint col);
 XkbDescPtr gok_keyboard_get_xkb_desc (void);
 gboolean gok_keyboard_xkb_select (Display *display);
+void gok_keyboard_notify_keys_changed (gpointer foo);
 void gok_keyboard_notify_xkb_event (XkbEvent* event);
 gboolean gok_keyboard_layout (GokKeyboard* pKeyboard, KeyboardLayouts layout, KeyboardShape shape, gboolean force);
 gboolean gok_keyboard_branch_byKey (GokKey* pKey);
Index: gok/main.c
===================================================================
RCS file: /cvs/gnome/gok/gok/main.c,v
retrieving revision 1.134
diff -u -r1.134 main.c
--- gok/main.c	26 Jan 2004 22:50:49 -0000	1.134
+++ gok/main.c	29 Jan 2004 00:06:14 -0000
@@ -511,7 +511,7 @@
 gok_log ("finished check");
 	
 	/* connect signal handlers; don't trap SIGKILL */ 
-	signal(SIGSEGV, (void (*)(int))gok_sig_handler);
+	/*signal(SIGSEGV, (void (*)(int))gok_sig_handler);*/
 	signal(SIGTERM, (void (*)(int))gok_sig_handler);
 	signal(SIGINT,  (void (*)(int))gok_sig_handler);
 
