commit/nvda: 11 new changesets

  • From: commits-noreply@xxxxxxxxxxxxx
  • To: nvda-addons-commits@xxxxxxxxxxxxx
  • Date: Sun, 31 Aug 2014 10:23:43 -0000

11 new commits in nvda:

https://bitbucket.org/nvdaaddonteam/nvda/commits/25b6979bab12/
Changeset:   25b6979bab12
Branch:      None
User:        mdcurran
Date:        2014-08-21 09:10:09
Summary:     IA2 live region support: Correct a typo that was causing added 
live regions to be announced.

Affected #:  1 file

diff --git a/nvdaHelper/remote/ia2LiveRegions.cpp 
b/nvdaHelper/remote/ia2LiveRegions.cpp
index 99b4d5e..773f94b 100644
--- a/nvdaHelper/remote/ia2LiveRegions.cpp
+++ b/nvdaHelper/remote/ia2LiveRegions.cpp
@@ -273,9 +273,9 @@ void CALLBACK winEventProcHook(HWINEVENTHOOK hookID, DWORD 
eventID, HWND hwnd, l
                                // Check for useful container-live on parent, 
as if missing or off, then child must be the root 
                                // Firstly, we assume we are the root of the 
region and therefore should ignore the event
                                ignoreShowEvent=true;
-                               IAccessible2* paccParent=NULL;
-                               
if(pacc2->QueryInterface(IID_IAccessible2,(void**)&paccParent)==S_OK) {
-                                       
if(paccParent->get_attributes(&attribs)==S_OK&&attribs) {
+                               IAccessible2* pacc2Parent=NULL;
+                               
if(pdispParent->QueryInterface(IID_IAccessible2,(void**)&pacc2Parent)==S_OK) {
+                                       
if(pacc2Parent->get_attributes(&attribs)==S_OK&&attribs) {
                                                
IA2AttribsToMap(attribs,attribsMap);
                                                SysFreeString(attribs);
                                                
i=attribsMap.find(L"container-live");
@@ -284,7 +284,7 @@ void CALLBACK winEventProcHook(HWINEVENTHOOK hookID, DWORD 
eventID, HWND hwnd, l
                                                        ignoreShowEvent=false;
                                                }
                                        }
-                                       paccParent->Release();
+                                       pacc2Parent->Release();
                                }
                        }
                        pdispParent->Release();


https://bitbucket.org/nvdaaddonteam/nvda/commits/293ba9c854de/
Changeset:   293ba9c854de
Branch:      None
User:        mdcurran
Date:        2014-08-22 03:56:51
Summary:     IA2 live region support: when fetchingthe text from descendants to 
be announced in a region update, do not descend into objects who's aria-live is 
explicitly "off".

Affected #:  1 file

diff --git a/nvdaHelper/remote/ia2LiveRegions.cpp 
b/nvdaHelper/remote/ia2LiveRegions.cpp
index 773f94b..df389fe 100644
--- a/nvdaHelper/remote/ia2LiveRegions.cpp
+++ b/nvdaHelper/remote/ia2LiveRegions.cpp
@@ -23,6 +23,17 @@ http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 
 using namespace std;
 
+bool fetchIA2Attributes(IAccessible2* pacc2, map<wstring,wstring>& attribsMap) 
{
+       BSTR attribs=NULL;
+       pacc2->get_attributes(&attribs);
+       if(!attribs) {
+               return false;
+       }
+       IA2AttribsToMap(attribs,attribsMap);
+       SysFreeString(attribs);
+       return true;
+}
+
 IAccessible2* findAriaAtomic(IAccessible2* pacc2,map<wstring,wstring>& 
attribsMap) {
        map<wstring,wstring>::iterator i=attribsMap.find(L"atomic");
        bool atomic=(i!=attribsMap.end()&&i->second.compare(L"true")==0);
@@ -38,12 +49,8 @@ IAccessible2* findAriaAtomic(IAccessible2* 
pacc2,map<wstring,wstring>& attribsMa
                        if(pdispParent) {
                                IAccessible2* pacc2Parent=NULL;
                                
if(pdispParent->QueryInterface(IID_IAccessible2,(void**)&pacc2Parent)==S_OK&&pacc2Parent)
 {
-                                       BSTR parentAttribs=NULL;
-                                       
pacc2Parent->get_attributes(&parentAttribs);
-                                       if(parentAttribs) {
-                                               map<wstring,wstring> 
parentAttribsMap;
-                                               
IA2AttribsToMap(parentAttribs,parentAttribsMap);
-                                               SysFreeString(parentAttribs);
+                                       map<wstring,wstring> parentAttribsMap;
+                                       
if(fetchIA2Attributes(pacc2Parent,parentAttribsMap)) {
                                                
pacc2Atomic=findAriaAtomic(pacc2Parent,parentAttribsMap);
                                        }
                                        pacc2Parent->Release();
@@ -71,8 +78,13 @@ bool getTextFromIAccessible(wstring& textBuf, IAccessible2* 
pacc2, bool useNewTe
                                if(varChildren[i].vt==VT_DISPATCH) {
                                        IAccessible2* pacc2Child=NULL;
                                        
if(varChildren[i].pdispVal&&varChildren[i].pdispVal->QueryInterface(IID_IAccessible2,(void**)&pacc2Child)==S_OK)
 {
-                                               
if(getTextFromIAccessible(textBuf,pacc2Child)) {
-                                                       gotText=true;
+                                               map<wstring,wstring> 
childAttribsMap;
+                                               
fetchIA2Attributes(pacc2Child,childAttribsMap);
+                                               auto 
i=childAttribsMap.find(L"live");
+                                               
if(i==childAttribsMap.end()||i->second.compare(L"off")!=0) {
+                                                       
if(getTextFromIAccessible(textBuf,pacc2Child)) {
+                                                               gotText=true;
+                                                       }
                                                }
                                                pacc2Child->Release();
                                        }
@@ -110,8 +122,13 @@ bool getTextFromIAccessible(wstring& textBuf, 
IAccessible2* pacc2, bool useNewTe
                                                
if(paccHypertext->get_hyperlink(hyperlinkIndex,&paccHyperlink)==S_OK) {
                                                        IAccessible2* 
pacc2Child=NULL;
                                                        
if(paccHyperlink->QueryInterface(IID_IAccessible2,(void**)&pacc2Child)==S_OK) {
-                                                               
if(getTextFromIAccessible(textBuf,pacc2Child)) {
-                                                                       
gotText=true;
+                                                               
map<wstring,wstring> childAttribsMap;
+                                                               
fetchIA2Attributes(pacc2Child,childAttribsMap);
+                                                               auto 
i=childAttribsMap.find(L"live");
+                                                               
if(i==childAttribsMap.end()||i->second.compare(L"off")!=0) {
+                                                                       
if(getTextFromIAccessible(textBuf,pacc2Child)) {
+                                                                               
gotText=true;
+                                                                       }
                                                                }
                                                                charAdded=true;
                                                                
pacc2Child->Release();
@@ -217,18 +234,12 @@ void CALLBACK winEventProcHook(HWINEVENTHOOK hookID, 
DWORD eventID, HWND hwnd, l
        pserv->Release();
        if(!pacc2) return;
        //Retreave the IAccessible2 attributes, and if the object is not a live 
region then ignore the event.
-       BSTR attribs=NULL;
-       pacc2->get_attributes(&attribs);
-       if(!attribs) {
+       map<wstring,wstring> attribsMap;
+       if(!fetchIA2Attributes(pacc2,attribsMap)) {
                pacc2->Release();
                return;
        }
-       map<wstring,wstring> attribsMap;
-       IA2AttribsToMap(attribs,attribsMap);
-       SysFreeString(attribs);
-       attribs=NULL;
-       map<wstring,wstring>::iterator i;
-       i=attribsMap.find(L"container-live");
+       auto i=attribsMap.find(L"container-live");
        bool 
live=(i!=attribsMap.end()&&(i->second.compare(L"polite")==0||i->second.compare(L"assertive")==0||i->second.compare(L"rude")==0));
        if(!live) {
                pacc2->Release();
@@ -275,9 +286,7 @@ void CALLBACK winEventProcHook(HWINEVENTHOOK hookID, DWORD 
eventID, HWND hwnd, l
                                ignoreShowEvent=true;
                                IAccessible2* pacc2Parent=NULL;
                                
if(pdispParent->QueryInterface(IID_IAccessible2,(void**)&pacc2Parent)==S_OK) {
-                                       
if(pacc2Parent->get_attributes(&attribs)==S_OK&&attribs) {
-                                               
IA2AttribsToMap(attribs,attribsMap);
-                                               SysFreeString(attribs);
+                                       
if(fetchIA2Attributes(pacc2Parent,attribsMap)) {
                                                
i=attribsMap.find(L"container-live");
                                                
if(i!=attribsMap.end()&&(i->second.compare(L"polite")==0||i->second.compare(L"assertive")==0||i->second.compare(L"rude")==0))
 {
                                                        // There is a valid 
container-live that is not off, so therefore the child is definitly not the root


https://bitbucket.org/nvdaaddonteam/nvda/commits/af96d9f2f557/
Changeset:   af96d9f2f557
Branch:      None
User:        mdcurran
Date:        2014-08-22 04:12:08
Summary:     Merge branch 't4169' into next. Incubates #4169

Affected #:  1 file

diff --git a/nvdaHelper/remote/ia2LiveRegions.cpp 
b/nvdaHelper/remote/ia2LiveRegions.cpp
index 99b4d5e..773f94b 100644
--- a/nvdaHelper/remote/ia2LiveRegions.cpp
+++ b/nvdaHelper/remote/ia2LiveRegions.cpp
@@ -273,9 +273,9 @@ void CALLBACK winEventProcHook(HWINEVENTHOOK hookID, DWORD 
eventID, HWND hwnd, l
                                // Check for useful container-live on parent, 
as if missing or off, then child must be the root 
                                // Firstly, we assume we are the root of the 
region and therefore should ignore the event
                                ignoreShowEvent=true;
-                               IAccessible2* paccParent=NULL;
-                               
if(pacc2->QueryInterface(IID_IAccessible2,(void**)&paccParent)==S_OK) {
-                                       
if(paccParent->get_attributes(&attribs)==S_OK&&attribs) {
+                               IAccessible2* pacc2Parent=NULL;
+                               
if(pdispParent->QueryInterface(IID_IAccessible2,(void**)&pacc2Parent)==S_OK) {
+                                       
if(pacc2Parent->get_attributes(&attribs)==S_OK&&attribs) {
                                                
IA2AttribsToMap(attribs,attribsMap);
                                                SysFreeString(attribs);
                                                
i=attribsMap.find(L"container-live");
@@ -284,7 +284,7 @@ void CALLBACK winEventProcHook(HWINEVENTHOOK hookID, DWORD 
eventID, HWND hwnd, l
                                                        ignoreShowEvent=false;
                                                }
                                        }
-                                       paccParent->Release();
+                                       pacc2Parent->Release();
                                }
                        }
                        pdispParent->Release();


https://bitbucket.org/nvdaaddonteam/nvda/commits/07c195f64f00/
Changeset:   07c195f64f00
Branch:      None
User:        mdcurran
Date:        2014-08-22 04:12:41
Summary:     Merge branch 't4405' into next. Incubates #4405

Affected #:  1 file

diff --git a/nvdaHelper/remote/ia2LiveRegions.cpp 
b/nvdaHelper/remote/ia2LiveRegions.cpp
index 773f94b..df389fe 100644
--- a/nvdaHelper/remote/ia2LiveRegions.cpp
+++ b/nvdaHelper/remote/ia2LiveRegions.cpp
@@ -23,6 +23,17 @@ http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 
 using namespace std;
 
+bool fetchIA2Attributes(IAccessible2* pacc2, map<wstring,wstring>& attribsMap) 
{
+       BSTR attribs=NULL;
+       pacc2->get_attributes(&attribs);
+       if(!attribs) {
+               return false;
+       }
+       IA2AttribsToMap(attribs,attribsMap);
+       SysFreeString(attribs);
+       return true;
+}
+
 IAccessible2* findAriaAtomic(IAccessible2* pacc2,map<wstring,wstring>& 
attribsMap) {
        map<wstring,wstring>::iterator i=attribsMap.find(L"atomic");
        bool atomic=(i!=attribsMap.end()&&i->second.compare(L"true")==0);
@@ -38,12 +49,8 @@ IAccessible2* findAriaAtomic(IAccessible2* 
pacc2,map<wstring,wstring>& attribsMa
                        if(pdispParent) {
                                IAccessible2* pacc2Parent=NULL;
                                
if(pdispParent->QueryInterface(IID_IAccessible2,(void**)&pacc2Parent)==S_OK&&pacc2Parent)
 {
-                                       BSTR parentAttribs=NULL;
-                                       
pacc2Parent->get_attributes(&parentAttribs);
-                                       if(parentAttribs) {
-                                               map<wstring,wstring> 
parentAttribsMap;
-                                               
IA2AttribsToMap(parentAttribs,parentAttribsMap);
-                                               SysFreeString(parentAttribs);
+                                       map<wstring,wstring> parentAttribsMap;
+                                       
if(fetchIA2Attributes(pacc2Parent,parentAttribsMap)) {
                                                
pacc2Atomic=findAriaAtomic(pacc2Parent,parentAttribsMap);
                                        }
                                        pacc2Parent->Release();
@@ -71,8 +78,13 @@ bool getTextFromIAccessible(wstring& textBuf, IAccessible2* 
pacc2, bool useNewTe
                                if(varChildren[i].vt==VT_DISPATCH) {
                                        IAccessible2* pacc2Child=NULL;
                                        
if(varChildren[i].pdispVal&&varChildren[i].pdispVal->QueryInterface(IID_IAccessible2,(void**)&pacc2Child)==S_OK)
 {
-                                               
if(getTextFromIAccessible(textBuf,pacc2Child)) {
-                                                       gotText=true;
+                                               map<wstring,wstring> 
childAttribsMap;
+                                               
fetchIA2Attributes(pacc2Child,childAttribsMap);
+                                               auto 
i=childAttribsMap.find(L"live");
+                                               
if(i==childAttribsMap.end()||i->second.compare(L"off")!=0) {
+                                                       
if(getTextFromIAccessible(textBuf,pacc2Child)) {
+                                                               gotText=true;
+                                                       }
                                                }
                                                pacc2Child->Release();
                                        }
@@ -110,8 +122,13 @@ bool getTextFromIAccessible(wstring& textBuf, 
IAccessible2* pacc2, bool useNewTe
                                                
if(paccHypertext->get_hyperlink(hyperlinkIndex,&paccHyperlink)==S_OK) {
                                                        IAccessible2* 
pacc2Child=NULL;
                                                        
if(paccHyperlink->QueryInterface(IID_IAccessible2,(void**)&pacc2Child)==S_OK) {
-                                                               
if(getTextFromIAccessible(textBuf,pacc2Child)) {
-                                                                       
gotText=true;
+                                                               
map<wstring,wstring> childAttribsMap;
+                                                               
fetchIA2Attributes(pacc2Child,childAttribsMap);
+                                                               auto 
i=childAttribsMap.find(L"live");
+                                                               
if(i==childAttribsMap.end()||i->second.compare(L"off")!=0) {
+                                                                       
if(getTextFromIAccessible(textBuf,pacc2Child)) {
+                                                                               
gotText=true;
+                                                                       }
                                                                }
                                                                charAdded=true;
                                                                
pacc2Child->Release();
@@ -217,18 +234,12 @@ void CALLBACK winEventProcHook(HWINEVENTHOOK hookID, 
DWORD eventID, HWND hwnd, l
        pserv->Release();
        if(!pacc2) return;
        //Retreave the IAccessible2 attributes, and if the object is not a live 
region then ignore the event.
-       BSTR attribs=NULL;
-       pacc2->get_attributes(&attribs);
-       if(!attribs) {
+       map<wstring,wstring> attribsMap;
+       if(!fetchIA2Attributes(pacc2,attribsMap)) {
                pacc2->Release();
                return;
        }
-       map<wstring,wstring> attribsMap;
-       IA2AttribsToMap(attribs,attribsMap);
-       SysFreeString(attribs);
-       attribs=NULL;
-       map<wstring,wstring>::iterator i;
-       i=attribsMap.find(L"container-live");
+       auto i=attribsMap.find(L"container-live");
        bool 
live=(i!=attribsMap.end()&&(i->second.compare(L"polite")==0||i->second.compare(L"assertive")==0||i->second.compare(L"rude")==0));
        if(!live) {
                pacc2->Release();
@@ -275,9 +286,7 @@ void CALLBACK winEventProcHook(HWINEVENTHOOK hookID, DWORD 
eventID, HWND hwnd, l
                                ignoreShowEvent=true;
                                IAccessible2* pacc2Parent=NULL;
                                
if(pdispParent->QueryInterface(IID_IAccessible2,(void**)&pacc2Parent)==S_OK) {
-                                       
if(pacc2Parent->get_attributes(&attribs)==S_OK&&attribs) {
-                                               
IA2AttribsToMap(attribs,attribsMap);
-                                               SysFreeString(attribs);
+                                       
if(fetchIA2Attributes(pacc2Parent,attribsMap)) {
                                                
i=attribsMap.find(L"container-live");
                                                
if(i!=attribsMap.end()&&(i->second.compare(L"polite")==0||i->second.compare(L"assertive")==0||i->second.compare(L"rude")==0))
 {
                                                        // There is a valid 
container-live that is not off, so therefore the child is definitly not the root


https://bitbucket.org/nvdaaddonteam/nvda/commits/7a85683ba189/
Changeset:   7a85683ba189
Branch:      None
User:        mdcurran
Date:        2014-08-26 08:02:13
Summary:     MSHTML NVDAObjects: Only make objects witha  role of document into 
a Body object if its HTML uniqueNumber matches its document's body's 
uniqueNumber. this ensures that framesets in framesets are not accidentially 
classed as Body -- causing them to get their own virtualBuffers etc.
Also, Body.parent should only skip the parent if the parent is not itself an 
MSHTML NVDAObject. This stops us skipping over the embedding frame within the 
parent document.

Affected #:  1 file

diff --git a/source/NVDAObjects/IAccessible/MSHTML.py 
b/source/NVDAObjects/IAccessible/MSHTML.py
index a6bf4ee..a8e6ffb 100644
--- a/source/NVDAObjects/IAccessible/MSHTML.py
+++ b/source/NVDAObjects/IAccessible/MSHTML.py
@@ -386,7 +386,12 @@ class MSHTML(IAccessible):
                        if nodeName=="SELECT" and 
self.windowStyle&winUser.WS_POPUP:
                                clsList.append(PopupList)
                        elif nodeNamesToNVDARoles.get(nodeName) == 
controlTypes.ROLE_DOCUMENT:
-                               clsList.append(Body)
+                               try:
+                                       
isBodyNode=self.HTMLNodeUniqueNumber==self.HTMLNode.document.body.uniqueNumber
+                               except (COMError,NameError):
+                                       isBodyNode=False
+                               if isBodyNode:
+                                       clsList.append(Body)
                        elif nodeName == "OBJECT":
                                clsList.append(Object)
                        elif nodeName=="FIELDSET":
@@ -879,11 +884,12 @@ class Fieldset(MSHTML):
 class Body(MSHTML):
 
        def _get_parent(self):
-               # The parent of the body accessible is an irrelevant client 
object (description: MSAAHTML Registered Handler).
+               # The parent of the body accessible may be an irrelevant client 
object (description: MSAAHTML Registered Handler).
                # This object isn't returned when requesting OBJID_CLIENT, nor 
is it returned as a child of its parent.
                # Therefore, eliminate it from the ancestry completely.
+               # However it is possible that this body is a child document of 
a parent frame. In this case don't skip it.
                parent = super(Body, self).parent
-               if parent:
+               if parent and not isinstance(parent,MSHTML):
                        return parent.parent
                else:
                        return parent


https://bitbucket.org/nvdaaddonteam/nvda/commits/b0a827b5946c/
Changeset:   b0a827b5946c
Branch:      None
User:        mdcurran
Date:        2014-08-26 08:05:47
Summary:     Merge branch 't4418' into next. Incubates #4418

Affected #:  2 files

diff --git a/source/NVDAObjects/IAccessible/MSHTML.py 
b/source/NVDAObjects/IAccessible/MSHTML.py
index a6bf4ee..a8e6ffb 100644
--- a/source/NVDAObjects/IAccessible/MSHTML.py
+++ b/source/NVDAObjects/IAccessible/MSHTML.py
@@ -386,7 +386,12 @@ class MSHTML(IAccessible):
                        if nodeName=="SELECT" and 
self.windowStyle&winUser.WS_POPUP:
                                clsList.append(PopupList)
                        elif nodeNamesToNVDARoles.get(nodeName) == 
controlTypes.ROLE_DOCUMENT:
-                               clsList.append(Body)
+                               try:
+                                       
isBodyNode=self.HTMLNodeUniqueNumber==self.HTMLNode.document.body.uniqueNumber
+                               except (COMError,NameError):
+                                       isBodyNode=False
+                               if isBodyNode:
+                                       clsList.append(Body)
                        elif nodeName == "OBJECT":
                                clsList.append(Object)
                        elif nodeName=="FIELDSET":
@@ -879,11 +884,12 @@ class Fieldset(MSHTML):
 class Body(MSHTML):
 
        def _get_parent(self):
-               # The parent of the body accessible is an irrelevant client 
object (description: MSAAHTML Registered Handler).
+               # The parent of the body accessible may be an irrelevant client 
object (description: MSAAHTML Registered Handler).
                # This object isn't returned when requesting OBJID_CLIENT, nor 
is it returned as a child of its parent.
                # Therefore, eliminate it from the ancestry completely.
+               # However it is possible that this body is a child document of 
a parent frame. In this case don't skip it.
                parent = super(Body, self).parent
-               if parent:
+               if parent and not isinstance(parent,MSHTML):
                        return parent.parent
                else:
                        return parent

diff --git a/source/NVDAObjects/window/excel.py 
b/source/NVDAObjects/window/excel.py
index bd6a8ba..c92845a 100755
--- a/source/NVDAObjects/window/excel.py
+++ b/source/NVDAObjects/window/excel.py
@@ -234,7 +234,12 @@ class ExcelWorksheet(ExcelBase):
                return True
 
        def fetchAssociatedHeaderCellText(self,cell,columnHeader=False):
-               cellRegion=cell.excelCellObject.currentRegion
+               # #4409: cell.currentRegion fails if the worksheet is protected.
+               try:
+                       cellRegion=cell.excelCellObject.currentRegion
+               except COMError:
+                       log.debugWarning("Possibly protected sheet")
+                       return None
                if cellRegion.count==1:
                        minRow=maxRow=minColumn=maxColumn=None
                else:


https://bitbucket.org/nvdaaddonteam/nvda/commits/a9285f6a512f/
Changeset:   a9285f6a512f
Branch:      None
User:        mdcurran
Date:        2014-08-27 04:04:33
Summary:     Merge branch 'master' into next

Affected #:  1 file

diff --git a/source/NVDAObjects/window/winword.py 
b/source/NVDAObjects/window/winword.py
index b0e16e6..2b69d97 100755
--- a/source/NVDAObjects/window/winword.py
+++ b/source/NVDAObjects/window/winword.py
@@ -368,9 +368,19 @@ class WordDocumentTextInfo(textInfos.TextInfo):
                class ControlField(textInfos.ControlField): 
                        def get(d,name,default=None):
                                if name=="table-rowheadertext":
-                                       return 
self.obj.fetchAssociatedHeaderCellText(self._rangeObj.cells[1],False)
+                                       try:
+                                               cell=self._rangeObj.cells[1]
+                                       except IndexError:
+                                               log.debugWarning("no cells for 
table row, possibly on end of cell mark")
+                                               return 
super(ControlField,d).get(name,default)
+                                       return 
self.obj.fetchAssociatedHeaderCellText(cell,False)
                                elif name=="table-columnheadertext":
-                                       return 
self.obj.fetchAssociatedHeaderCellText(self._rangeObj.cells[1],True)
+                                       try:
+                                               cell=self._rangeObj.cells[1]
+                                       except IndexError:
+                                               log.debugWarning("no cells for 
table row, possibly on end of cell mark")
+                                               return 
super(ControlField,d).get(name,default)
+                                       return 
self.obj.fetchAssociatedHeaderCellText(cell,True)
                                else:
                                        return 
super(ControlField,d).get(name,default)
                newField=ControlField()
@@ -965,14 +975,16 @@ class 
WordDocument(EditableTextWithoutAutoSelectDetection, Window):
 
        def script_nextParagraph(self,gesture):
                info=self.makeTextInfo(textInfos.POSITION_CARET)
-               info.move(textInfos.UNIT_PARAGRAPH,1)
+               # #4375: can't use self.move here as it may check 
document.chracters.count which can take for ever on large documents.
+               info._rangeObj.move(wdParagraph,1)
                info.updateCaret()
                
self._caretScriptPostMovedHelper(textInfos.UNIT_PARAGRAPH,gesture,None)
        script_nextParagraph.resumeSayAllMode=sayAllHandler.CURSOR_CARET
 
        def script_previousParagraph(self,gesture):
                info=self.makeTextInfo(textInfos.POSITION_CARET)
-               info.move(textInfos.UNIT_PARAGRAPH,-1)
+               # #4375: keeping cemetrical with nextParagraph script. 
+               info._rangeObj.move(wdParagraph,-1)
                info.updateCaret()
                
self._caretScriptPostMovedHelper(textInfos.UNIT_PARAGRAPH,gesture,None)
        script_previousParagraph.resumeSayAllMode=sayAllHandler.CURSOR_CARET


https://bitbucket.org/nvdaaddonteam/nvda/commits/2a19ce9d2669/
Changeset:   2a19ce9d2669
Branch:      None
User:        nvdaaddonteam-admin
Date:        2014-08-27 12:00:14
Summary:     Merge branch 't4130' into next. Incubates #4130

* t4130:
  UserGuide: Include braille controle type and state abbreviations.
  User Guide: added a list of common braille abbreviations used in NVDA (ticket 
4130).

Affected #:  1 file

diff --git a/user_docs/en/userGuide.t2t b/user_docs/en/userGuide.t2t
index 77966c9..97833fa 100644
--- a/user_docs/en/userGuide.t2t
+++ b/user_docs/en/userGuide.t2t
@@ -780,6 +780,43 @@ This means that you do not have to scroll the display at 
the end of each line ev
 This may allow for more fluent reading of large amounts of text.
 It is disabled by default.
 
++++ Braille control type and state abbreviations +++
+In order to fit as much information as possible on a braille display, The 
folowing abbreviations have been defined to indicate control type and state.
+
+|| Abbreviation | Control type |
+| btn | displayed in braille for an object which is a button |
+| cbo | displayed in braille for an object which is a combo box |
+| chk | displayed in braille for an object which is a check box |
+| dlg | displayed in braille for an object which is a dialog |
+| edt | displayed in braille for an object which is an editable text field |
+| gra | displayed in braille for an object which is a graphic |
+| cN | table column number n, e.g. c1, c2. |
+| rN | table row number n, e.g. r1, r2. |
+| hN | heading at level n, e.g. h1, h2. |
+| lnk | displayed in braille for an object which is a link |
+| lst | displayed in braille for an object which is a list |
+| vlnk | visited link |
+| mnu | displayed in braille for an object which is a menu |
+| mnubar | displayed in braille for an object which is a menu bar |
+| rbtn | displayed in braille for an object which is a radio button |
+| tb | displayed in braille for an object which is a table |
+| tv | displayed in braille for an object which is a treeview |
+| lv N | displayed in braille when an object (e.g. a tree view item) has a 
hierarchical level |
+| ----- | displayed in braille for an object which is a seperator |
+
+The following state indicators are also defined:
+|| Abbreviation | Control state |
+| ... | displayed in braille when an object supports autocompletion |
+| ( ) | displayed in braille when an object (e.g. a check box) is not checked |
+| (x) | displayed in braille when an object (e.g. a check box) is checked |
+| (-) | displayed in braille when an object (e.g. a check box) is half checked 
|
+| - | displayed in braille when an object (e.g. a tree view item) is 
collapsible |
+| + | displayed in braille when an object (e.g. a tree view item) is 
Expandable |
+| clk | displayed in braille when an object is clickable |
+| ro | displayed in braille when an object (e.g. an editable text field) is 
read-only |
+| sel | displayed in braille when an object is selected |
+| submnu | displayed in braille when an object has a popup (usually a 
sub-menu) |
+
 +++ Keyboard Settings (NVDA+control+k) +++
 This dialog box is found in the Preferences menu, under "Keyboard settings...".
 It contains the following options:


https://bitbucket.org/nvdaaddonteam/nvda/commits/49e58c74c6cb/
Changeset:   49e58c74c6cb
Branch:      None
User:        nvdaaddonteam-admin
Date:        2014-08-27 20:50:21
Summary:     Merge branch 't4130' into next. Incubates #4130

* t4130:
  userGuide.t2t: braille control type and state indicators.

Affected #:  1 file

diff --git a/user_docs/en/userGuide.t2t b/user_docs/en/userGuide.t2t
index 97833fa..c97d16b 100644
--- a/user_docs/en/userGuide.t2t
+++ b/user_docs/en/userGuide.t2t
@@ -780,43 +780,6 @@ This means that you do not have to scroll the display at 
the end of each line ev
 This may allow for more fluent reading of large amounts of text.
 It is disabled by default.
 
-+++ Braille control type and state abbreviations +++
-In order to fit as much information as possible on a braille display, The 
folowing abbreviations have been defined to indicate control type and state.
-
-|| Abbreviation | Control type |
-| btn | displayed in braille for an object which is a button |
-| cbo | displayed in braille for an object which is a combo box |
-| chk | displayed in braille for an object which is a check box |
-| dlg | displayed in braille for an object which is a dialog |
-| edt | displayed in braille for an object which is an editable text field |
-| gra | displayed in braille for an object which is a graphic |
-| cN | table column number n, e.g. c1, c2. |
-| rN | table row number n, e.g. r1, r2. |
-| hN | heading at level n, e.g. h1, h2. |
-| lnk | displayed in braille for an object which is a link |
-| lst | displayed in braille for an object which is a list |
-| vlnk | visited link |
-| mnu | displayed in braille for an object which is a menu |
-| mnubar | displayed in braille for an object which is a menu bar |
-| rbtn | displayed in braille for an object which is a radio button |
-| tb | displayed in braille for an object which is a table |
-| tv | displayed in braille for an object which is a treeview |
-| lv N | displayed in braille when an object (e.g. a tree view item) has a 
hierarchical level |
-| ----- | displayed in braille for an object which is a seperator |
-
-The following state indicators are also defined:
-|| Abbreviation | Control state |
-| ... | displayed in braille when an object supports autocompletion |
-| ( ) | displayed in braille when an object (e.g. a check box) is not checked |
-| (x) | displayed in braille when an object (e.g. a check box) is checked |
-| (-) | displayed in braille when an object (e.g. a check box) is half checked 
|
-| - | displayed in braille when an object (e.g. a tree view item) is 
collapsible |
-| + | displayed in braille when an object (e.g. a tree view item) is 
Expandable |
-| clk | displayed in braille when an object is clickable |
-| ro | displayed in braille when an object (e.g. an editable text field) is 
read-only |
-| sel | displayed in braille when an object is selected |
-| submnu | displayed in braille when an object has a popup (usually a 
sub-menu) |
-
 +++ Keyboard Settings (NVDA+control+k) +++
 This dialog box is found in the Preferences menu, under "Keyboard settings...".
 It contains the following options:
@@ -1919,6 +1882,43 @@ Please see the [BRLTTY key tables documentation 
http://mielke.cc/brltty/doc/driv
 | Route to braille cell | route (bring cursor to character) |
 %kc:endInclude
 
++ Braille control type and state abbreviations +
+In order to fit as much information as possible on a braille display, The 
folowing abbreviations have been defined to indicate control type and state.
+
+|| Abbreviation | Control type |
+| btn | button |
+| cbo | combo box |
+| chk | check box |
+| dlg | dialog |
+| edt | editable text field |
+| gra | graphic |
+| cN | table column number n, e.g. c1, c2. |
+| rN | table row number n, e.g. r1, r2. |
+| hN | heading at level n, e.g. h1, h2. |
+| lnk | link |
+| lst | list |
+| vlnk | visited link |
+| mnu | menu |
+| mnubar | menu bar |
+| rbtn | radio button |
+| tb | table |
+| tv | treeview |
+| lv N | a tree view item has a hierarchical level N|
+| ``-----`` | seperator |
+
+The following state indicators are also defined:
+|| Abbreviation | Control state |
+| ... | displayed when an object supports autocompletion |
+| ( ) | displayed when an object (e.g. a check box) is not checked |
+| (x) | displayed when an object (e.g. a check box) is checked |
+| (-) | displayed when an object (e.g. a check box) is half checked |
+| - | displayed when an object (e.g. a tree view item) is collapsible |
+| + | displayed when an object (e.g. a tree view item) is Expandable |
+| clk | displayed when an object is clickable |
+| ro | displayed when an object (e.g. an editable text field) is read-only |
+| sel | displayed when an object is selected |
+| submnu | displayed when an object has a popup (usually a sub-menu) |
+
 + Advanced Topics +
 
 ++ Advanced Customization of Symbol Pronunciation ++


https://bitbucket.org/nvdaaddonteam/nvda/commits/affbe5c21fa4/
Changeset:   affbe5c21fa4
Branch:      master
User:        nvdaaddonteam-admin
Date:        2014-08-31 12:17:48
Summary:     removed stale .bzrignore.

Affected #:  1 file

diff --git a/.bzrignore b/.bzrignore
deleted file mode 100644
index 13deb32..0000000
--- a/.bzrignore
+++ /dev/null
@@ -1,51 +0,0 @@
-source/locale/*/LC_MESSAGES/*.mo
-source/comInterfaces/*.py
-source/*.log
-source/*.ini
-source/userConfig
-build
-build_debug
-dist
-dist_installer
-*.dll
-*.exe
-source/**/*.manifest
-source/synthDrivers/espeak-data
-source/lib
-source/lib64
-source/typelibs
-source/configobj.py
-source/validate.py
-installer/waves
-source/images/*.ico
-source/louis
-source/synthDrivers/dict.dat
-source/waves
-*.obj
-*.exp
-*.lib
-*_I.c
-*_P.c
-*_C.c
-*_S.c
-dlldata.c
-*.pdb
-ia2.h
-nvdaController.h
-nvdaHelper/**/nvdaControllerInternal.h
-nvdaHelper/**/vbuf.h
-nvdaHelper/**/vbufRemote.h
-nvdaHelper/local/displayModel.h
-nvdaHelper/remote/displayModelRemote.h
-include/*
-.sconsign.dblite
-user_docs/*/*.html
-extras/controllerClient/x64
-source/_buildVersion.py
-user_docs/*/keyCommands.t2t
-output
-source/brailleDisplayDrivers/handyTech
-./developerGuide.html
-user_docs/build.t2tConf
-launcher/nvda_logo.wav
-uninstaller/UAC.nsh


https://bitbucket.org/nvdaaddonteam/nvda/commits/9f5b7674904f/
Changeset:   9f5b7674904f
Branch:      next
User:        nvdaaddonteam-admin
Date:        2014-08-31 12:22:46
Summary:     Merge branch 'master' into next

* master:
  removed stale .bzrignore.

Affected #:  1 file

diff --git a/.bzrignore b/.bzrignore
deleted file mode 100644
index 13deb32..0000000
--- a/.bzrignore
+++ /dev/null
@@ -1,51 +0,0 @@
-source/locale/*/LC_MESSAGES/*.mo
-source/comInterfaces/*.py
-source/*.log
-source/*.ini
-source/userConfig
-build
-build_debug
-dist
-dist_installer
-*.dll
-*.exe
-source/**/*.manifest
-source/synthDrivers/espeak-data
-source/lib
-source/lib64
-source/typelibs
-source/configobj.py
-source/validate.py
-installer/waves
-source/images/*.ico
-source/louis
-source/synthDrivers/dict.dat
-source/waves
-*.obj
-*.exp
-*.lib
-*_I.c
-*_P.c
-*_C.c
-*_S.c
-dlldata.c
-*.pdb
-ia2.h
-nvdaController.h
-nvdaHelper/**/nvdaControllerInternal.h
-nvdaHelper/**/vbuf.h
-nvdaHelper/**/vbufRemote.h
-nvdaHelper/local/displayModel.h
-nvdaHelper/remote/displayModelRemote.h
-include/*
-.sconsign.dblite
-user_docs/*/*.html
-extras/controllerClient/x64
-source/_buildVersion.py
-user_docs/*/keyCommands.t2t
-output
-source/brailleDisplayDrivers/handyTech
-./developerGuide.html
-user_docs/build.t2tConf
-launcher/nvda_logo.wav
-uninstaller/UAC.nsh

Repository URL: https://bitbucket.org/nvdaaddonteam/nvda/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.

Other related posts: