Hello community,

here is the log from the commit of package orca for openSUSE:Factory checked in 
at 2016-05-20 11:55:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/orca (Old)
 and      /work/SRC/openSUSE:Factory/.orca.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "orca"

Changes:
--------
--- /work/SRC/openSUSE:Factory/orca/orca.changes        2016-05-05 
12:10:42.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.orca.new/orca.changes   2016-05-20 
11:55:28.000000000 +0200
@@ -1,0 +2,29 @@
+Mon May 16 16:26:55 UTC 2016 - zai...@opensuse.org
+
+- Update to version 3.20.2:
+  + Performance:
+    - Take interfaces into account when looking for non-descendable
+      descendants.
+    - Cache results of shouldInferLabelFor().
+    - Cache results when filtering contents for presentation.
+    - Give findObjectInContents() smarts for embedded children.
+    - Check setting before generating spoken indentation
+      information.
+  + General:
+    - Add explicit handling for tree items.
+    - Work around another instance of app-created duplicate
+      accessible objects.
+    - Eliminate double presentation of inferred labels.
+    - Work around GNOME Shell's broken text interface for word
+      echo.
+    - Fix desktop file keywords in Slovenian translation.
+    - Handle another instance of an app becoming non-responsive.
+  + Updated translations.
+
+-------------------------------------------------------------------
+Thu May 12 20:34:40 UTC 2016 - mgo...@suse.com
+
+- Require python3-gobject-Gdk, since gdk/gtk bindings are now
+  split off from python-gobject. 
+
+-------------------------------------------------------------------

Old:
----
  orca-3.20.1.tar.xz

New:
----
  orca-3.20.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ orca.spec ++++++
--- /var/tmp/diff_new_pack.bfw1pP/_old  2016-05-20 11:55:28.000000000 +0200
+++ /var/tmp/diff_new_pack.bfw1pP/_new  2016-05-20 11:55:28.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           orca
-Version:        3.20.1
+Version:        3.20.2
 Release:        0
 Summary:        Screen reader for GNOME
 License:        LGPL-2.1+
@@ -47,6 +47,7 @@
 Requires:       py3atspi
 Requires:       python3-brlapi
 Requires:       python3-gobject
+Requires:       python3-gobject-Gdk
 Requires:       python3-louis
 Requires:       python3-speechd
 Requires:       typelib-1_0-Wnck-3_0

++++++ orca-3.20.1.tar.xz -> orca-3.20.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orca-3.20.1/ChangeLog new/orca-3.20.2/ChangeLog
--- old/orca-3.20.1/ChangeLog   2016-04-25 20:50:57.000000000 +0200
+++ new/orca-3.20.2/ChangeLog   2016-05-16 16:05:35.000000000 +0200
@@ -1,5 +1,99 @@
 # Generated by Makefile. Do not edit.
 
+2016-05-14 15:09:50 +0300 Piotr Drąg <piotrd...@gmail.com>
+
+        Updated Polish translation
+
+M      po/pl.po
+
+2016-05-12 12:04:44 -0400 Joanmarie Diggs <jdi...@igalia.com>
+
+        Also take interfaces into account when looking for non-descendable 
descendants
+
+M      src/orca/script_utilities.py
+
+2016-05-11 15:59:34 -0400 Joanmarie Diggs <jdi...@igalia.com>
+
+        Handle another instance of an app becoming non-responsive
+
+M      src/orca/script_utilities.py
+
+2016-05-11 15:40:37 -0400 Joanmarie Diggs <jdi...@igalia.com>
+
+        Add formatting strings for ROLE_TREE_ITEM
+
+M      src/orca/formatting.py
+M      src/orca/speech_generator.py
+
+2016-05-11 14:58:01 -0400 Joanmarie Diggs <jdi...@igalia.com>
+
+        Work around another instance of app-created duplicate accessible 
objects
+
+M      src/orca/speech_generator.py
+
+2016-05-08 15:10:28 -0400 Joanmarie Diggs <jdi...@igalia.com>
+
+        Eliminate another instance of double presenting an inferred label
+
+M      src/orca/scripts/web/braille_generator.py
+
+2016-05-08 14:24:55 -0400 Joanmarie Diggs <jdi...@igalia.com>
+
+        Eliminate double presentation of inferred label
+
+M      src/orca/scripts/web/script_utilities.py
+
+2016-05-04 18:28:50 -0400 Joanmarie Diggs <jdi...@igalia.com>
+
+        Cache results of shouldInferLabelFor()
+
+M      src/orca/scripts/web/script_utilities.py
+
+2016-05-04 17:31:49 -0400 Joanmarie Diggs <jdi...@igalia.com>
+
+        Cache results when filtering contents for presentation
+
+M      src/orca/scripts/web/script_utilities.py
+
+2016-05-04 16:29:03 -0400 Joanmarie Diggs <jdi...@igalia.com>
+
+        Give findObjectInContents() smarts for embeddeded children
+
+M      src/orca/scripts/web/script_utilities.py
+
+2016-05-04 14:55:36 -0400 Joanmarie Diggs <jdi...@igalia.com>
+
+        Check setting before generating spoken indentation information
+
+M      src/orca/speech_generator.py
+
+2016-05-03 12:11:26 +0200 Kalev Lember <klem...@redhat.com>
+
+        Fix desktop file keywords in Slovenian translation
+
+M      po/sl.po
+
+2016-04-25 17:53:31 -0400 Joanmarie Diggs <jdi...@igalia.com>
+
+        Hack around GNOME Shell's broken text interface for word echo
+
+M      src/orca/scripts/apps/gnome-shell/script.py
+
+2016-04-25 15:12:40 -0400 Joanmarie Diggs <jdi...@igalia.com>
+
+        Post-release version bump
+
+M      README
+M      configure.ac
+
+2016-04-25 15:02:04 -0400 Joanmarie Diggs <jdi...@igalia.com>
+
+        Prep for the 3.20.1 release
+
+M      NEWS
+M      README
+M      configure.ac
+
 2016-04-25 10:10:06 -0400 Joanmarie Diggs <jdi...@igalia.com>
 
         Fallback on name when labels fail to implement the text interface
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orca-3.20.1/NEWS new/orca-3.20.2/NEWS
--- old/orca-3.20.1/NEWS        2016-04-25 20:49:15.000000000 +0200
+++ new/orca-3.20.2/NEWS        2016-05-16 16:04:41.000000000 +0200
@@ -1,3 +1,39 @@
+3.20.2 - 16 May 2016
+
+Performance:
+
+ * Take interfaces into account when looking for non-descendable
+   descendants
+
+ * Cache results of shouldInferLabelFor()
+
+ * Cache results when filtering contents for presentation
+
+ * Give findObjectInContents() smarts for embedded children
+
+ * Check setting before generating spoken indentation information
+
+General:
+
+ * Add explicit handling for tree items
+
+ * Work around another instance of app-created duplicate accessible
+   objects
+
+ * Eliminate double presentation of inferred labels
+
+ * Work around GNOME Shell's broken text interface for word echo
+
+ * Fix desktop file keywords in Slovenian translation
+
+ * Handle another instance of an app becoming non-responsive
+
+New and updated translations (THANKS EVERYONE!!!):
+
+ pl            Polish                      Piotr Drąg
+
+=========
+
 3.20.1 - 25 April 2016
 
 Gecko:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orca-3.20.1/README new/orca-3.20.2/README
--- old/orca-3.20.1/README      2016-04-25 20:23:43.000000000 +0200
+++ new/orca-3.20.2/README      2016-05-16 15:57:18.000000000 +0200
@@ -1,4 +1,4 @@
-Orca v3.20.1
+Orca v3.20.2
 
 Introduction
 ========================================================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orca-3.20.1/configure new/orca-3.20.2/configure
--- old/orca-3.20.1/configure   2016-04-25 20:50:42.000000000 +0200
+++ new/orca-3.20.2/configure   2016-05-16 16:05:17.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for orca 3.20.1.
+# Generated by GNU Autoconf 2.69 for orca 3.20.2.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=orca>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='orca'
 PACKAGE_TARNAME='orca'
-PACKAGE_VERSION='3.20.1'
-PACKAGE_STRING='orca 3.20.1'
+PACKAGE_VERSION='3.20.2'
+PACKAGE_STRING='orca 3.20.2'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=orca'
 PACKAGE_URL=''
 
@@ -1286,7 +1286,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures orca 3.20.1 to adapt to many kinds of systems.
+\`configure' configures orca 3.20.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1352,7 +1352,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of orca 3.20.1:";;
+     short | recursive ) echo "Configuration of orca 3.20.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1464,7 +1464,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-orca configure 3.20.1
+orca configure 3.20.2
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1481,7 +1481,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by orca $as_me 3.20.1, which was
+It was created by orca $as_me 3.20.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2347,7 +2347,7 @@
 
 # Define the identity of the package.
  PACKAGE='orca'
- VERSION='3.20.1'
+ VERSION='3.20.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4947,7 +4947,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by orca $as_me 3.20.1, which was
+This file was extended by orca $as_me 3.20.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -5004,7 +5004,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-orca config.status 3.20.1
+orca config.status 3.20.2
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orca-3.20.1/configure.ac new/orca-3.20.2/configure.ac
--- old/orca-3.20.1/configure.ac        2016-04-25 20:23:35.000000000 +0200
+++ new/orca-3.20.2/configure.ac        2016-05-16 15:57:26.000000000 +0200
@@ -1,6 +1,6 @@
 m4_define([orca_major_version], [3])
 m4_define([orca_minor_version], [20])
-m4_define([orca_micro_version], [1])
+m4_define([orca_micro_version], [2])
 m4_define([orca_version],
           [orca_major_version.orca_minor_version.orca_micro_version])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orca-3.20.1/po/pl.po new/orca-3.20.2/po/pl.po
--- old/orca-3.20.1/po/pl.po    2016-04-22 19:55:19.000000000 +0200
+++ new/orca-3.20.2/po/pl.po    2016-05-16 15:56:13.000000000 +0200
@@ -16,7 +16,7 @@
 "Project-Id-Version: orca\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-02-17 22:14+0100\n"
-"PO-Revision-Date: 2016-02-17 22:15+0100\n"
+"PO-Revision-Date: 2016-05-14 15:00+0300\n"
 "Last-Translator: Piotr Drąg <piotrd...@gmail.com>\n"
 "Language-Team: Polish <gnom...@aviary.pl>\n"
 "Language: pl\n"
@@ -61,7 +61,7 @@
 #. other rolenames, and they typically act like an abbreviation.
 #: ../src/orca/braille_rolenames.py:43
 msgid "alrt"
-msgstr "alrm"
+msgstr "alrt"
 
 #. Translators: short braille for the rolename of an animation widget.
 #: ../src/orca/braille_rolenames.py:46
@@ -71,45 +71,45 @@
 #. Translators: short braille for the rolename of an arrow widget.
 #: ../src/orca/braille_rolenames.py:49
 msgid "arw"
-msgstr "strz"
+msgstr "arw"
 
 #. Translators: short braille for the rolename of a calendar widget.
 #: ../src/orca/braille_rolenames.py:52
 msgid "cal"
-msgstr "kal"
+msgstr "cal"
 
 #. Translators: short braille for the rolename of a canvas widget.
 #: ../src/orca/braille_rolenames.py:55
 msgid "cnv"
-msgstr "płt"
+msgstr "cnv"
 
 #. Translators: short braille for the rolename of a caption (e.g.,
 #. table caption).
 #: ../src/orca/braille_rolenames.py:59
 msgid "cptn"
-msgstr "nagł"
+msgstr "cptn"
 
 #. Translators: short braille for the rolename of a checkbox.
 #. Translators: short braille for the rolename of a check menu item.
 #: ../src/orca/braille_rolenames.py:62 ../src/orca/braille_rolenames.py:65
 msgid "chk"
-msgstr "polwyb"
+msgstr "chk"
 
 #. Translators: short braille for the rolename of a color chooser.
 #: ../src/orca/braille_rolenames.py:68
 msgid "clrchsr"
-msgstr "wybkol"
+msgstr "clrchsr"
 
 #. Translators: short braille for the rolename of a column header.
 #. Translators: short braille for the rolename of a table column header.
 #: ../src/orca/braille_rolenames.py:71 ../src/orca/braille_rolenames.py:230
 msgid "colhdr"
-msgstr "nagkol"
+msgstr "colhdr"
 
 #. Translators: short braille for the rolename of a combo box.
 #: ../src/orca/braille_rolenames.py:74
 msgid "cbo"
-msgstr "lstrozw"
+msgstr "cbo"
 
 #. Translators: short braille for the rolename of a date editor.
 #: ../src/orca/braille_rolenames.py:77
@@ -120,13 +120,13 @@
 #. Translators: short braille for the rolename of a icon.
 #: ../src/orca/braille_rolenames.py:80 ../src/orca/braille_rolenames.py:131
 msgid "icn"
-msgstr "ikn"
+msgstr "icn"
 
 #. Translators: short braille for the rolename of a desktop frame.
 #. Translators: short braille for the rolename of a frame.
 #: ../src/orca/braille_rolenames.py:83 ../src/orca/braille_rolenames.py:119
 msgid "frm"
-msgstr "rmk"
+msgstr "frm"
 
 #. Translators: short braille for the rolename of a dial.
 #. You should attempt to treat it as an abbreviation of
@@ -135,17 +135,17 @@
 #: ../src/orca/braille_rolenames.py:89
 msgctxt "shortbraille"
 msgid "dial"
-msgstr "poten"
+msgstr "dial"
 
 #. Translators: short braille for the rolename of a dialog.
 #: ../src/orca/braille_rolenames.py:92
 msgid "dlg"
-msgstr "okndlg"
+msgstr "dlg"
 
 #. Translators: short braille for the rolename of a directory pane.
 #: ../src/orca/braille_rolenames.py:95
 msgid "dip"
-msgstr "pankat"
+msgstr "dip"
 
 #. Translators: short braille for the rolename of an HTML document frame.
 #. Translators: short braille for the rolename of an html container.
@@ -156,22 +156,22 @@
 #. Translators: short braille for the rolename of a drawing area.
 #: ../src/orca/braille_rolenames.py:101
 msgid "draw"
-msgstr "plrys"
+msgstr "draw"
 
 #. Translators: short braille for the rolename of a file chooser.
 #: ../src/orca/braille_rolenames.py:104
 msgid "fchsr"
-msgstr "wybplk"
+msgstr "fchsr"
 
 #. Translators: short braille for the rolename of a filler.
 #: ../src/orca/braille_rolenames.py:107
 msgid "flr"
-msgstr "wypłn"
+msgstr "flr"
 
 #. Translators: short braille for the rolename of a font chooser.
 #: ../src/orca/braille_rolenames.py:110
 msgid "fnt"
-msgstr "wybczcn"
+msgstr "fnt"
 
 #. Translators: short braille for the rolename of a form.
 #. You should attempt to treat it as an abbreviation of
@@ -185,37 +185,37 @@
 #. Translators: short braille for the rolename of a glass pane.
 #: ../src/orca/braille_rolenames.py:122
 msgid "gpn"
-msgstr "obszkl"
+msgstr "gpn"
 
 #. Translators: short braille for the rolename of a heading.
 #: ../src/orca/braille_rolenames.py:125
 msgid "hdng"
-msgstr "nagł"
+msgstr "hdng"
 
 #. Translators: short braille for the rolename of a image.
 #: ../src/orca/braille_rolenames.py:134
 msgid "img"
-msgstr "obrz"
+msgstr "img"
 
 #. Translators: short braille for the rolename of an internal frame.
 #: ../src/orca/braille_rolenames.py:137
 msgid "ifrm"
-msgstr "ramwew"
+msgstr "ifrm"
 
 #. Translators: short braille for the rolename of a label.
 #: ../src/orca/braille_rolenames.py:140
 msgid "lbl"
-msgstr "etyk"
+msgstr "lbl"
 
 #. Translators: short braille for the rolename of a layered pane.
 #: ../src/orca/braille_rolenames.py:143
 msgid "lyrdpn"
-msgstr "pnlwrstw"
+msgstr "lyrdpn"
 
 #. Translators: short braille for the rolename of a link.
 #: ../src/orca/braille_rolenames.py:146
 msgid "lnk"
-msgstr "odn"
+msgstr "lnk"
 
 #. Translators: short braille for the rolename of a list.
 #: ../src/orca/braille_rolenames.py:149
@@ -225,7 +225,7 @@
 #. Translators: short braille for the rolename of a list item.
 #: ../src/orca/braille_rolenames.py:152
 msgid "lstitm"
-msgstr "elemlis"
+msgstr "lstitm"
 
 #. Translators: short braille for the rolename of a menu.
 #: ../src/orca/braille_rolenames.py:155
@@ -235,27 +235,27 @@
 #. Translators: short braille for the rolename of a menu bar.
 #: ../src/orca/braille_rolenames.py:158
 msgid "mnubr"
-msgstr "pasmen"
+msgstr "mnubr"
 
 #. Translators: short braille for the rolename of a menu item.
 #: ../src/orca/braille_rolenames.py:161
 msgid "mnuitm"
-msgstr "elmen"
+msgstr "mnuitm"
 
 #. Translators: short braille for the rolename of an option pane.
 #: ../src/orca/braille_rolenames.py:164
 msgid "optnpn"
-msgstr "polopc"
+msgstr "optnpn"
 
 #. Translators: short braille for the rolename of a page tab.
 #: ../src/orca/braille_rolenames.py:167
 msgid "pgt"
-msgstr "karstr"
+msgstr "pgt"
 
 #. Translators: short braille for the rolename of a page tab list.
 #: ../src/orca/braille_rolenames.py:170
 msgid "tblst"
-msgstr "liskrt"
+msgstr "tblst"
 
 #. Translators: short braille for the rolename of a panel.
 #: ../src/orca/braille_rolenames.py:173
@@ -265,83 +265,83 @@
 #. Translators: short braille for the rolename of a password field.
 #: ../src/orca/braille_rolenames.py:176
 msgid "pwd"
-msgstr "has"
+msgstr "pwd"
 
 #. Translators: short braille for the rolename of a popup menu.
 #: ../src/orca/braille_rolenames.py:179
 msgid "popmnu"
-msgstr "mnuwsk"
+msgstr "popmnu"
 
 #. Translators: short braille for the rolename of a progress bar.
 #: ../src/orca/braille_rolenames.py:182
 msgid "pgbar"
-msgstr "paspos"
+msgstr "pgbar"
 
 #. Translators: short braille for the rolename of a push button.
 #: ../src/orca/braille_rolenames.py:185
 msgid "btn"
-msgstr "przyc"
+msgstr "btn"
 
 #. Translators: short braille for the rolename of a radio button.
 #: ../src/orca/braille_rolenames.py:188
 msgid "radio"
-msgstr "poljedwyb"
+msgstr "radio"
 
 #. Translators: short braille for the rolename of a radio menu item.
 #: ../src/orca/braille_rolenames.py:191
 msgid "rdmnuitm"
-msgstr "eljednok"
+msgstr "rdmnuitm"
 
 #. Translators: short braille for the rolename of a root pane.
 #: ../src/orca/braille_rolenames.py:194
 msgid "rtpn"
-msgstr "obgłw"
+msgstr "rtpn"
 
 #. Translators: short braille for the rolename of a row header.
 #. Translators: short braille for the rolename of a table row header.
 #: ../src/orca/braille_rolenames.py:197 ../src/orca/braille_rolenames.py:233
 msgid "rwhdr"
-msgstr "nagwier"
+msgstr "rwhdr"
 
 #. Translators: short braille for the rolename of a scroll bar.
 #: ../src/orca/braille_rolenames.py:200
 msgid "scbr"
-msgstr "pasprzew"
+msgstr "scbr"
 
 #. Translators: short braille for the rolename of a scroll pane.
 #: ../src/orca/braille_rolenames.py:203
 msgid "scpn"
-msgstr "obprzew"
+msgstr "scpn"
 
 #. Translators: short braille for the rolename of a section (e.g., in html).
 #: ../src/orca/braille_rolenames.py:206
 msgid "sctn"
-msgstr "sekc"
+msgstr "sctn"
 
 #. Translators: short braille for the rolename of a separator.
 #: ../src/orca/braille_rolenames.py:209
 msgid "seprtr"
-msgstr "separ"
+msgstr "seprtr"
 
 #. Translators: short braille for the rolename of a slider.
 #: ../src/orca/braille_rolenames.py:212
 msgid "sldr"
-msgstr "suw"
+msgstr "sldr"
 
 #. Translators: short braille for the rolename of a split pane.
 #: ../src/orca/braille_rolenames.py:215
 msgid "spltpn"
-msgstr "obpodz"
+msgstr "spltpn"
 
 #. Translators: short braille for the rolename of a spin button.
 #: ../src/orca/braille_rolenames.py:218
 msgid "spin"
-msgstr "wejlicz"
+msgstr "spin"
 
 #. Translators: short braille for the rolename of a statusbar.
 #: ../src/orca/braille_rolenames.py:221
 msgid "statbr"
-msgstr "passtan"
+msgstr "statbr"
 
 #. Translators: short braille for the rolename of a table.
 #: ../src/orca/braille_rolenames.py:224
@@ -351,12 +351,12 @@
 #. Translators: short braille for the rolename of a table cell.
 #: ../src/orca/braille_rolenames.py:227
 msgid "cll"
-msgstr "kmrk"
+msgstr "cll"
 
 #. Translators: short braille for the rolename of a tear off menu item.
 #: ../src/orca/braille_rolenames.py:236
 msgid "tomnuitm"
-msgstr "elmenodp"
+msgstr "tomnuitm"
 
 #. Translators: short braille for the rolename of a terminal.
 #: ../src/orca/braille_rolenames.py:239
@@ -366,67 +366,67 @@
 #. Translators: short braille for the rolename of a text entry field.
 #: ../src/orca/braille_rolenames.py:242
 msgid "txt"
-msgstr "tkst"
+msgstr "txt"
 
 #. Translators: short braille for the rolename of a toggle button.
 #: ../src/orca/braille_rolenames.py:245
 msgid "tglbtn"
-msgstr "przeł"
+msgstr "tglbtn"
 
 #. Translators: short braille for the rolename of a toolbar.
 #: ../src/orca/braille_rolenames.py:248
 msgid "tbar"
-msgstr "pasnarz"
+msgstr "tbar"
 
 #. Translators: short braille for the rolename of a tooltip.
 #: ../src/orca/braille_rolenames.py:251
 msgid "tip"
-msgstr "podp"
+msgstr "tip"
 
 #. Translators: short braille for the rolename of a tree.
 #: ../src/orca/braille_rolenames.py:254
 msgid "tre"
-msgstr "drz"
+msgstr "tre"
 
 #. Translators: short braille for the rolename of a tree table.
 #: ../src/orca/braille_rolenames.py:257
 msgid "trtbl"
-msgstr "tabdrz"
+msgstr "trtbl"
 
 #. Translators: short braille for when the rolename of an object is unknown.
 #: ../src/orca/braille_rolenames.py:260
 msgid "unk"
-msgstr "niezn"
+msgstr "unk"
 
 #. Translators: short braille for the rolename of a viewport.
 #: ../src/orca/braille_rolenames.py:263
 msgid "vwprt"
-msgstr "oknprzeg"
+msgstr "vwprt"
 
 #. Translators: short braille for the rolename of a window.
 #: ../src/orca/braille_rolenames.py:266
 msgid "wnd"
-msgstr "okn"
+msgstr "wnd"
 
 #. Translators: short braille for the rolename of a header.
 #: ../src/orca/braille_rolenames.py:269
 msgid "hdr"
-msgstr "nagł"
+msgstr "hdr"
 
 #. Translators: short braille for the rolename of a footer.
 #: ../src/orca/braille_rolenames.py:272
 msgid "ftr"
-msgstr "stopk"
+msgstr "ftr"
 
 #. Translators: short braille for the rolename of a paragraph.
 #: ../src/orca/braille_rolenames.py:275
 msgid "para"
-msgstr "akap"
+msgstr "para"
 
 #. Translators: short braille for the rolename of a application.
 #: ../src/orca/braille_rolenames.py:278
 msgid "app"
-msgstr "prog"
+msgstr "app"
 
 #. Translators: short braille for the rolename of a autocomplete.
 #: ../src/orca/braille_rolenames.py:281
@@ -436,12 +436,12 @@
 #. Translators: short braille for the rolename of an editbar.
 #: ../src/orca/braille_rolenames.py:284
 msgid "edtbr"
-msgstr "pased"
+msgstr "edtbr"
 
 #. Translators: short braille for the rolename of an embedded component.
 #: ../src/orca/braille_rolenames.py:287
 msgid "emb"
-msgstr "kompos"
+msgstr "emb"
 
 #. Translators: These is the name of a braille translation table. To learn more
 #. about braille translation tables, see http://en.wikipedia.org/wiki/Braille.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orca-3.20.1/po/sl.po new/orca-3.20.2/po/sl.po
--- old/orca-3.20.1/po/sl.po    2016-04-22 19:55:19.000000000 +0200
+++ new/orca-3.20.2/po/sl.po    2016-05-12 02:25:58.000000000 +0200
@@ -41,7 +41,7 @@
 
 #: ../orca.desktop.in.h:4
 msgid "screen reader;speech;braille;"
-msgstr "govor;zaslonski bralnik;Braillova pisava;brajica;povečevalnik"
+msgstr "govor;zaslonski bralnik;Braillova pisava;brajica;povečevalnik;"
 
 #. Translators: short braille for the rolename of an invalid GUI object.
 #. We strive to keep it under three characters to preserve real estate.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orca-3.20.1/src/orca/formatting.py 
new/orca-3.20.2/src/orca/formatting.py
--- old/orca-3.20.1/src/orca/formatting.py      2016-04-25 16:10:51.000000000 
+0200
+++ new/orca-3.20.2/src/orca/formatting.py      2016-05-12 02:40:13.000000000 
+0200
@@ -434,6 +434,11 @@
             'unfocused': 'labelAndName',
             'basicWhereAmI': 'labelAndName'
             },
+        pyatspi.ROLE_TREE_ITEM: {
+            'focused': 'expandableState',
+            'unfocused': '(labelOrName or displayedText) + pause + 
expandableState + pause + positionInList',
+            'basicWhereAmI': '(labelOrName or displayedText) + roleName + 
pause + positionInList + pause + expandableState + (nodeLevel or nestingLevel)'
+            },
     },
 
     ####################################################################
@@ -703,6 +708,11 @@
         pyatspi.ROLE_TOOL_BAR: {
             'unfocused': '[Component(obj, asString(labelOrName + roleName))]',
             },
+        pyatspi.ROLE_TREE_ITEM: {
+            'unfocused': '((substring and ' + BRAILLE_TEXT + ')\
+                          or ([Component(obj, asString(labelOrName + 
expandableState))]\
+                              + (nestingLevel and [Region(" " + 
asString(nestingLevel))])))',
+            },
         #pyatspi.ROLE_TREE: 'default'
         #pyatspi.ROLE_TREE_TABLE: 'default'
         #pyatspi.ROLE_WINDOW: 'default'
@@ -829,6 +839,10 @@
             'focused': 'expandableState or toggleState',
             'unfocused': 'roleName + (expandableState or toggleState) + 
availability',
         },
+        pyatspi.ROLE_TREE_ITEM: {
+            'focused': 'expandableState',
+            'unfocused': 'roleName + expandableState + positionInSet',
+        },
     },
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orca-3.20.1/src/orca/orca_platform.py 
new/orca-3.20.2/src/orca/orca_platform.py
--- old/orca-3.20.1/src/orca/orca_platform.py   2016-04-25 20:50:46.000000000 
+0200
+++ new/orca-3.20.2/src/orca/orca_platform.py   2016-05-16 16:05:21.000000000 
+0200
@@ -28,7 +28,7 @@
 
 # $ORCA_MAJOR_VERSION.$ORCA_MINOR_VERSION.$ORCA_MICRO_VERSION
 #
-version     = "3.20.1"
+version     = "3.20.2"
 
 # "--prefix" parameter used when configuring the build.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orca-3.20.1/src/orca/script_utilities.py 
new/orca-3.20.2/src/orca/script_utilities.py
--- old/orca-3.20.1/src/orca/script_utilities.py        2016-04-25 
20:21:31.000000000 +0200
+++ new/orca-3.20.2/src/orca/script_utilities.py        2016-05-16 
15:56:05.000000000 +0200
@@ -1962,8 +1962,24 @@
         roles = [pyatspi.ROLE_PAGE_TAB_LIST,
                  pyatspi.ROLE_SPLIT_PANE,
                  pyatspi.ROLE_TABLE]
-        isMatch = lambda x: x and x.getRole() in roles
-        return pyatspi.findDescendant(root, isMatch) is not None
+
+        def isMatch(x):
+            if not x:
+                return False
+
+            if x.getRole() in roles:
+                return True
+
+            if 'Table' in pyatspi.listInterfaces(x):
+                return x.childCount > 50
+
+        match = pyatspi.findDescendant(root, isMatch)
+        if match:
+            msg = "INFO: %s has descendant %s" % (root, match)
+            debug.println(debug.LEVEL_INFO, msg, True)
+            return True
+
+        return False
 
     def unrelatedLabels(self, root, onlyShowing=True):
         """Returns a list containing all the unrelated (i.e., have no
@@ -3212,6 +3228,7 @@
     def selectedChildren(self, obj):
         try:
             selection = obj.querySelection()
+            count = selection.nSelectedChildren
         except NotImplementedError:
             msg = "INFO: %s does not implement the selection interface" % obj
             debug.println(debug.LEVEL_INFO, msg, True)
@@ -3221,7 +3238,6 @@
             debug.println(debug.LEVEL_INFO, msg, True)
             return []
 
-        count = selection.nSelectedChildren
         msg = "INFO: %s reports %i selected children" % (obj, count)
         debug.println(debug.LEVEL_INFO, msg, True)
 
@@ -3256,6 +3272,7 @@
     def selectedChildCount(self, obj):
         try:
             selection = obj.querySelection()
+            count = selection.nSelectedChildren
         except NotImplementedError:
             msg = "INFO: %s does not implement the selection interface" % obj
             debug.println(debug.LEVEL_INFO, msg, True)
@@ -3265,7 +3282,6 @@
             debug.println(debug.LEVEL_INFO, msg, True)
             return 0
 
-        count = selection.nSelectedChildren
         msg = "INFO: %s reports %i selected children" % (obj, count)
         debug.println(debug.LEVEL_INFO, msg, True)
         return count
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/orca-3.20.1/src/orca/scripts/apps/gnome-shell/script.py 
new/orca-3.20.2/src/orca/scripts/apps/gnome-shell/script.py
--- old/orca-3.20.1/src/orca/scripts/apps/gnome-shell/script.py 2016-04-22 
15:51:14.000000000 +0200
+++ new/orca-3.20.2/src/orca/scripts/apps/gnome-shell/script.py 2016-05-12 
02:25:58.000000000 +0200
@@ -193,3 +193,20 @@
                     self._activeDialogLabels[hash(label)] = label.name
 
         clutter.Script.onFocusedChanged(self, event)
+
+    def echoPreviousWord(self, obj, offset=None):
+        try:
+            text = obj.queryText()
+        except NotImplementedError:
+            return False
+
+        if not offset:
+            if text.caretOffset == -1:
+                offset = text.characterCount - 1
+            else:
+                offset = text.caretOffset - 1
+
+        if offset == 0:
+            return False
+
+        return super().echoPreviousWord(obj, offset)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/orca-3.20.1/src/orca/scripts/web/braille_generator.py 
new/orca-3.20.2/src/orca/scripts/web/braille_generator.py
--- old/orca-3.20.1/src/orca/scripts/web/braille_generator.py   2016-04-22 
19:55:19.000000000 +0200
+++ new/orca-3.20.2/src/orca/scripts/web/braille_generator.py   2016-05-12 
02:25:58.000000000 +0200
@@ -117,6 +117,16 @@
 
         return super()._generateLabel(obj, **args)
 
+    def _generateLabelAndName(self, obj, **args):
+        if self._script.utilities.isTextBlockElement(obj):
+            return []
+
+        role = args.get('role', obj.getRole())
+        if role == pyatspi.ROLE_LABEL and 'Text' in 
pyatspi.listInterfaces(obj):
+            return []
+
+        return super()._generateLabelAndName(obj, **args)
+
     def _generateExpandedEOCs(self, obj, **args):
         """Returns the expanded embedded object characters for an object."""
         result = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orca-3.20.1/src/orca/scripts/web/script_utilities.py 
new/orca-3.20.2/src/orca/scripts/web/script_utilities.py
--- old/orca-3.20.1/src/orca/scripts/web/script_utilities.py    2016-04-22 
19:55:19.000000000 +0200
+++ new/orca-3.20.2/src/orca/scripts/web/script_utilities.py    2016-05-12 
02:25:58.000000000 +0200
@@ -76,6 +76,8 @@
         self._actualLabels = {}
         self._displayedLabelText = {}
         self._roleDescription = {}
+        self._shouldFilter = {}
+        self._shouldInferLabelFor = {}
         self._text = {}
         self._tag = {}
         self._treatAsDiv = {}
@@ -126,6 +128,8 @@
         self._actualLabels = {}
         self._displayedLabelText = {}
         self._roleDescription = {}
+        self._shouldFilter = {}
+        self._shouldInferLabelFor = {}
         self._tag = {}
         self._treatAsDiv = {}
         self._posinset = {}
@@ -697,6 +701,15 @@
         if match and match[0] and match[0] in contents:
             return contents.index(match[0])
 
+        if not self.isTextBlockElement(obj):
+            return -1
+
+        child = self.getChildAtOffset(obj, offset)
+        if child and not self.isTextBlockElement(child):
+            matches = [x for x in contents if x[0] == child]
+            if len(matches) == 1:
+                return contents.index(matches[0])
+
         return -1
 
     def isNonEntryTextWidget(self, obj):
@@ -1863,6 +1876,11 @@
             if not obj:
                 return False
 
+            rv = self._shouldFilter.get(hash(obj))
+            if rv is not None:
+                return rv
+
+            rv = True
             if (self.isTextBlockElement(obj) and not string.strip()) \
                or self.isEmptyAnchor(obj) \
                or (self.hasNoSize(obj) and not string.strip()) \
@@ -1870,19 +1888,22 @@
                or self.isOffScreenLabel(obj) \
                or self.isUselessImage(obj) \
                or self.isLabellingContents(x, contents):
-                return False
+                rv = False
 
             widget = self.isInferredLabelForContents(x, contents)
             alwaysFilter = [pyatspi.ROLE_RADIO_BUTTON, pyatspi.ROLE_CHECK_BOX]
             if widget and (inferLabels or widget.getRole() in alwaysFilter):
-                return False
+                rv = False
 
-            return True
+            self._shouldFilter[hash(obj)] = rv
+            return rv
 
         if len(contents) == 1:
             return contents
 
-        return list(filter(_include, contents))
+        rv = list(filter(_include, contents))
+        self._shouldFilter = {}
+        return rv
 
     def needsSeparator(self, lastChar, nextChar):
         if lastChar.isspace() or nextChar.isspace():
@@ -2321,45 +2342,42 @@
         return rv
 
     def shouldInferLabelFor(self, obj):
+        if not self.inDocumentContent() or self.inTopLevelWebApp():
+            return False
+
+        rv = self._shouldInferLabelFor.get(hash(obj))
+        if rv and not self._script._lastCommandWasCaretNav:
+            return not self._script.inSayAll()
+        if rv == False:
+            return rv
+
         try:
+            role = obj.getRole()
             name = obj.name
         except:
-            msg = "WEB: Exception getting name for %s" % obj
+            msg = "WEB: Exception getting role and name for %s" % obj
             debug.println(debug.LEVEL_INFO, msg, True)
+            rv = False
         else:
             if name:
-                return False
-
-        if self._script.inSayAll():
-            return False
+                rv = False
+            elif not rv:
+                roles =  [pyatspi.ROLE_CHECK_BOX,
+                          pyatspi.ROLE_COMBO_BOX,
+                          pyatspi.ROLE_ENTRY,
+                          pyatspi.ROLE_LIST_BOX,
+                          pyatspi.ROLE_PASSWORD_TEXT,
+                          pyatspi.ROLE_RADIO_BUTTON]
+                rv = role in roles and not self.displayedLabel(obj)
 
-        if not self.inDocumentContent() or self.inTopLevelWebApp():
-            return False
-        try:
-            role = obj.getRole()
-        except:
-            msg = "WEB: Exception getting role for %s" % obj
-            debug.println(debug.LEVEL_INFO, msg, True)
-            return False
+        self._shouldInferLabelFor[hash(obj)] = rv
 
         # TODO - JD: This is private.
         if self._script._lastCommandWasCaretNav \
            and role not in [pyatspi.ROLE_RADIO_BUTTON, pyatspi.ROLE_CHECK_BOX]:
             return False
 
-        roles =  [pyatspi.ROLE_CHECK_BOX,
-                  pyatspi.ROLE_COMBO_BOX,
-                  pyatspi.ROLE_ENTRY,
-                  pyatspi.ROLE_LIST_BOX,
-                  pyatspi.ROLE_PASSWORD_TEXT,
-                  pyatspi.ROLE_RADIO_BUTTON]
-        if role not in roles:
-            return False
-
-        if self.displayedLabel(obj):
-            return False
-
-        return True
+        return rv
 
     def displayedLabel(self, obj):
         if not (obj and self.inDocumentContent(obj)):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/orca-3.20.1/src/orca/speech_generator.py 
new/orca-3.20.2/src/orca/speech_generator.py
--- old/orca-3.20.1/src/orca/speech_generator.py        2016-04-25 
15:42:03.000000000 +0200
+++ new/orca-3.20.2/src/orca/speech_generator.py        2016-05-12 
02:25:58.000000000 +0200
@@ -1221,6 +1221,9 @@
         - obj: the text object.
         """
 
+        if not _settingsManager.getSetting('enableSpeechIndentation'):
+            return []
+
         line, caretOffset, startOffset = self._script.getTextLineAtCaret(obj)
         description = self._script.utilities.indentationDescription(line)
         if not description:
@@ -1498,18 +1501,29 @@
         commonAncestor = self._script.utilities.commonAncestor(priorObj, obj)
         try:
             role = commonAncestor.getRole()
+            name = commonAncestor.name
         except:
-            pass
+            role = None
+            name = None
         else:
             if role == pyatspi.ROLE_COMBO_BOX:
                 return []
 
+        def _isCommonAncestor(x):
+            if not (name and role):
+                return False
+            return x and x.getRole() == role and x.name == name
+
         skipRoles = args.get('skipRoles', [])
+        skipRoles.append(pyatspi.ROLE_TREE_ITEM)
         stopAtRoles = args.get('stopAtRoles', [])
         stopAtRoles.append(pyatspi.ROLE_APPLICATION)
         if obj != commonAncestor:
             parent = obj.parent
             while parent and not parent in [commonAncestor, parent.parent]:
+                if _isCommonAncestor(parent):
+                    break
+
                 parentRole = parent.getRole()
                 if parentRole in stopAtRoles:
                     break


Reply via email to