Changeset 2436
- Timestamp:
- 10/22/08 08:56:33 (3 months ago)
- Location:
- trunk
- Files:
-
- 6 added
- 20 modified
-
. (modified) (5 props)
-
.bzrignore (modified) (1 diff)
-
contributors.txt (modified) (1 diff)
-
dependencies.txt (modified) (1 diff)
-
source/NVDAObjects/IAccessible/__init__.py (modified) (1 diff)
-
source/NVDAObjects/IAccessible/edit.py (modified) (3 diffs)
-
source/NVDAObjects/IAccessible/scintilla.py (modified) (1 diff)
-
source/NVDAObjects/IAccessible/winConsole.py (modified) (4 diffs)
-
source/NVDAObjects/__init__.py (modified) (5 diffs)
-
source/api.py (modified) (2 diffs)
-
source/appModules/_default.py (modified) (18 diffs, 1 prop)
-
source/appModules/_default_desktop.kbd (modified) (1 diff)
-
source/braille.py (added)
-
source/brailleDisplayDrivers (added)
-
source/brailleDisplayDrivers/brltty.py (added)
-
source/brailleDisplayDrivers/handyTech.py (added)
-
source/brailleDisplayDrivers/noBraille.py (added)
-
source/config/__init__.py (modified) (1 diff)
-
source/core.py (modified) (3 diffs)
-
source/cursorManager.py (modified) (3 diffs)
-
source/gui/__init__.py (modified) (2 diffs)
-
source/gui/settingsDialogs.py (modified) (2 diffs)
-
source/ui.py (added)
-
source/virtualBuffers/__init__.py (modified) (4 diffs)
-
source/winUser.py (modified) (1 diff)
-
user_docs/whats new.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property bzr:revision-info
-
old new 1 timestamp: 2008-10- 19 12:46:33.749000072+10001 timestamp: 2008-10-22 16:01:26.638000011 +1000 2 2 committer: James Teh <jamie@jantrid.net> 3 3 properties:
-
- Property bzr:ancestry:v3-list-QlpoOTFBWSZTWbrL2vUAAB1VgAAQABCAQDrrnqAgAFCgaaGRkxBoTIJ6mmaNRwhndFAoNhZjh_YY4a01fOg1ulgNNC2UrzPdXXEnDpX8XckU4UJC6y9r1A..
-
old new 10 10 jamie@jantrid.net-20080810101432-te9chzpil51jwjtd 11 11 mick@kulgan.net-20080830094018-0azn22n453on23ve 12 jamie@jantrid.net-20081022055144-zd6v96gjzz94ript
-
- Property bzr:revision-id:v3-list-QlpoOTFBWSZTWbrL2vUAAB1VgAAQABCAQDrrnqAgAFCgaaGRkxBoTIJ6mmaNRwhndFAoNhZjh_YY4a01fOg1ulgNNC2UrzPdXXEnDpX8XckU4UJC6y9r1A..
-
old new 205 205 2233 jamie@jantrid.net-20081017062242-58oc9d002nihw3hu 206 206 2234 jamie@jantrid.net-20081019024633-rahtbtmbuenafjfz 207 2235 jamie@jantrid.net-20081022060126-xpk6izde74viwa2x
-
- Property bzr:file-ids
-
old new 1 .bzrignore bzrignore-20080122021806-b5wx35icn5gbvszl-1 2 contributors.txt 198@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:contributers.txt 3 dependencies.txt 46@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:dependencies.txt 1 4 source/NVDAObjects/IAccessible/__init__.py 683@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2FNVDAObjects%2FIAccessible%2F__init__.py 5 source/NVDAObjects/IAccessible/edit.py 885@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2FNVDAObjects%2FIAccessible%2Fedit.py 6 source/NVDAObjects/IAccessible/scintilla.py 829@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2FNVDAObjects%2FIAccessible%2Fscintilla.py 7 source/NVDAObjects/IAccessible/winConsole.py 683@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2FNVDAObjects%2FIAccessible%2FwinConsole.py 8 source/NVDAObjects/__init__.py 683@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2FNVDAObjects%2F__init__.py 9 source/api.py 46@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2Fapi.py 10 source/appModules/_default.py 92@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2FappModules%2F_default.py 11 source/appModules/_default_desktop.kbd 250@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2FappModules%2F_default_desktop.kbd 12 source/braille.py braille.py-20080908070240-tjwqjsv7drp1kt8c-1 13 source/brailleDisplayDrivers brailledisplaydriver-20080908070031-15dxcuiuxfazjt1r-1 14 source/brailleDisplayDrivers/brltty.py brltty.py-20080908070031-15dxcuiuxfazjt1r-2 15 source/brailleDisplayDrivers/handyTech.py handytech.py-20080908070031-15dxcuiuxfazjt1r-3 16 source/brailleDisplayDrivers/noBraille.py nobraille.py-20080910042115-rerfty4bob1khp07-1 17 source/config/__init__.py 46@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2Fconfig%2F__init__.py 18 source/core.py 49@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2Fcore.py 19 source/cursorManager.py cursormanager.py-20080207040300-ipt2bssoovrlbxu3-1 20 source/gui/__init__.py 46@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2Fgui%2F__init__.py 21 source/gui/settingsDialogs.py 299@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2Fgui%2FsettingsDialogs.py 22 source/ui.py ui.py-20081016230451-m40g09eaveji2gc1-1 23 source/virtualBuffers/__init__.py 1675@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2FvirtualBuffers%2F__init__.py 24 source/winUser.py 118@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2FwinUser.py 2 25 user_docs/whats%20new.txt 559@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:user_docs%2Fwhats%20new.txt
-
- Property bzr:text-parents
-
old new 1 .bzrignore jamie@jantrid.net-20081017054024-0oe0fgir33i85tgw 2 contributors.txt jamie@jantrid.net-20081022055144-zd6v96gjzz94ript 3 source/NVDAObjects/IAccessible/edit.py jamie@jantrid.net-20080919040644-l4egvyfapi06165s 4 source/NVDAObjects/IAccessible/scintilla.py jamie@jantrid.net-20080919094929-ymezqee11a6x08li 5 source/NVDAObjects/IAccessible/winConsole.py jamie@jantrid.net-20081009103022-jrppjqnsih453f8t 6 source/NVDAObjects/__init__.py jamie@jantrid.net-20081017071138-nnx7cpe551ces0jv 7 source/api.py jamie@jantrid.net-20081015080013-bvvtqd32f7ixishz 8 source/appModules/_default.py jamie@jantrid.net-20081022020632-181tsda36doh4rt7 9 source/appModules/_default_desktop.kbd jamie@jantrid.net-20081022020632-181tsda36doh4rt7 10 source/braille.py jamie@jantrid.net-20081022032828-6ps5dhsekdbtf653 11 source/brailleDisplayDrivers jamie@jantrid.net-20080909070310-wzxe2pwk1umpy7c6 12 source/brailleDisplayDrivers/brltty.py jamie@jantrid.net-20081016113257-58ibxql0vyqo51ok 13 source/brailleDisplayDrivers/handyTech.py jamie@jantrid.net-20081021102515-rbifrh99gkssvv8h 14 source/brailleDisplayDrivers/noBraille.py jamie@jantrid.net-20080910042146-ydj3gtzra3scuch7 15 source/config/__init__.py jamie@jantrid.net-20081022055125-6uulve0lgq5zubvq 16 source/core.py jamie@jantrid.net-20081001104239-t11thu7s01sb94vd 17 source/cursorManager.py jamie@jantrid.net-20081008050900-os4bd7nsyqss1lfb 18 source/gui/__init__.py jamie@jantrid.net-20080919064529-kfl9xj9y3tfyqylm 19 source/gui/settingsDialogs.py jamie@jantrid.net-20081021204645-uy3y7l9g1gxzds0e 20 source/ui.py jamie@jantrid.net-20081016230637-4nc8n4ncu8fcj5yi 21 source/virtualBuffers/__init__.py jamie@jantrid.net-20081009102548-be3duzeox66u66ji 22 source/winUser.py jamie@jantrid.net-20081017071138-nnx7cpe551ces0jv
-
- Property bzr:revision-info
-
trunk/.bzrignore
r2293 r2436 16 16 installer/waves 17 17 source/images/*.ico 18 source/louis -
trunk/contributors.txt
r2365 r2436 45 45 Demetry <demetry82@googlemail.com> - German language files 46 46 robjoy <robjoy@freemail.hu> - Hungarian language files and documentation 47 Felix Grützmacher (Handy Tech Elektronik GmbH) <felix.gruetzmacher@handytech.de> - some initial ideas for braille support, Handy Tech braille display driver -
trunk/dependencies.txt
r2400 r2436 8 8 Python Windows Extensions (for python 2.5), build 210 only: 9 9 http://www.sourceforge.net/projects/pywin32/ 10 Several other packages, made available for convenience in the NVDA miscellaneous dependencies package, version 2008- 08-25-01 or later:10 Several other packages, made available for convenience in the NVDA miscellaneous dependencies package, version 2008-10-22-01 or later: 11 11 http://www.nvda-project.org/wiki/MiscellaneousDependencies 12 12 -
trunk/source/NVDAObjects/IAccessible/__init__.py
r2435 r2436 721 721 722 722 def event_caret(self): 723 super(IAccessible, self).event_caret() 723 724 if self.IAccessibleRole==IAccessibleHandler.ROLE_SYSTEM_CARET: 724 725 return -
trunk/source/NVDAObjects/IAccessible/edit.py
r2387 r2436 26 26 from . import IAccessible 27 27 from .. import NVDAObjectTextInfo 28 import braille 28 29 29 30 ignoreCaretEvents=False … … 725 726 if eventHandler.isPendingEvents('valueChange',self): 726 727 self.hasContentChangedSinceLastSelection=True 728 braille.handler.handleCaretMove(self) 727 729 self.detectPossibleSelectionChange() 728 730 … … 733 735 self.initAutoSelectDetection() 734 736 super(Edit,self).event_gainFocus() 737 738 def _get_states(self): 739 states = super(Edit, self)._get_states() 740 if self.windowStyle & winUser.ES_MULTILINE: 741 states.add(controlTypes.STATE_MULTILINE) 742 return states 735 743 736 744 [Edit.bindKey(keyName,scriptName) for keyName,scriptName in [ -
trunk/source/NVDAObjects/IAccessible/scintilla.py
r2387 r2436 210 210 return controlTypes.ROLE_EDITABLETEXT 211 211 212 def _get_states(self): 213 states = super(Scintilla, self)._get_states() 214 # Scintilla controls are always multiline. 215 states.add(controlTypes.STATE_MULTILINE) 216 return states 217 212 218 #We want all the standard text editing key commands to be handled by NVDA 213 219 [Scintilla.bindKey(keyName,scriptName) for keyName,scriptName in [ -
trunk/source/NVDAObjects/IAccessible/winConsole.py
r2403 r2436 22 22 from . import IAccessible 23 23 from .. import NVDAObjectTextInfo 24 import controlTypes 25 import braille 24 26 25 27 class WinConsole(IAccessible): … … 117 119 if globalVars.caretMovesReviewCursor and self==api.getReviewPosition().obj: 118 120 api.setReviewPosition(self.makeTextInfo(textHandler.POSITION_CARET)) 121 braille.handler.handleCaretMove(self) 119 122 #For any events other than caret movement, we want to let the monitor thread know that there might be text to speak 120 123 if eventID!=winUser.EVENT_CONSOLE_CARET: … … 223 226 224 227 def event_gainFocus(self): 228 self.connectConsole() 225 229 super(WinConsole,self).event_gainFocus() 226 self.connectConsole()227 230 for line in self.prevConsoleVisibleLines: 228 231 if not line.isspace() and len(line)>0: … … 265 268 self.lastConsoleEvent=winUser.EVENT_CONSOLE_UPDATE_REGION 266 269 270 def _get_role(self): 271 return controlTypes.ROLE_TERMINAL 272 267 273 [WinConsole.bindKey(keyName,scriptName) for keyName,scriptName in [ 268 274 ("control+c","protectConsoleKillKey"), -
trunk/source/NVDAObjects/__init__.py
r2434 r2436 22 22 import appModuleHandler 23 23 import virtualBufferHandler 24 import braille 24 25 25 26 class NVDAObjectTextInfo(textHandler.TextInfo): … … 640 641 if self is api.getFocusObject(): 641 642 speech.speakObjectProperties(self,states=True, reason=speech.REASON_CHANGE) 643 braille.handler.handleUpdate(self) 642 644 643 645 def event_focusEntered(self): … … 650 652 api.setNavigatorObject(self) 651 653 self.reportFocus() 654 braille.handler.handleGainFocus(self) 652 655 653 656 def event_foreground(self): … … 662 665 if self is api.getFocusObject(): 663 666 speech.speakObjectProperties(self, value=True, reason=speech.REASON_CHANGE) 667 braille.handler.handleUpdate(self) 664 668 665 669 def event_nameChange(self): 666 670 if self is api.getFocusObject(): 667 671 speech.speakObjectProperties(self, name=True, reason=speech.REASON_CHANGE) 672 braille.handler.handleUpdate(self) 668 673 669 674 def event_descriptionChange(self): 670 675 if self is api.getFocusObject(): 671 676 speech.speakObjectProperties(self, description=True, reason=speech.REASON_CHANGE) 677 braille.handler.handleUpdate(self) 678 679 def event_caret(self): 680 if self is api.getFocusObject(): 681 braille.handler.handleCaretMove(self) 672 682 673 683 def _get_basicText(self): … … 686 696 687 697 def _get_basicCaretOffset(self): 688 r eturn 0698 raise NotImplementedError 689 699 690 700 def _set_basicCaretOffset(self,offset): -
trunk/source/api.py
r2403 r2436 193 193 globalVars.reviewPosition=reviewPosition 194 194 globalVars.navigatorObject=None 195 import braille 196 braille.handler.handleReviewMove() 195 197 196 198 def getNavigatorObject(): … … 216 218 globalVars.navigatorObject=obj 217 219 globalVars.reviewPosition=None 220 import braille 221 braille.handler.handleReviewMove() 218 222 219 223 def isTypingProtected(): -
trunk/source/appModules/_default.py
- Property svn:executable set to *
r2425 r2436 33 33 import virtualBufferHandler 34 34 import scriptHandler 35 import ui 36 import braille 35 37 36 38 class AppModule(appModuleHandler.AppModule): … … 56 58 state=_("off") 57 59 globalVars.keyboardHelp=False 58 speech.speakMessage(_("keyboard help %s")%state)60 ui.message(_("keyboard help %s")%state) 59 61 script_keyboardHelp.__doc__=_("Turns keyboard help on and off. When on, pressing a key on the keyboard will tell you what script is associated with it, if any.") 60 62 … … 64 66 if hasattr(virtualBuffer,'TextInfo') and not virtualBuffer.passThrough: 65 67 obj=virtualBuffer 66 info=obj.makeTextInfo(textHandler.POSITION_CARET) 68 try: 69 info=obj.makeTextInfo(textHandler.POSITION_CARET) 70 except: 71 info=obj.makeTextInfo(textHandler.POSITION_FIRST) 67 72 info.expand(textHandler.UNIT_LINE) 68 73 if scriptHandler.getLastScriptRepeatCount()==0: … … 73 78 74 79 def script_leftMouseClick(self,keyPress): 75 speech.speakMessage(_("left click"))80 ui.message(_("left click")) 76 81 winUser.mouse_event(winUser.MOUSEEVENTF_LEFTDOWN,0,0,None,None) 77 82 winUser.mouse_event(winUser.MOUSEEVENTF_LEFTUP,0,0,None,None) … … 79 84 80 85 def script_rightMouseClick(self,keyPress): 81 speech.speakMessage(_("right click"))86 ui.message(_("right click")) 82 87 winUser.mouse_event(winUser.MOUSEEVENTF_RIGHTDOWN,0,0,None,None) 83 88 winUser.mouse_event(winUser.MOUSEEVENTF_RIGHTUP,0,0,None,None) … … 101 106 else: 102 107 text=winKernel.GetDateFormat(winKernel.getThreadLocale(), winKernel.DATE_LONGDATE, None, None) 103 speech.speakMessage(text)108 ui.message(text) 104 109 script_dateTime.__doc__=_("If pressed once, reports the current time. If pressed twice, reports the current date") 105 110 … … 161 166 162 167 def script_moveMouseToNavigatorObject(self,keyPress): 163 speech.speakMessage(_("Move mouse to navigator"))168 ui.message(_("Move mouse to navigator")) 164 169 obj=api.getNavigatorObject() 165 170 try: … … 179 184 180 185 def script_moveNavigatorObjectToMouse(self,keyPress): 181 speech.speakMessage(_("Move navigator object to mouse"))186 ui.message(_("Move navigator object to mouse")) 182 187 obj=api.getMouseObject() 183 188 api.setNavigatorObject(obj) … … 609 614 obj = api.getStatusBar() 610 615 if not obj: 611 speech.speakMessage(_("no status bar found"))616 ui.message(_("no status bar found")) 612 617 return 613 618 text = api.getStatusBarText(obj) 614 619 615 620 if scriptHandler.getLastScriptRepeatCount()==0: 616 speech.speakMessage(text)621 ui.message(text) 617 622 else: 618 623 speech.speakSpelling(text) … … 627 632 onOff=_("on") 628 633 config.conf["mouse"]["enableMouseTracking"]=True 629 speech.speakMessage(_("Mouse tracking")+" "+onOff)634 ui.message(_("Mouse tracking")+" "+onOff) 630 635 script_toggleMouseTracking.__doc__=_("Toggles the reporting of information as the mouse moves") 631 636 … … 639 644 repeatCount=scriptHandler.getLastScriptRepeatCount() 640 645 if repeatCount==0: 641 speech.speakMessage(title)646 ui.message(title) 642 647 elif repeatCount==1: 643 648 speech.speakSpelling(title) 644 649 else: 645 650 if api.copyToClip(title): 646 speech.speakMessage(_("%s copied to clipboard")%title)651 ui.message(_("%s copied to clipboard")%title) 647 652 script_title.__doc__=_("Reports the title of the current application or foreground window. If pressed twice, spells the title. If pressed thrice, copies the title to the clipboard") 648 653 … … 693 698 config.conf["presentation"]["reportProgressBarUpdates"]=progressLabels[new][0] 694 699 speech.cancelSpeech() 695 speech.speakMessage(progressLabels[new][1])700 ui.message(progressLabels[new][1]) 696 701 script_toggleBeepOnProgressBarUpdates.__doc__=_("Toggles how NVDA reports progress bar updates. It can beep for all the progress bars or just for the progressbars in the foreground. Additionally it is possible to have current value spoken each 10 percent or it is possible to completely disable this reporting.") 697 702 … … 703 708 onOff=_("on") 704 709 globalVars.reportDynamicContentChanges=True 705 speech.speakMessage(_("report dynamic content changes")+" "+onOff)710 ui.message(_("report dynamic content changes")+" "+onOff) 706 711 script_toggleReportDynamicContentChanges.__doc__=_("Toggles on and off the reporting of dynamic content changes, such as new text in dos console windows") 707 712 … … 713 718 onOff=_("on") 714 719 globalVars.caretMovesReviewCursor=True 715 speech.speakMessage(_("caret moves review cursor")+" "+onOff)720 ui.message(_("caret moves review cursor")+" "+onOff) 716 721 script_toggleCaretMovesReviewCursor.__doc__=_("Toggles on and off the movement of the review cursor due to the caret moving.") 717 722 … … 723 728 onOff=_("on") 724 729 globalVars.focusMovesNavigatorObject=True 725 speech.speakMessage(_("focus moves navigator object")+" "+onOff)730 ui.message(_("focus moves navigator object")+" "+onOff) 726 731 script_toggleFocusMovesNavigatorObject.__doc__=_("Toggles on and off the movement of the navigator object due to focus changes") 727 732 … … 736 741 return 737 742 if sps.BatteryFlag & NO_SYSTEM_BATTERY: 738 speech.speakMessage(_("no system battery"))743 ui.message(_("no system battery")) 739 744 return 740 745 text = _("%d percent") % sps.BatteryLifePercent + " " … … 742 747 elif sps.BatteryLifeTime!=0xffffffff: 743 748 text += _("%d hours and %d minutes remaining") % (sps.BatteryLifeTime / 3600, (sps.BatteryLifeTime % 3600) / 60) 744 speech.speakMessage(text)749 ui.message(text) 745 750 script_say_battery_status.__doc__ = _("reports battery status and time remaining if AC is not plugged in") 746 751 747 752 def script_passNextKeyThrough(self,keyPress): 748 753 keyboardHandler.passNextKeyThrough() 749 speech.speakMessage(_("Pass next key through"))754 ui.message(_("Pass next key through")) 750 755 script_passNextKeyThrough.__doc__=_("The next key that is pressed will not be handled at all by NVDA, it will be passed directly through to Windows.") 751 756 … … 806 811 pythonConsole.activate() 807 812 script_activatePythonConsole.__doc__ = _("Activates the NVDA Python Console, primarily useful for development") 813 814 def script_braille_toggleTether(self, keyPress): 815 if braille.handler.tether == braille.handler.TETHER_FOCUS: 816 braille.handler.tether = braille.handler.TETHER_REVIEW 817 tetherMsg = _("review") 818 else: 819 braille.handler.tether = braille.handler.TETHER_FOCUS 820 tetherMsg = _("focus") 821 ui.message(_("Braille tethered to %s") % tetherMsg) 822 script_braille_toggleTether.__doc__ = _("Toggle tethering of braille between the focus and the review position") -
trunk/source/appModules/_default_desktop.kbd
r2139 r2436 80 80 extendedDivide=leftMouseClick 81 81 multiply=rightMouseClick 82 NVDA+control+t=braille_toggleTether -
trunk/source/config/__init__.py
r2403 r2436 47 47 sayCapForCapitals = boolean(default=false) 48 48 beepForCapitals = boolean(default=false) 49 50 # Braille settings 51 [braille] 52 display = string(default=noBraille) 53 translationTable = string(default=en-us-comp8.ctb) 54 expandAtCursor = boolean(default=true) 55 cursorBlinkRate = integer(default=500,min=0,max=2000) 56 messageTimeout = integer(default=4,min=1,max=20) 49 57 50 58 # Presentation settings -
trunk/source/core.py
r2403 r2436 83 83 log.info("Using wx version %s"%wx.version()) 84 84 app = wx.App(redirect=False) 85 # HACK: wx currently raises spurious assertion failures when a timer is stopped but there is already an event in the queue for that timer. 86 # Unfortunately, these assertion exceptions are raised in the middle of other code, which causes problems. 87 # Therefore, disable assertions for now. 88 app.SetAssertMode(wx.PYAPP_ASSERT_SUPPRESS) 85 89 # We do support QueryEndSession events, but we don't want to do anything for them. 86 90 app.Bind(wx.EVT_QUERY_END_SESSION, lambda evt: None) … … 93 97 log.info("Windows session ending") 94 98 app.Bind(wx.EVT_END_SESSION, onEndSession) 99 import braille 100 log.debug("Initializing braille") 101 braille.initialize() 95 102 import NVDAHelper 96 103 log.debug("Initializing NVDAHelper") … … 200 207 except: 201 208 log.error("error terminating mouse handler",exc_info=True) 209 log.debug("Terminating braille") 210 try: 211 braille.terminate() 212 except: 213 log.error("Error terminating braille",exc_info=True) 202 214 log.debug("Terminating speech") 203 215 try: -
trunk/source/cursorManager.py
r2356 r2436 16 16 import speech 17 17 import config 18 import braille 18 19 19 20 class CursorManager(baseObject.ScriptableObject): … … 49 50 def _set_selection(self, info): 50 51 info.updateSelection() 52 braille.handler.handleCaretMove(self) 51 53 52 54 def _caretMovementScriptHelper(self,unit,direction=None,posConstant=textHandler.POSITION_SELECTION,posUnit=None,posUnitEnd=False,extraDetail=False,handleSymbols=False): … … 278 280 def _set_selection(self, info): 279 281 self._selection = info.copy() 282 braille.handler.handleCaretMove(self) -
trunk/source/gui/__init__.py
r2339 r2436 190 190 self._popupSettingsDialog(VoiceSettingsDialog) 191 191 192 def onBrailleCommand(self,evt): 193 self._popupSettingsDialog(BrailleSettingsDialog) 194 192 195 def onKeyboardSettingsCommand(self,evt): 193 196 self._popupSettingsDialog(KeyboardSettingsDialog) … … 242 245 item = menu_preferences.Append(wx.ID_ANY,_("&Voice settings..."),_("Choose the voice, rate, pitch and volume to use")) 243 246 self.Bind(wx.EVT_MENU, frame.onVoiceCommand, item) 247 item = menu_preferences.Append(wx.ID_ANY,_("B&raille settings...")) 248 self.Bind(wx.EVT_MENU, frame.onBrailleCommand, item) 244 249 item = menu_preferences.Append(wx.ID_ANY,_("&Keyboard Settings..."),_("Configure keyboard layout, speaking of typed characters, wor
