bc9fb29
--- control-center-2.16.0/capplets/accessibility/at-properties/main.c.start-at-helper	2006-09-19 18:45:32.000000000 -0400
2f77cb3
+++ control-center-2.16.0/capplets/accessibility/at-properties/main.c	2006-09-19 21:10:19.000000000 -0400
bc9fb29
@@ -44,6 +44,9 @@
bc9fb29
 	gtk_widget_set_sensitive (WID ("at_magnifier_toggle"),
bc9fb29
 				  at_startup_state.enabled.magnifier_installed);
bc9fb29
 
bc9fb29
+	if (!at_startup_state.enabled.orca_installed)
bc9fb29
+		gtk_widget_hide (WID ("at_pref_button"));
bc9fb29
+
bc9fb29
 	if (at_startup_state.enabled.osk_installed &&
bc9fb29
 	    at_startup_state.enabled.screenreader_installed &&
bc9fb29
 	    at_startup_state.enabled.magnifier_installed) {
2f77cb3
@@ -149,6 +152,14 @@
bc9fb29
 			       is_enabled,
bc9fb29
 			       NULL);
bc9fb29
 	at_startup_state.enabled.support = is_enabled;
bc9fb29
+
2f77cb3
+        if (at_startup_state.enabled.orca_installed) {
2f77cb3
+		if (is_enabled) 
2f77cb3
+			at_orca_start ();
2f77cb3
+		else
2f77cb3
+			at_orca_stop ();
2f77cb3
+	}
bc9fb29
+
bc9fb29
 	g_object_unref (client);
bc9fb29
 }
bc9fb29
 
2f77cb3
@@ -200,6 +211,13 @@
bc9fb29
 }
bc9fb29
 
bc9fb29
 static void
bc9fb29
+at_pref_clicked (GtkButton *button)
bc9fb29
+{
bc9fb29
+	if (at_startup_state.enabled.orca_installed)
bc9fb29
+		at_orca_config ();
bc9fb29
+}
bc9fb29
+
bc9fb29
+static void
bc9fb29
 setup_dialog (GladeXML *dialog)
bc9fb29
 {
bc9fb29
 	GConfClient *client;
2f77cb3
@@ -255,7 +273,13 @@
bc9fb29
 	g_signal_connect (widget, "toggled",
bc9fb29
 			  G_CALLBACK (at_startup_toggled), 
bc9fb29
 			  dialog);
bc9fb29
-	
bc9fb29
+
bc9fb29
+	widget = WID ("at_pref_button");
bc9fb29
+	g_signal_connect (widget, "clicked",
bc9fb29
+			  G_CALLBACK (at_pref_clicked), 
bc9fb29
+			  NULL);
bc9fb29
+
bc9fb29
+
bc9fb29
 	widget = WID ("at_properties_dialog");
bc9fb29
 	capplet_set_icon (widget, "gnome-settings-accessibility-technologies");
bc9fb29
 	
bc9fb29
--- control-center-2.16.0/capplets/accessibility/at-properties/at-startup-session.h.start-at-helper	2006-09-19 20:09:48.000000000 -0400
bc9fb29
+++ control-center-2.16.0/capplets/accessibility/at-properties/at-startup-session.h	2006-09-19 20:01:13.000000000 -0400
bc9fb29
@@ -18,3 +18,10 @@
bc9fb29
 void at_startup_state_init (AtStartupState *startup_state);
bc9fb29
 
bc9fb29
 void at_startup_state_update (AtStartupState *startup_state);
bc9fb29
+
bc9fb29
+void at_orca_start (void);
bc9fb29
+
bc9fb29
+void at_orca_stop (void);
bc9fb29
+
bc9fb29
+void at_orca_config (void);
bc9fb29
+
bc9fb29
--- control-center-2.16.0/capplets/accessibility/at-properties/at-enable-dialog.glade.start-at-helper	2006-09-19 18:44:33.000000000 -0400
bc9fb29
+++ control-center-2.16.0/capplets/accessibility/at-properties/at-enable-dialog.glade	2006-09-19 19:46:21.000000000 -0400
bc9fb29
@@ -12,6 +12,13 @@
bc9fb29
   <property name="modal">False</property>
bc9fb29
   <property name="resizable">False</property>
bc9fb29
   <property name="destroy_with_parent">False</property>
bc9fb29
+  <property name="decorated">True</property>
bc9fb29
+  <property name="skip_taskbar_hint">False</property>
bc9fb29
+  <property name="skip_pager_hint">False</property>
bc9fb29
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
bc9fb29
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
bc9fb29
+  <property name="focus_on_map">True</property>
bc9fb29
+  <property name="urgency_hint">False</property>
bc9fb29
   <property name="has_separator">False</property>
bc9fb29
 
bc9fb29
   <child internal-child="vbox">
bc9fb29
@@ -33,6 +40,7 @@
bc9fb29
 	      <property name="label">gtk-help</property>
bc9fb29
 	      <property name="use_stock">True</property>
bc9fb29
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
bc9fb29
+	      <property name="focus_on_click">True</property>
bc9fb29
 	      <property name="response_id">-11</property>
bc9fb29
 	    </widget>
bc9fb29
 	  </child>
bc9fb29
@@ -44,6 +52,7 @@
bc9fb29
 	      <property name="can_default">True</property>
bc9fb29
 	      <property name="can_focus">True</property>
bc9fb29
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
bc9fb29
+	      <property name="focus_on_click">True</property>
bc9fb29
 	      <property name="response_id">0</property>
bc9fb29
 
bc9fb29
 	      <child>
bc9fb29
@@ -53,6 +62,10 @@
bc9fb29
 		  <property name="yalign">0.5</property>
bc9fb29
 		  <property name="xscale">0</property>
bc9fb29
 		  <property name="yscale">0</property>
bc9fb29
+		  <property name="top_padding">0</property>
bc9fb29
+		  <property name="bottom_padding">0</property>
bc9fb29
+		  <property name="left_padding">0</property>
bc9fb29
+		  <property name="right_padding">0</property>
bc9fb29
 
bc9fb29
 		  <child>
bc9fb29
 		    <widget class="GtkHBox" id="hbox1">
bc9fb29
@@ -88,6 +101,10 @@
bc9fb29
 			  <property name="yalign">0.5</property>
bc9fb29
 			  <property name="xpad">0</property>
bc9fb29
 			  <property name="ypad">0</property>
bc9fb29
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
bc9fb29
+			  <property name="width_chars">-1</property>
bc9fb29
+			  <property name="single_line_mode">False</property>
bc9fb29
+			  <property name="angle">0</property>
bc9fb29
 			</widget>
bc9fb29
 			<packing>
bc9fb29
 			  <property name="padding">0</property>
bc9fb29
@@ -111,6 +128,7 @@
bc9fb29
 	      <property name="label">gtk-close</property>
bc9fb29
 	      <property name="use_stock">True</property>
bc9fb29
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
bc9fb29
+	      <property name="focus_on_click">True</property>
bc9fb29
 	      <property name="response_id">-7</property>
bc9fb29
 	    </widget>
bc9fb29
 	  </child>
bc9fb29
@@ -155,6 +173,10 @@
bc9fb29
 		      <property name="yalign">0.5</property>
bc9fb29
 		      <property name="xpad">0</property>
bc9fb29
 		      <property name="ypad">0</property>
bc9fb29
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
bc9fb29
+		      <property name="width_chars">-1</property>
bc9fb29
+		      <property name="single_line_mode">False</property>
bc9fb29
+		      <property name="angle">0</property>
bc9fb29
 		    </widget>
bc9fb29
 		    <packing>
bc9fb29
 		      <property name="padding">0</property>
bc9fb29
@@ -197,6 +219,7 @@
bc9fb29
 			      <property name="label" translatable="yes">_Enable assistive technologies</property>
bc9fb29
 			      <property name="use_underline">True</property>
bc9fb29
 			      <property name="relief">GTK_RELIEF_NORMAL</property>
bc9fb29
+			      <property name="focus_on_click">True</property>
bc9fb29
 			      <property name="active">False</property>
bc9fb29
 			      <property name="inconsistent">False</property>
bc9fb29
 			      <property name="draw_indicator">True</property>
bc9fb29
@@ -221,6 +244,10 @@
bc9fb29
 			      <property name="yalign">0.5</property>
bc9fb29
 			      <property name="xpad">0</property>
bc9fb29
 			      <property name="ypad">0</property>
bc9fb29
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
bc9fb29
+			      <property name="width_chars">-1</property>
bc9fb29
+			      <property name="single_line_mode">False</property>
bc9fb29
+			      <property name="angle">0</property>
bc9fb29
 			    </widget>
bc9fb29
 			    <packing>
bc9fb29
 			      <property name="padding">0</property>
bc9fb29
@@ -282,6 +309,10 @@
bc9fb29
 		      <property name="yalign">0.5</property>
bc9fb29
 		      <property name="xpad">0</property>
bc9fb29
 		      <property name="ypad">0</property>
bc9fb29
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
bc9fb29
+		      <property name="width_chars">-1</property>
bc9fb29
+		      <property name="single_line_mode">False</property>
bc9fb29
+		      <property name="angle">0</property>
bc9fb29
 		    </widget>
bc9fb29
 		    <packing>
bc9fb29
 		      <property name="padding">0</property>
bc9fb29
@@ -330,6 +361,10 @@
bc9fb29
 			      <property name="yalign">0.5</property>
bc9fb29
 			      <property name="xpad">0</property>
bc9fb29
 			      <property name="ypad">6</property>
bc9fb29
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
bc9fb29
+			      <property name="width_chars">-1</property>
bc9fb29
+			      <property name="single_line_mode">False</property>
bc9fb29
+			      <property name="angle">0</property>
bc9fb29
 			    </widget>
bc9fb29
 			    <packing>
bc9fb29
 			      <property name="padding">0</property>
bc9fb29
@@ -345,6 +380,7 @@
bc9fb29
 			      <property name="label" translatable="yes">_Screenreader</property>
bc9fb29
 			      <property name="use_underline">True</property>
bc9fb29
 			      <property name="relief">GTK_RELIEF_NORMAL</property>
bc9fb29
+			      <property name="focus_on_click">True</property>
bc9fb29
 			      <property name="active">False</property>
bc9fb29
 			      <property name="inconsistent">False</property>
bc9fb29
 			      <property name="draw_indicator">True</property>
bc9fb29
@@ -363,6 +399,7 @@
bc9fb29
 			      <property name="label" translatable="yes">_Magnifier</property>
bc9fb29
 			      <property name="use_underline">True</property>
bc9fb29
 			      <property name="relief">GTK_RELIEF_NORMAL</property>
bc9fb29
+			      <property name="focus_on_click">True</property>
bc9fb29
 			      <property name="active">False</property>
bc9fb29
 			      <property name="inconsistent">False</property>
bc9fb29
 			      <property name="draw_indicator">True</property>
bc9fb29
@@ -381,6 +418,7 @@
bc9fb29
 			      <property name="label" translatable="yes">_On-screen keyboard</property>
bc9fb29
 			      <property name="use_underline">True</property>
bc9fb29
 			      <property name="relief">GTK_RELIEF_NORMAL</property>
bc9fb29
+			      <property name="focus_on_click">True</property>
bc9fb29
 			      <property name="active">False</property>
bc9fb29
 			      <property name="inconsistent">False</property>
bc9fb29
 			      <property name="draw_indicator">True</property>
bc9fb29
@@ -393,6 +431,39 @@
bc9fb29
 			  </child>
bc9fb29
 
bc9fb29
 			  <child>
bc9fb29
+			    <widget class="GtkHBox" id="hbox4">
bc9fb29
+			      <property name="visible">True</property>
bc9fb29
+			      <property name="homogeneous">False</property>
bc9fb29
+			      <property name="spacing">0</property>
bc9fb29
+
bc9fb29
+			      <child>
bc9fb29
+				<widget class="GtkButton" id="at_pref_button">
bc9fb29
+				  <property name="visible">True</property>
bc9fb29
+				  <property name="can_focus">True</property>
bc9fb29
+				  <property name="label">gtk-preferences</property>
bc9fb29
+				  <property name="use_stock">True</property>
bc9fb29
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
bc9fb29
+				  <property name="focus_on_click">True</property>
bc9fb29
+				</widget>
bc9fb29
+				<packing>
bc9fb29
+				  <property name="padding">0</property>
bc9fb29
+				  <property name="expand">False</property>
bc9fb29
+				  <property name="fill">False</property>
bc9fb29
+				</packing>
bc9fb29
+			      </child>
bc9fb29
+
bc9fb29
+			      <child>
bc9fb29
+				<placeholder/>
bc9fb29
+			      </child>
bc9fb29
+			    </widget>
bc9fb29
+			    <packing>
bc9fb29
+			      <property name="padding">0</property>
bc9fb29
+			      <property name="expand">False</property>
bc9fb29
+			      <property name="fill">False</property>
bc9fb29
+			    </packing>
bc9fb29
+			  </child>
bc9fb29
+
bc9fb29
+			  <child>
bc9fb29
 			    <widget class="GtkHSeparator" id="at_applications_hseparator">
bc9fb29
 			      <property name="visible">True</property>
bc9fb29
 			    </widget>
bc9fb29
@@ -416,6 +487,10 @@
bc9fb29
 			      <property name="yalign">0.5</property>
bc9fb29
 			      <property name="xpad">0</property>
bc9fb29
 			      <property name="ypad">0</property>
bc9fb29
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
bc9fb29
+			      <property name="width_chars">-1</property>
bc9fb29
+			      <property name="single_line_mode">False</property>
bc9fb29
+			      <property name="angle">0</property>
bc9fb29
 			    </widget>
bc9fb29
 			    <packing>
bc9fb29
 			      <property name="padding">0</property>
bc9fb29
--- control-center-2.16.0/capplets/accessibility/at-properties/at-startup-session.c.start-at-helper	2006-09-19 20:09:38.000000000 -0400
2f77cb3
+++ control-center-2.16.0/capplets/accessibility/at-properties/at-startup-session.c	2006-09-19 21:13:35.000000000 -0400
bc9fb29
@@ -57,6 +57,48 @@
bc9fb29
 	return list;
bc9fb29
 }
bc9fb29
 
bc9fb29
+/* Hack for starting and stopping orca when Enable assitive technologies
bc9fb29
+   is toggled */
bc9fb29
+static char *orca_start_cmd;
bc9fb29
+static char *orca_stop_cmd;
bc9fb29
+static char *orca_config_cmd;
bc9fb29
+
bc9fb29
+static void
bc9fb29
+orca_execute_cmd (const char *cmd)
bc9fb29
+{
bc9fb29
+  char **argv;
bc9fb29
+  
bc9fb29
+  argv = g_strsplit (cmd, " ", -1); 
bc9fb29
+  g_spawn_async (NULL, 
bc9fb29
+  		 argv, 
bc9fb29
+		 NULL, 
2f77cb3
+		 0, 
bc9fb29
+		 NULL,
bc9fb29
+		 NULL,
bc9fb29
+		 NULL,
bc9fb29
+		 NULL); 
bc9fb29
+
bc9fb29
+  g_strfreev (argv);
bc9fb29
+}
bc9fb29
+
bc9fb29
+void
bc9fb29
+at_orca_start ()
bc9fb29
+{
bc9fb29
+  orca_execute_cmd (orca_start_cmd);
bc9fb29
+}
bc9fb29
+
bc9fb29
+void
bc9fb29
+at_orca_stop ()
bc9fb29
+{
bc9fb29
+  orca_execute_cmd (orca_stop_cmd);
bc9fb29
+}
bc9fb29
+
bc9fb29
+void
bc9fb29
+at_orca_config ()
bc9fb29
+{
bc9fb29
+  orca_execute_cmd (orca_config_cmd);
bc9fb29
+}
bc9fb29
+
bc9fb29
 void
bc9fb29
 at_startup_state_init (AtStartupState *startup_state)
bc9fb29
 {
bc9fb29
@@ -111,6 +153,10 @@
bc9fb29
 	prog = g_find_program_in_path ("orca");
bc9fb29
 	if (prog != NULL) {
bc9fb29
 		startup_state->enabled.orca_installed = TRUE;
bc9fb29
+		orca_start_cmd = g_strdup_printf ("%s --no-setup", prog);
bc9fb29
+		orca_stop_cmd = g_strdup_printf ("%s --stop", prog);
bc9fb29
+		orca_config_cmd = g_strdup_printf ("%s --gui-setup", prog);
bc9fb29
+
bc9fb29
 		g_free (prog);
bc9fb29
 	} else {
bc9fb29
 		startup_state->enabled.orca_installed = FALSE;