modification for the svg file icon and remove <a href="http://makefile.in">makefile.in</a><br><br><br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/bin/sugar-session sugar-0.88.1/bin/sugar-session<br>--- sugar-0.88.1.original.con.parches.viejos/bin/sugar-session    2010-06-02 09:33:43.000000000 -0300<br>
+++ sugar-0.88.1/bin/sugar-session    2010-06-21 11:48:06.837182011 -0300<br>@@ -1,6 +1,7 @@<br> #!/usr/bin/env python<br> # Copyright (C) 2006, Red Hat, Inc.<br> # Copyright (C) 2009, One Laptop Per Child Association Inc<br>
+# Copyright (C) 2010, Plan Ceibal &lt;<a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a>&gt;<br> #<br> # This program is free software; you can redistribute it and/or modify<br> # it under the terms of the GNU General Public License as published by<br>
@@ -190,6 +191,7 @@<br>     gobject.idle_add(setup_notification_service_cb)<br>     gobject.idle_add(setup_file_transfer_cb)<br>     gobject.idle_add(show_software_updates_cb)<br>+    gobject.idle_add(setup_accessibility_cb)<br>
 <br>     if sys.modules.has_key(&#39;xklavier&#39;):<br>         gobject.idle_add(setup_keyboard_cb)<br>@@ -201,6 +203,11 @@<br>     settings = gtk.settings_get_default()<br>     settings.set_property(&quot;gtk-font-name&quot;, &quot;%s %f&quot; % (face, size))<br>
 <br>+def setup_accessibility_cb():<br>+    from jarabe.model import accessibility<br>+    accessibility_manager = accessibility.AccessibilityManager()<br>+    accessibility_manager.setup_accessibility()<br>+<br> def main():<br>
     try:<br>         from sugar import env<br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/<a href="http://configure.ac">configure.ac</a> sugar-0.88.1/<a href="http://configure.ac">configure.ac</a><br>--- sugar-0.88.1.original.con.parches.viejos/<a href="http://configure.ac">configure.ac</a>    2010-06-21 11:39:19.902054000 -0300<br>
+++ sugar-0.88.1/<a href="http://configure.ac">configure.ac</a>    2010-06-21 11:44:16.697208930 -0300<br>@@ -50,6 +50,7 @@<br> data/Makefile<br> data/sugar-emulator.desktop<br> extensions/cpsection/aboutcomputer/Makefile<br>
+extensions/cpsection/accessibility/Makefile<br> extensions/cpsection/aboutme/Makefile<br> extensions/cpsection/datetime/Makefile<br> extensions/cpsection/frame/Makefile<br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/data/icons/Makefile.am sugar-0.88.1/data/icons/Makefile.am<br>
--- sugar-0.88.1.original.con.parches.viejos/data/icons/Makefile.am    2010-06-21 11:39:19.902054000 -0300<br>+++ sugar-0.88.1/data/icons/Makefile.am    2010-06-21 11:54:27.040055731 -0300<br>@@ -3,6 +3,7 @@<br> sugar_DATA =                        \<br>
     module-about_me.svg             \<br>     module-about_my_computer.svg    \<br>+    module-accessibility.svg        \<br>     module-date_and_time.svg        \<br>     module-frame.svg                \<br>     module-journalmanagement.svg    \<br>
diff -u -r -N sugar-0.88.1.original.con.parches.viejos/data/icons/module-accessibility.svg sugar-0.88.1/data/icons/module-accessibility.svg<br>--- sugar-0.88.1.original.con.parches.viejos/data/icons/module-accessibility.svg    1969-12-31 21:00:00.000000000 -0300<br>
+++ sugar-0.88.1/data/icons/module-accessibility.svg    2010-07-08 09:19:22.288067133 -0300<br>@@ -0,0 +1,92 @@<br>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;<br>+&lt;!-- Created with Inkscape (<a href="http://www.inkscape.org/">http://www.inkscape.org/</a>) --&gt;<br>
+<br>+&lt;svg<br>+   xmlns:svg=&quot;<a href="http://www.w3.org/2000/svg">http://www.w3.org/2000/svg</a>&quot;<br>+   xmlns=&quot;<a href="http://www.w3.org/2000/svg">http://www.w3.org/2000/svg</a>&quot;<br>+   version=&quot;1.0&quot;<br>
+   width=&quot;55&quot;<br>+   height=&quot;55&quot;<br>+   id=&quot;svg795&quot;&gt;<br>+  &lt;defs<br>+     id=&quot;defs797&quot; /&gt;<br>+  &lt;g<br>+     id=&quot;layer1&quot;&gt;<br>+    &lt;path<br>+       d=&quot;m -23.738584,30.440666 a 8.901969,11.301082 0 1 1 -17.803937,0 8.901969,11.301082 0 1 1 17.803937,0 z&quot;<br>
+       transform=&quot;matrix(1.2765958,0,0,1.0558659,19.192898,-13.127946)&quot;<br>+       id=&quot;path12&quot;<br>+       style=&quot;fill:none;stroke:#ffffff&quot; /&gt;<br>+    &lt;path<br>+       d=&quot;m 30.145644,37.823484 c -0.583589,6.659344 -6.7511,11.52268 -13.775517,10.862567 C 9.3457054,48.02594 4.1243814,42.092348 4.7079694,35.433004 5.2915594,28.773661 20.67887,20.597949 14.885997,24.011638 -12.777062,40.313232 24.43362,62.068174 30.145644,37.823484 z&quot;<br>
+       id=&quot;path1405-0&quot;<br>+       style=&quot;fill:none;stroke:#ffffff;stroke-width:1.44962609;stroke-opacity:1&quot; /&gt;<br>+    &lt;rect<br>+       width=&quot;2.916333&quot;<br>+       height=&quot;21.188446&quot;<br>
+       ry=&quot;1.3939767&quot;<br>+       x=&quot;18.332197&quot;<br>+       y=&quot;13.76814&quot;<br>+       id=&quot;rect1438-8&quot;<br>+       style=&quot;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.50547338;stroke-opacity:1&quot; /&gt;<br>
+    &lt;rect<br>+       width=&quot;2.8716421&quot;<br>+       height=&quot;19.140917&quot;<br>+       ry=&quot;1.259271&quot;<br>+       x=&quot;-35.091366&quot;<br>+       y=&quot;-38.207035&quot;<br>+       transform=&quot;matrix(0,-1,-1,0,0,0)&quot;<br>
+       id=&quot;rect1438-1-87&quot;<br>+       style=&quot;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.41987956;stroke-opacity:1&quot; /&gt;<br>+    &lt;rect<br>+       width=&quot;2.5733202&quot;<br>+       height=&quot;15.766372&quot;<br>
+       ry=&quot;1.0372615&quot;<br>+       x=&quot;-5.4068875&quot;<br>+       y=&quot;-65.997124&quot;<br>+       transform=&quot;matrix(-0.55477829,0.83199823,-0.68762037,-0.72607041,0,0)&quot;<br>+       id=&quot;rect1438-0-4&quot;<br>
+       style=&quot;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.21988189;stroke-opacity:1&quot; /&gt;<br>+    &lt;rect<br>+       width=&quot;2.0588&quot;<br>+       height=&quot;12.916228&quot;<br>+       ry=&quot;0.84975183&quot;<br>
+       x=&quot;6.7647386&quot;<br>+       y=&quot;-38.278324&quot;<br>+       transform=&quot;matrix(-0.21998034,0.97550431,-0.88967727,-0.45658992,0,0)&quot;<br>+       id=&quot;rect1438-0-1-8&quot;<br>+       style=&quot;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.98759735;stroke-opacity:1&quot; /&gt;<br>
+    &lt;rect<br>+       width=&quot;0.98179615&quot;<br>+       height=&quot;13.275604&quot;<br>+       ry=&quot;0.87339497&quot;<br>+       x=&quot;-30.243309&quot;<br>+       y=&quot;-41.495876&quot;<br>+       transform=&quot;matrix(0,-1,-1,0,0,0)&quot;<br>
+       id=&quot;rect1438-1-8-5&quot;<br>+       style=&quot;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.69142139;stroke-opacity:1&quot; /&gt;<br>+    &lt;rect<br>+       width=&quot;0.97070193&quot;<br>+       height=&quot;11.568416&quot;<br>
+       ry=&quot;0.76108003&quot;<br>+       x=&quot;50.822704&quot;<br>+       y=&quot;-8.6089849&quot;<br>+       transform=&quot;matrix(0.89791652,0.44016579,0.56230073,-0.82693282,0,0)&quot;<br>+       id=&quot;rect1438-1-8-0-0&quot;<br>
+       style=&quot;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.64177793;stroke-opacity:1&quot; /&gt;<br>+    &lt;rect<br>+       width=&quot;1.6299056&quot;<br>+       height=&quot;7.7739253&quot;<br>+       ry=&quot;0.51144254&quot;<br>
+       x=&quot;72.759727&quot;<br>+       y=&quot;35.364716&quot;<br>+       transform=&quot;matrix(0.9888174,0.14913131,-0.60877492,0.79334299,0,0)&quot;<br>+       id=&quot;rect1438-0-1-7-7&quot;<br>+       style=&quot;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.68172067;stroke-opacity:1&quot; /&gt;<br>
+    &lt;path<br>+       d=&quot;m 79.67578,18.634508 a 3.2829957,3.0304577 0 1 1 -6.565992,0 3.2829957,3.0304577 0 1 1 6.565992,0 z&quot;<br>+       transform=&quot;matrix(1.5397454,0,0,1.4719643,-97.932275,-17.750188)&quot;<br>
+       id=&quot;path1603-2&quot;<br>+       style=&quot;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-opacity:1&quot; /&gt;<br>+  &lt;/g&gt;<br>+&lt;/svg&gt;<br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/__init__.py sugar-0.88.1/extensions/cpsection/accessibility/__init__.py<br>
--- sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/__init__.py    1969-12-31 21:00:00.000000000 -0300<br>+++ sugar-0.88.1/extensions/cpsection/accessibility/__init__.py    2010-06-02 15:00:27.328970000 -0300<br>
@@ -0,0 +1,25 @@<br>+# Copyright (C) 2010 Plan Ceibal<br>+#<br>+# Author: Esteban Arias &lt;<a href="mailto:earias@plan.ceibal.edu.uy">earias@plan.ceibal.edu.uy</a>&gt;<br>+# Contact information: <a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a> <br>
+# Plan Ceibal <a href="http://www.ceibal.edu.uy">http://www.ceibal.edu.uy</a><br>+#<br>+# This program is free software: you can redistribute it and/or modify<br>+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>+# (at your option) any later version.<br>+#<br>+# This program is distributed in the hope that it will be useful,<br>+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br>+# GNU General Public License for more details.<br>+#<br>+# You should have received a copy of the GNU General Public License<br>+# along with this program.  If not, see &lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.<br>
+<br>+from gettext import gettext as _<br>+<br>+CLASS = &#39;accessibility&#39;<br>+ICON = &#39;module-accessibility&#39;<br>+TITLE = _(&#39;Accessibility&#39;)<br>+<br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/Makefile.am sugar-0.88.1/extensions/cpsection/accessibility/Makefile.am<br>
--- sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/Makefile.am    1969-12-31 21:00:00.000000000 -0300<br>+++ sugar-0.88.1/extensions/cpsection/accessibility/Makefile.am    2010-06-02 15:00:27.329800000 -0300<br>
@@ -0,0 +1,6 @@<br>+sugardir = $(pkgdatadir)/extensions/cpsection/accessibility<br>+<br>+sugar_PYTHON =         \<br>+    __init__.py    \<br>+    model.py    \<br>+    view.py        <br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/model.py sugar-0.88.1/extensions/cpsection/accessibility/model.py<br>
--- sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/model.py    1969-12-31 21:00:00.000000000 -0300<br>+++ sugar-0.88.1/extensions/cpsection/accessibility/model.py    2010-06-03 11:12:50.057315000 -0300<br>
@@ -0,0 +1,55 @@<br>+# Copyright (C) 2010 Plan Ceibal<br>+#<br>+# Author: Esteban Arias &lt;<a href="mailto:earias@plan.ceibal.edu.uy">earias@plan.ceibal.edu.uy</a>&gt;<br>+# Contact information: <a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a> <br>
+# Plan Ceibal <a href="http://www.ceibal.edu.uy">http://www.ceibal.edu.uy</a><br>+#<br>+# This program is free software: you can redistribute it and/or modify<br>+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>+# (at your option) any later version.<br>+#<br>+# This program is distributed in the hope that it will be useful,<br>+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br>+# GNU General Public License for more details.<br>+#<br>+# You should have received a copy of the GNU General Public License<br>+# along with this program.  If not, see &lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.<br>
+<br>+import subprocess<br>+import gconf<br>+<br>+from gettext import gettext as _<br>+from jarabe.model import accessibility<br>+<br>+keyboard = accessibility.Keyboard()<br>+<br>+KEYWORDS = [&#39;mouse_keys&#39;, &#39;sticky_keys&#39;, &#39;bounce_keys&#39;]<br>
+<br>+def get_mouse_keys():<br>+    return keyboard.get_mouse_keys()<br>+<br>+def set_mouse_keys(activar):<br>+    keyboard.set_mouse_keys(activar)<br>+<br>+def print_mouse_keys():<br>+    print str(get_mouse_keys())<br>+<br>
+def get_sticky_keys():    <br>+    return keyboard.get_sticky_keys()<br>+<br>+def set_sticky_keys(activar):<br>+    keyboard.set_sticky_keys(activar)<br>+<br>+def print_sticky_keys():<br>+    print str(get_sticky_keys())<br>
+<br>+def get_bounce_keys():<br>+    return keyboard.get_bounce_keys()<br>+<br>+def set_bounce_keys(activar):<br>+    keyboard.set_bounce_keys(activar)<br>+<br>+def print_bounce_keys():<br>+    print str(get_bounce_keys())<br>
diff -u -r -N sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/view.py sugar-0.88.1/extensions/cpsection/accessibility/view.py<br>--- sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/view.py    1969-12-31 21:00:00.000000000 -0300<br>
+++ sugar-0.88.1/extensions/cpsection/accessibility/view.py    2010-06-02 15:00:27.316801000 -0300<br>@@ -0,0 +1,114 @@<br>+# Copyright (C) 2010 Plan Ceibal<br>+#<br>+# Author: Esteban Arias &lt;<a href="mailto:earias@plan.ceibal.edu.uy">earias@plan.ceibal.edu.uy</a>&gt;<br>
+# Contact information: <a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a> <br>+# Plan Ceibal <a href="http://www.ceibal.edu.uy">http://www.ceibal.edu.uy</a><br>+#<br>+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>+# the Free Software Foundation, either version 3 of the License, or<br>+# (at your option) any later version.<br>+#<br>+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br>+# GNU General Public License for more details.<br>+#<br>+# You should have received a copy of the GNU General Public License<br>
+# along with this program.  If not, see &lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.<br>+<br>+<br>+import gtk<br>+from gettext import gettext as _<br>+<br>+from sugar.graphics import style<br>
+<br>+from jarabe import config<br>+from jarabe.controlpanel.sectionview import SectionView<br>+from jarabe.controlpanel.inlinealert import InlineAlert<br>+<br>+class accessibility(SectionView):<br>+    def __init__(self, model, alerts=None):<br>
+        SectionView.__init__(self)<br>+<br>+        self._model = model<br>+        self.set_border_width(style.DEFAULT_SPACING * 2)<br>+        self.set_spacing(style.DEFAULT_SPACING)<br>+        group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)<br>
+     <br>+        separator_pm = gtk.HSeparator()<br>+        self.pack_start(separator_pm, expand=False)<br>+        separator_pm.show()<br>+<br>+        label_pm_teclado = gtk.Label(_(&#39;Keyboard&#39;))<br>+        label_pm_teclado.set_alignment(0, 0)<br>
+        self.pack_start(label_pm_teclado, expand=False)<br>+        label_pm_teclado.show()<br>+<br>+        self.box_pm = gtk.VBox()<br>+        self.box_pm.set_border_width(style.DEFAULT_SPACING * 2)<br>+        self.box_pm.set_spacing(style.DEFAULT_SPACING)       <br>
+<br>+        self._view_mouse_keys()<br>+        self._view_sticky_keys()<br>+        self._view_bounce_keys()<br>+<br>+        self.pack_start(self.box_pm, expand=False)<br>+        self.box_pm.show()<br>+    <br>+    def _set_mouse_keys(self, widget):<br>
+        state = widget.get_active()<br>+        self._model.set_mouse_keys(state)<br>+<br>+    def _set_sticky_keys(self, widget):<br>+        state = widget.get_active()<br>+        self._model.set_sticky_keys(state)<br>
+<br>+    def _set_bounce_keys(self, widget):<br>+        state = widget.get_active()<br>+        self._model.set_bounce_keys(state)<br>+<br>+    def undo(self):<br>+        self._model.set_mouse_keys(self.init_state_mouse_keys)<br>
+        self._model.set_sticky_keys(self.init_state_sticky_keys)<br>+        self._model.set_bounce_keys(self.init_state_bounce_keys)<br>+<br>+    def _view_mouse_keys(self):<br>+        self.btn_mouse_keys = gtk.CheckButton(_(&#39;Mouse Keys&#39;))<br>
+        self._mouse_pm_change_handler = self.btn_mouse_keys.connect(&quot;toggled&quot;, self._set_mouse_keys)<br>+        self.init_state_mouse_keys = self._model.get_mouse_keys() <br>+        self.btn_mouse_keys.set_active(self.init_state_mouse_keys)            <br>
+        self.box_pm.pack_start(self.btn_mouse_keys, True, True, 2)<br>+        self.btn_mouse_keys.show()<br>+<br>+        lbl_mouse = gtk.Label(_(&#39;Move the mouse pointer with keyboard number.&#39;))<br>+        lbl_mouse.set_alignment(0, 0)<br>
+        self.box_pm.pack_start(lbl_mouse, True, True, 2)<br>+        lbl_mouse.show()<br>+<br>+    def _view_sticky_keys(self):<br>+        self.btn_sticky_keys = gtk.CheckButton(_(&#39;Sticky Keys&#39;))<br>+        self._sticky_pm_change_handler = self.btn_sticky_keys.connect(&quot;toggled&quot;, self._set_sticky_keys)<br>
+        self.init_state_sticky_keys = self._model.get_sticky_keys()<br>+        self.btn_sticky_keys.set_active(self.init_state_sticky_keys)<br>+        self.box_pm.pack_start(self.btn_sticky_keys, True, True, 2)<br>+        self.btn_sticky_keys.show()<br>
+<br>+        lbl_sticky = gtk.Label(_(&#39;Instead of having to press two keys at once (such as CTRL + Q), you can press one key at a time.&#39;))<br>+        lbl_sticky.set_line_wrap(True)<br>+        lbl_sticky.set_alignment(0, 0)<br>
+        self.box_pm.pack_start(lbl_sticky, True, True, 2)<br>+        lbl_sticky.show()<br>+<br>+    def _view_bounce_keys(self):<br>+        self.btn_bounce_keys = gtk.CheckButton(_(&#39;Bounce Keys&#39;))<br>+        self._bounce_pm_change_handler = self.btn_bounce_keys.connect(&quot;toggled&quot;, self._set_bounce_keys)<br>
+        self.init_state_bounce_keys = self._model.get_bounce_keys()<br>+        self.btn_bounce_keys.set_active(self.init_state_bounce_keys)<br>+        self.box_pm.pack_start(self.btn_bounce_keys, True, True, 2)<br>+        self.btn_bounce_keys.show()<br>
+<br>+        lbl_bounce = gtk.Label(_(&#39;Ignore rapid, repeated keypresses of the same key.&#39;))<br>+        lbl_bounce.set_alignment(0, 0)<br>+        self.box_pm.pack_start(lbl_bounce, True, True, 2)<br>+        lbl_bounce.show()<br>
diff -u -r -N sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/Makefile.am sugar-0.88.1/extensions/cpsection/Makefile.am<br>--- sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/Makefile.am    2010-06-21 11:39:19.903055000 -0300<br>
+++ sugar-0.88.1/extensions/cpsection/Makefile.am    2010-06-21 13:17:52.794055895 -0300<br>@@ -1,6 +1,7 @@<br> SUBDIRS = \<br>     aboutme \<br>     aboutcomputer \<br>+    accessibility \<br>     datetime \<br>     frame \<br>
     journalmanagement \<br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/po/es.po sugar-0.88.1/po/es.po<br>--- sugar-0.88.1.original.con.parches.viejos/po/es.po    2010-06-21 11:38:52.234179000 -0300<br>+++ sugar-0.88.1/po/es.po    2010-06-21 12:14:22.363180560 -0300<br>
@@ -1313,6 +1313,33 @@<br> &quot;Para aplicar la restauración del Diario, se requiere reiniciar. \n\n&quot;<br> &quot;Se restaurará el respado realizado para este equipo &quot;<br> <br>+#: ../extensions/cpsection/accessibility/__init__.py:24<br>
+msgid &quot;Accessibility&quot;<br>+msgstr &quot;Accesibilidad&quot;<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:77<br>+msgid &quot;Mouse Keys&quot;<br>+msgstr &quot;Teclas del ratón&quot;<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:84<br>
+msgid &quot;Move the mouse pointer with keyboard number.&quot;<br>+msgstr &quot;Mover el puntero del ratón con un teclado numérico o con las teclas de juego.&quot;<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:90<br>
+msgid &quot;Sticky Keys&quot;<br>+msgstr &quot;Teclas pegajosas&quot;<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:97<br>+msgid &quot;Instead of having to press two keys at once (such as CTRL + Q), you can press one key at a time.&quot;<br>
+msgstr &quot;En lugar de tener que pulsar dos teclas a la vez (por ejemplo, CTRL + Q), permite pulsar una tecla a la vez.&quot;<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:104<br>+msgid &quot;Bounce Keys&quot;<br>
+msgstr &quot;Teclas de rebote&quot;<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:111<br>+msgid &quot;Ignore rapid, repeated keypresses of the same key.&quot;<br>+msgstr &quot;Ignora la presión rápida y repetida de una tecla.&quot;<br>
 <br> #~ msgid &quot;Cannot obtain data needed for registration.&quot;<br> #~ msgstr &quot;No se puede obtener datos necesarios para el registro&quot;<br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/src/jarabe/model/accessibility.py sugar-0.88.1/src/jarabe/model/accessibility.py<br>
--- sugar-0.88.1.original.con.parches.viejos/src/jarabe/model/accessibility.py    1969-12-31 21:00:00.000000000 -0300<br>+++ sugar-0.88.1/src/jarabe/model/accessibility.py    2010-07-08 09:21:33.789068870 -0300<br>@@ -0,0 +1,76 @@<br>
+# Copyright (C) 2010 Plan Ceibal<br>+#<br>+# Author: Esteban Arias &lt;<a href="mailto:earias@plan.ceibal.edu.uy">earias@plan.ceibal.edu.uy</a>&gt;<br>+# Contact information: <a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a> <br>
+# Plan Ceibal <a href="http://www.ceibal.edu.uy">http://www.ceibal.edu.uy</a><br>+#<br>+# This program is free software: you can redistribute it and/or modify<br>+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>+# (at your option) any later version.<br>+#<br>+# This program is distributed in the hope that it will be useful,<br>+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br>+# GNU General Public License for more details.<br>+#<br>+# You should have received a copy of the GNU General Public License<br>+# along with this program.  If not, see &lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.<br>
+<br>+import subprocess<br>+import gconf<br>+<br>+from gettext import gettext as _<br>+<br>+class Keyboard:<br>+<br>+    def get_mouse_keys(self):<br>+        client = gconf.client_get_default()<br>+        return client.get_bool(&quot;/desktop/sugar/accessibility/keyboard/mousekeys_enable&quot;)<br>
+<br>+    def set_mouse_keys(self, activar):<br>+        client = gconf.client_get_default()<br>+        client.set_bool(&quot;/desktop/sugar/accessibility/keyboard/mousekeys_enable&quot;, activar)<br>+        self.run_config_keyboard()<br>
+<br>+    def get_sticky_keys(self):    <br>+        client = gconf.client_get_default()<br>+        return client.get_bool(&quot;/desktop/sugar/accessibility/keyboard/stickykeys_enable&quot;)<br>+<br>+    def set_sticky_keys(self, activar):<br>
+        client = gconf.client_get_default()<br>+        client.set_bool(&quot;/desktop/sugar/accessibility/keyboard/stickykeys_enable&quot;, activar)<br>+        self.run_config_keyboard()<br>+<br>+    def get_bounce_keys(self):<br>
+        client = gconf.client_get_default()<br>+        return client.get_bool(&quot;/desktop/sugar/accessibility/keyboard/bouncekeys_enable&quot;)<br>+<br>+    def set_bounce_keys(self, activar):<br>+        client = gconf.client_get_default()<br>
+        client.set_bool(&quot;/desktop/sugar/accessibility/keyboard/bouncekeys_enable&quot;, activar)<br>+        self.run_config_keyboard()<br>+<br>+    def run_config_keyboard(self):<br>+        cmd = [&#39;ax&#39;]<br>
+        if self.get_sticky_keys():<br>+            cmd.append(&#39;+stickykeys&#39;)<br>+        else:<br>+            cmd.append(&#39;-stickykeys&#39;)<br>+        if self.get_bounce_keys():<br>+            cmd.append(&#39;+bouncekeys&#39;)<br>
+        else:<br>+            cmd.append(&#39;-bouncekeys&#39;)<br>+        if self.get_mouse_keys():<br>+            cmd += [&#39;+mousekeys&#39;, &#39;mousemaxspeed&#39;, &#39;3000&#39;, &#39;mousetimetomax&#39;, &#39;1000&#39;, &#39;-timeout&#39;, &#39;-repeatkeys&#39;]<br>
+        else:<br>+            cmd += [&#39;-mousekeys&#39;, &#39;mousemaxspeed&#39;, &#39;3000&#39;, &#39;mousetimetomax&#39;, &#39;1000&#39;, &#39;+timeout&#39;, &#39;+repeatkeys&#39;]<br>+        subprocess.call(cmd)<br>
+<br>+class AccessibilityManager:<br>+    def setup_accessibility(self):<br>+        client = gconf.client_get_default()<br>+        is_accessibility = client.dir_exists(&quot;/desktop/sugar/accessibility&quot;)<br>+        if is_accessibility:<br>
+            keyboard = Keyboard()<br>+            keyboard.run_config_keyboard()<br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/src/jarabe/model/Makefile.am sugar-0.88.1/src/jarabe/model/Makefile.am<br>--- sugar-0.88.1.original.con.parches.viejos/src/jarabe/model/Makefile.am    2010-06-21 11:38:48.943180000 -0300<br>
+++ sugar-0.88.1/src/jarabe/model/Makefile.am    2010-06-21 11:45:58.165181239 -0300<br>@@ -1,6 +1,7 @@<br> sugardir = $(pythondir)/jarabe/model<br> sugar_PYTHON =            \<br>     __init__.py        \<br>+    accessibility.py        \<br>
     buddy.py        \<br>     bundleregistry.py    \<br>     filetransfer.py        \<br><br><br>- - - <br>Sayamindu Dasgupta&#39;s works:<br><a href="http://koji.fedoraproject.org/koji/taskinfo?taskID=2268468" target="_blank">http://koji.fedoraproject.org/koji/taskinfo?taskID=2268468</a><br>