OSDN Git Service

nvdajp/nvdajp.git
13 years agosconstruct: Add certPassword option to specify the password for the private key in...
James Teh [Fri, 26 Nov 2010 04:58:43 +0000 (14:58 +1000)]
sconstruct: Add certPassword option to specify the password for the private key in the certificate.
Fixes #1221.

13 years agoWhat's New: Add a "Changes for Developers" which documents changes concerning developers.
James Teh [Fri, 26 Nov 2010 04:02:01 +0000 (14:02 +1000)]
What's New: Add a "Changes for Developers" which documents changes concerning developers.

13 years agoAdd support for mapping gestures to scripts anywhere in NVDA.
James Teh [Fri, 26 Nov 2010 03:52:30 +0000 (13:52 +1000)]
Add support for mapping gestures to scripts anywhere in NVDA.
Currently, there are two global gesture maps: the user map and the locale map.
This allows users and locale maintainers to add new bindings and override existing bindings in a single file.
See the inputCore.GlobalGestureMap class for details.
The user map is stored in gestures.ini in the NVDA configuration directory.
The locale map is stored in locale\LANG\gestures.ini, where LANG is the language code.

13 years agoUpdate What's New.
James Teh [Fri, 26 Nov 2010 03:50:25 +0000 (13:50 +1000)]
Update What's New.

13 years agoImplement loading of the locale gesture map.
James Teh [Fri, 26 Nov 2010 01:30:06 +0000 (11:30 +1000)]
Implement loading of the locale gesture map.
This is stored in locale\lang\gestures.ini, where lang is the language code.
Also add some extra logging.

13 years agoAdd support for mapping gestures to scripts anywhere in NVDA.
James Teh [Fri, 26 Nov 2010 01:19:34 +0000 (11:19 +1000)]
Add support for mapping gestures to scripts anywhere in NVDA.
Currently, there are two global gesture maps: the user map and the locale map.
This allows users and locale maintainers to add new bindings and override existing bindings in a single file.
See the inputCore.GlobalGestureMap class for details.
The user map is stored in gestures.ini in the NVDA configuration directory.
Loading of the locale map is not yet implemented.

13 years agoFixed hindi user guide so key commands are actually generated and the NVDA can be...
Peter Vágner [Thu, 25 Nov 2010 08:21:03 +0000 (09:21 +0100)]
Fixed hindi user guide so key commands are actually generated and the NVDA can be built.

13 years agoAdded hindi language file and user guide,
Peter Vágner [Thu, 25 Nov 2010 07:11:58 +0000 (08:11 +0100)]
Added hindi language file and user guide,
Added serbian user guide,
Updated italian language file,
Updated slovak language file and changes.

13 years agoApp modules no longer have key map files!
James Teh [Thu, 25 Nov 2010 06:17:01 +0000 (16:17 +1000)]
App modules no longer have key map files!
Instead, all gesture bindings are done in the app module itself. This keeps everything together in the one place, removes the appModules folder in the NVDA binary distribution (which only contains kbd files) and removes one stage of gesture mapping (which will be necessary to simplify future enhancements).
Note that desktop and laptop bindings, as well as bindings common to both, can all be provided in the same gesture map now, which eliminates another reason for these key map files.
The most common way to bind gestures is to use a magic __gestures dict on the class. bindGesture() can also be used on the instance. See the code doc for baseObject.ScriptableObject for more details.
It's not currently possible for users to override the in-built bindings. This is coming in future.

13 years agoSource readme clarifications:
James Teh [Wed, 24 Nov 2010 03:01:27 +0000 (13:01 +1000)]
Source readme clarifications:
* Change "root of the NVDA source distribution/checkout" to just "root of the NVDA source distribution" to avoid confusion of "/" as a directory separator.
* Document that certFile expects a file in pfx format which must include the private key.

13 years agoCorrect the description for the current navigator object script in both NVDA and...
Michael Curran [Wed, 24 Nov 2010 02:32:15 +0000 (12:32 +1000)]
Correct the description for the current navigator object script in both NVDA and the english user guide. Input help now mentions that twice spells the information, and the user guide now mentions that 3 times copies it to the clibpard. Fixes #938.

13 years agoMerge main.
James Teh [Tue, 23 Nov 2010 03:11:49 +0000 (13:11 +1000)]
Merge main.

13 years agosetup.py: Fetch all data files in the call to setup() now. We no longer run generate...
James Teh [Tue, 23 Nov 2010 02:23:17 +0000 (12:23 +1000)]
setup.py: Fetch all data files in the call to setup() now. We no longer run generate.py from setup.py, so there's no need to delay this.

13 years agoChanged the behaviour of the review follows caret option, so that the review positio...
Michael Curran [Mon, 22 Nov 2010 06:55:34 +0000 (16:55 +1000)]
Changed the behaviour of the review follows caret option, so that  the review position will only move if the caret moves in the same object. Previously if the caret moved in any object, the review position would jump inside that object. Specific changes:
*NVDAObject.event_caret: only set the review position to the caret if the current navigator object is this object.
*VirtualBuffer._set_selection:  rather than unconditionally setting the review position to the new caret position, instead only do this if the current navigator object is the root of this virtualBuffer.
*TreeInterceptor._set_passthrough: if passthrough is turning on, and the focus is currently inside this treeInterceptor, and the review follows focus option is on, set the navigator object to the focus.
*TreeInterceptor._set_selection: if passthrough is turning off, and the navigator object is inside this treeInterceptor, and the review follows caret option is turned on,  set the navigator object to the root of this treeInterceptor.

13 years agoNext release will be 2011.1.
James Teh [Mon, 22 Nov 2010 04:39:08 +0000 (14:39 +1000)]
Next release will be 2011.1.

13 years agosconstruct: Execute pygettext with the python executable, as not all systems will...
James Teh [Mon, 22 Nov 2010 00:43:49 +0000 (10:43 +1000)]
sconstruct: Execute pygettext with the python executable, as not all systems will associate .py files with the interpreter.

13 years agoRefactor the build process to allow anyone to prepare the source tree and create...
James Teh [Mon, 22 Nov 2010 00:13:30 +0000 (10:13 +1000)]
Refactor the build process to allow anyone to prepare the source tree and create binary distributions, portable archives, installers, etc. with a simple command.
scons is used to facilitate this.
See the Building NVDA section of the source readme for details.

Notes:
* Of course, SCons is now required for anyone running from source.
* The nvdaHelper build process has now been incorporated into the new build process, so you do not need to run scons from source\NVDAHelper anymore.
* nvdaHelper builds will no longer be provided on the snapshots page. This means that the Windows SDK and several other dependencies are now required, as documented in the source readme.
* You should no longer run generate.py, setup.py or makensis directly. Instead, use scons as documented in the source readme.
* source\include and source\NVDAHelper have been moved out of the source directory.

13 years agosconstruct: Build the client archive relative to the extras\controllerClient directory.
James Teh [Fri, 19 Nov 2010 04:36:10 +0000 (14:36 +1000)]
sconstruct: Build the client archive relative to the extras\controllerClient directory.

13 years agosconstruct: pot no longer depends on sourceDir, as this depends on comInterfaces...
James Teh [Fri, 19 Nov 2010 04:28:38 +0000 (14:28 +1000)]
sconstruct: pot no longer depends on sourceDir, as this depends on comInterfaces and nvdaHelper. Instead, just depend on *.py beneath sourceDir.

13 years agosconstruct: Rather than using normal scons mechanisms to create and remove _buildVers...
James Teh [Fri, 19 Nov 2010 01:34:19 +0000 (11:34 +1000)]
sconstruct: Rather than using normal scons mechanisms to create and remove _buildVersion.py*, do it as actions in the NVDADist builder. This is necessary because we want this to be removed immediately after NVDADist (not just when scons -c is run). Also, env.Clean() seems to make the file some sort of dependency, which causes problems for _buildVersion.pyc and _buildVersion.pyo which aren't scons targets.

13 years agoMerged main
Michael Curran [Thu, 18 Nov 2010 04:48:32 +0000 (14:48 +1000)]
Merged main

13 years agoapi.getReviewPosition(): Don't try to use a tree interceptor that isn't ready. Fixes...
James Teh [Thu, 18 Nov 2010 00:31:12 +0000 (10:31 +1000)]
api.getReviewPosition(): Don't try to use a tree interceptor that isn't ready. Fixes exceptions when trying to use the review position in a document that hasn't finished loading yet.

13 years agoFix a bug where the "Use currently saved settings on the logon and other secure scree...
James Teh [Wed, 17 Nov 2010 02:28:10 +0000 (12:28 +1000)]
Fix a bug where the "Use currently saved settings on the logon and other secure screens" button did not work if the systemConfig directory did not already exist, which is the case immediately after a clean install. Note that it did work after at least one secure screen appeared (as the directory gets created then).
Fixes #1194.

13 years agoHopefully fix exceptions when scripts are queued for objects in an app but the app...
James Teh [Tue, 16 Nov 2010 06:08:07 +0000 (16:08 +1000)]
Hopefully fix exceptions when scripts are queued for objects in an app but the app closes before the scripts get executed.

13 years agoMoved logLevel commandline option from NVDA's root sconstruct to nvdaHelper's, renami...
Michael Curran [Tue, 16 Nov 2010 02:24:59 +0000 (12:24 +1000)]
Moved logLevel commandline option from NVDA's root sconstruct to nvdaHelper's, renaming it nvdaHelperLogLevel.

13 years agoAdded nvdaHelper/sconscript which for some reason was never added before, should...
Michael Curran [Tue, 16 Nov 2010 02:17:50 +0000 (12:17 +1000)]
Added nvdaHelper/sconscript which for some reason was never added before, should have really be renamed from sconstruct.

13 years agoUpdate bzr ignores.
James Teh [Tue, 16 Nov 2010 01:36:52 +0000 (11:36 +1000)]
Update bzr ignores.

13 years agoInclude nvdaHelper build dependencies in the source readme. Remove the separate nvdaH...
James Teh [Tue, 16 Nov 2010 01:34:31 +0000 (11:34 +1000)]
Include nvdaHelper build dependencies in the source readme. Remove the separate nvdaHelper build instructions, as nvdaHelper is not built separately anymore.

13 years agonvda's root sconstruct: when cleaning _buildVersion.py, also get rid of its .pyc...
Michael Curran [Mon, 15 Nov 2010 06:39:26 +0000 (16:39 +1000)]
nvda's root sconstruct: when cleaning _buildVersion.py, also get rid of  its .pyc and .pyo files as well.

13 years agoIntegrate generation of comTypes COM interfaces in to scons:
Michael Curran [Mon, 15 Nov 2010 06:28:44 +0000 (16:28 +1000)]
Integrate generation of comTypes COM interfaces in to scons:
*Rename source/generate.py to source/generateComInterfaces.py, as that is all this file does now.
*NVDA's root sconstruct: generate comtypes COM interfaces in source/comInterfaces with the help of generateComInterfaces.py.
*source/setup.py: no longer call generate.py.

13 years agonvda root sconstruct: the release commandline option now only controls filenames...
Michael Curran [Mon, 15 Nov 2010 05:17:02 +0000 (15:17 +1000)]
nvda root sconstruct: the release commandline option now only controls filenames and whether NVDA's Python will run optimized, it does not affect nvdaHelper. There is now a new scons commandline option called nvdaHelperDebug. If you set this to 1, then vdaHelper will be built with asertions enabled, debug symbols, it will use debug libraries, and it will not be optimized.

13 years agothe output dir can now be specifically set on the commandline with outputDir=<dir>
Michael Curran [Mon, 15 Nov 2010 04:17:12 +0000 (14:17 +1000)]
the output dir can now be specifically set on the commandline with outputDir=<dir>

13 years agogettext scons tool: import msgfmt and use it that way, rather than spauning a separat...
Michael Curran [Mon, 15 Nov 2010 04:07:47 +0000 (14:07 +1000)]
gettext scons tool: import msgfmt and use it that way, rather than spauning a separate Python process each time its used. However to do this msgfmt.MESSAGES must be cleared after each use, and NVDA's root sconstruct must alert scons  that the gettextMoFile builder can not be run in parallel.

13 years agoas txt2tags can not be run in parallel, make sure scons doesn't try, by making all...
Michael Curran [Mon, 15 Nov 2010 03:46:20 +0000 (13:46 +1000)]
as txt2tags can not be run in parallel, make sure scons doesn't try, by making all the txt2tags target nodes  share a fake side effect.

13 years agoGenerate all archives and the pot etc in a directory called output to stop cluttering...
Michael Curran [Mon, 15 Nov 2010 00:15:58 +0000 (10:15 +1000)]
Generate all archives and the pot etc in a directory called output to stop cluttering  NVDA's root directory, and also to make it easier for an automatic snapshot builder to collect up all created files. Also add a 'changes' target which  copies user_docs/en/changes.html to the putput directory as nvda_version_changes.html.

13 years agoMove generation of html documentation from t2t files (including keyCommands) from...
Michael Curran [Sun, 14 Nov 2010 22:31:46 +0000 (08:31 +1000)]
Move generation of html documentation from t2t files (including keyCommands)  from source/generate.py and into scons:
*Add a t2t scons tool in which provides a builder called txt2tags which converts a given t2t source file in to  an html file. Note that the real txt2tags module must be able to be imported by scons, so it either needs to be in Python's site-packages, or in nvda's root directory (not in source).
*Move keyCommandsDoc.py from source in to nvda's root directory.
*keyCommandsDoc: the maker now takes an output filename, not just an input file name.
*keyCommandsDoc: the maker now generates the output in a temporary file (for now the output filename with two underscores after) and then if successfull renames to the appropriate name.  The documentation for this function stated that the file was only generated if successfull, which was not the case.
*Ad a keyCommandsDoc tool function to nvda's root sconstruct which provides a builder called keyCommandsDoc which generates a keyCommands t2t from a given userGuide t2t.
*NVDA's root sconstruct: keyCommands.t2t files will be built from all userGuide.t2t files in user_docs, excluding  languages that are in a special keyCommandsLangBlacklist (this is currently cs and ja). The blacklisted languages do not have the newer format for their user guide.
*NVDA's root sconstruct: build html files from all t2t files in user_docs, including any keyCommands.t2t files.
*source/generate.py: remove now redundant code that generated keyCommands t2t files and converted t2t files to html files.

13 years agoUpdated spanish language file,
Peter Vágner [Sun, 14 Nov 2010 18:09:47 +0000 (19:09 +0100)]
Updated spanish language file,
updated galician language file,
updated danish language file,
Updated polish language file,
Added serbian language file by Dejan Zubovic.

13 years agogettext scons tool: execute msgfmt each time in a separate python process, as if...
Michael Curran [Sat, 13 Nov 2010 10:01:39 +0000 (20:01 +1000)]
gettext scons tool:  execute msgfmt each time in a separate python process, as  if scons was building multiple files in parallel msgfmt would produce bad results as there is state kept at module level.

13 years agoMove gettext mo file generation out of source/generate.py and in to scons:
Michael Curran [Sat, 13 Nov 2010 07:56:19 +0000 (17:56 +1000)]
Move gettext mo file generation out of source/generate.py and in to scons:
*Added a gettext scons tool to site_scons/site_tools. This tool provides a gettextMoFile builder, which takes a gettext template file (.po) and compiles it using msgfmt to a .mo.
*NVDA root sconstruct: cause all of NVDA's po files to be compiled to mo files if source is being built.
*Removed locale compilation code from source/generate.py as its now redundant.

13 years agoIntegrate the building of nvdaHelper into NVDA's scons files:
Michael Curran [Fri, 12 Nov 2010 05:29:57 +0000 (15:29 +1000)]
Integrate the building of nvdaHelper into NVDA's scons files:
*NVDA's new root sconstruct: declare and export clientDir, sourceLibDir and sourceLibDir64 variables, which can be used by nvdaHelper and client etc.
* Move source/include to include (at NVDA's root). also change all mentions of the path '#../include' to '#/include' in nvdaHelper's sconscript files.
* Move contents of nvdaHelper's site_scons to NVDA's root site_scons
*Move the nvdaHelper dir out of source and in to the root of NVDA.
* Rename nvdaHelper's sconstruct file to sconscript
* nvdaHelper's archBuild_sconscript: Remove the 'install' target, and at the same time no longer collect built targets to make them be required by the install target.
* NVDAHelper's sconscript (previously sconstruct):  no longer create a base environment from which to clone the arch-specific environments, instead Import  the environment called 'env' and clone from that.
*nvdaHelper's sconscript: import clientDir, sourceLibDir and sourceLibDir64, and pass arch-specific variants of these to archBuild_sconscript.
*nvdaHelper's archBuild_ssconscript: do not hardcode libInstallDir and clientInstallDir, instead import them (given by nvdaHelper's sconscript).
* Remove pointless print statements from NVDAHelper scons files
* Move the commandline variable declarations (such as targetArchitectures and logLevel) from nvdaHelper's archBuild_sconscript and in to NVDA's new root sconstruct.
* rename the 'isRelease' commandline variable in NVDA's new root sconstruct to 'release' to be compatible with nvdaHelper -- it uses it in quite a few places.
*NVDAHelper's remote, client and local sconscript files: change all mentions of the path '#interfaces' to '../interfaces' (we can no longer really use # as its now at NVDA's root.
*nvdaHelper's remote/apiHooks.cpp: explicitly include nvdaControllerInternal.h above common/log.h as for some reason now scons is failing to scan more than one level deep for implicit dependencies -- all other files including log.h already did this.
*NVDA's new root sconstruct: no longer build an nvdaHelper archive (its no longer needed)
*NVDA's new root sconstruct: there is now a target called 'client' which will build the nvda controller client archive.

Further notes:
*As dist (portable, installer etc) depends on source, any nvdaHelper related libs / EXEs that should be in source will automatically get built when needed.
*controller client will no longer get built just because the rest of nvdaHelper is built, unless you specifically tell scons to build the 'client' target.

13 years agonvdaHelper displayModel interface implementation of getWindowTextInRect: when collect...
Michael Curran [Thu, 11 Nov 2010 05:25:25 +0000 (15:25 +1000)]
nvdaHelper displayModel interface implementation of getWindowTextInRect: when collecting text from descendant windows, ignore windows that are invisible according to IsWindowVisible. This among other things stops text from other tabs bleeding through when reviewing a particular propertysheet in a multitabbed dialog (e.g. file / folder properties in Windows explorer).

13 years agoUnneeded import.
James Teh [Wed, 10 Nov 2010 18:41:35 +0000 (04:41 +1000)]
Unneeded import.

13 years agoWoops. Not called Tera Term Pro anymore.
James Teh [Wed, 10 Nov 2010 18:36:58 +0000 (04:36 +1000)]
Woops. Not called Tera Term Pro anymore.

13 years agoSupport for automatically reporting new text when it appears on the screen!
James Teh [Wed, 10 Nov 2010 18:23:42 +0000 (04:23 +1000)]
Support for automatically reporting new text when it appears on the screen!
To avoid lag and spam, this must be enabled for individual controls using the LiveText and Terminal NVDAObject behaviors and the DisplayModelLiveText overlay class.
Specific support for mIRC, PuTTY, Tera Term Pro and SecureCRT has been included so far.
See those app modules for examples on how to do this for other applications.
Windows text consoles now use this new LiveText/Terminal behavior, which means they use the same monitoring code. This code is similar to the previous code in winConsoleHandler, but has been simplified and improved somewhat.

13 years agoUpdate What's New.
James Teh [Wed, 10 Nov 2010 18:16:02 +0000 (04:16 +1000)]
Update What's New.

13 years agoWindow NVDAObject: redraw(): RedrawWindow() takes client coordinates, not screen...
James Teh [Wed, 10 Nov 2010 18:07:22 +0000 (04:07 +1000)]
Window NVDAObject: redraw(): RedrawWindow() takes client coordinates, not screen coordinates, so convert them first. Fixes failure to redraw some objects.

13 years agoRemove unused stuff.
James Teh [Wed, 10 Nov 2010 17:02:57 +0000 (03:02 +1000)]
Remove unused stuff.

13 years agospeech: Don't use globalVars.keyCounter to determine when to kill the speak spelling...
James Teh [Wed, 10 Nov 2010 16:53:00 +0000 (02:53 +1000)]
speech: Don't use globalVars.keyCounter to determine when to kill the speak spelling generator, as keyCounter is currently not set and this is a pretty dodgy way of doing this. Instead, cancel the speak spelling generator (if any) when cancelSpeech is called. Fixes spelling continuing later after being interrupted.
Fixes #1188.

13 years agoAdd code doc.
James Teh [Wed, 10 Nov 2010 11:45:59 +0000 (21:45 +1000)]
Add code doc.

13 years agoLiveText behavior: Minor fixes:
James Teh [Wed, 10 Nov 2010 11:31:31 +0000 (21:31 +1000)]
LiveText behavior: Minor fixes:
* Clear the event in startMonitoring() just in case it was left set when monitoring previously.
* If there is a stabilise delay, check if monitoring was stopped while waiting. This is unlikely but possible.

13 years agoApp module for SecureCRT which reads incoming text automatically.
James Teh [Wed, 10 Nov 2010 06:12:24 +0000 (16:12 +1000)]
App module for SecureCRT which reads incoming text automatically.

13 years agoWinConsole NVDAObject: Allow 30 ms for the text to stabilise.
James Teh [Wed, 10 Nov 2010 05:39:43 +0000 (15:39 +1000)]
WinConsole NVDAObject: Allow 30 ms for the text to stabilise.

13 years agoLiveText behavior: Ignore single characters like we did in the old winConsoleHandler...
James Teh [Wed, 10 Nov 2010 02:48:01 +0000 (12:48 +1000)]
LiveText behavior: Ignore single characters like we did in the old winConsoleHandler code, as these are probably typed characters.

13 years agoMissing import.
James Teh [Wed, 10 Nov 2010 02:46:53 +0000 (12:46 +1000)]
Missing import.

13 years agoLiveText behavior: Remove MIN_CHECK_NEW_INTERVAL and introduce STABILIZE_DELAY instea...
James Teh [Wed, 10 Nov 2010 01:58:58 +0000 (11:58 +1000)]
LiveText behavior: Remove MIN_CHECK_NEW_INTERVAL and introduce STABILIZE_DELAY instead. This is the time to wait before fetching the text (i.e. before the text is considered stable) after a change event.

13 years agoLiveText: When calculating new text, don't barf on empty lines.
James Teh [Tue, 9 Nov 2010 23:04:52 +0000 (09:04 +1000)]
LiveText: When calculating new text, don't barf on empty lines.

13 years agoLiveText monitor thread: Add some exception handling.
James Teh [Tue, 9 Nov 2010 22:53:24 +0000 (08:53 +1000)]
LiveText monitor thread: Add some exception handling.

13 years agoCosmetic.
James Teh [Tue, 9 Nov 2010 22:48:15 +0000 (08:48 +1000)]
Cosmetic.

13 years agoCheck whether a console is dead every 100 ms and disconnect if so to allow it to...
James Teh [Tue, 9 Nov 2010 22:40:39 +0000 (08:40 +1000)]
Check whether a console is dead every 100 ms and disconnect if so to allow it to close.
This used to be done in the console monitor thread, but it doesn't make much sense to do this in the LiveText monitor thread, so use a separate timer.

13 years agoRemove IAccessible.ConsoleWindowClass NVDAObject, which isn't useful. It was only...
James Teh [Tue, 9 Nov 2010 22:11:22 +0000 (08:11 +1000)]
Remove IAccessible.ConsoleWindowClass NVDAObject, which isn't useful. It was only getting instantiated for the window accessible, which never gets focus.

13 years agowinConsoleHandler.consoleWinEventHook(): Only fetch console screen buffer info if...
James Teh [Tue, 9 Nov 2010 10:53:42 +0000 (20:53 +1000)]
winConsoleHandler.consoleWinEventHook(): Only fetch console screen buffer info if it is really needed.

13 years agoConvert Windows Console support to use the new Terminal behavior.
James Teh [Tue, 9 Nov 2010 09:08:29 +0000 (19:08 +1000)]
Convert Windows Console support to use the new Terminal behavior.
There are a couple of regressions which I have yet to fix.
Also, moving to a console with object navigation no longer causes new text from that console to be spoken, which partially fixes #673.

13 years agoLiveText behavior: Fix bug where startMonitoring() couldn't be called again even...
James Teh [Tue, 9 Nov 2010 08:48:19 +0000 (18:48 +1000)]
LiveText behavior: Fix bug where startMonitoring() couldn't be called again even after stopMonitoring(). Also, startMonitoring() now just returns if monitoring has already been started and vice versa for stopMonitoring().

13 years agoMerge main.
James Teh [Tue, 9 Nov 2010 08:37:09 +0000 (18:37 +1000)]
Merge main.

13 years agoWinConsoleTextInfo: Override the clipboardText property instead of the copyToClipboar...
James Teh [Tue, 9 Nov 2010 08:36:34 +0000 (18:36 +1000)]
WinConsoleTextInfo: Override the clipboardText property instead of the copyToClipboard() method.

13 years agoRemove unnecessary code.
James Teh [Tue, 9 Nov 2010 08:12:21 +0000 (18:12 +1000)]
Remove unnecessary code.

13 years agoAdd app module for Tera Term, which automatically reads incoming text.
James Teh [Tue, 9 Nov 2010 08:11:13 +0000 (18:11 +1000)]
Add app module for Tera Term, which automatically reads incoming text.

13 years ago gdiHooks: Since rectangles aren't usually useful for text change notifications due...
James Teh [Tue, 9 Nov 2010 08:02:16 +0000 (18:02 +1000)]
 gdiHooks: Since rectangles aren't usually useful for text change notifications due to the text changing before NVDA can fetch it, condense notifications even further to just one notification per window per notification interval. A rectangle is still provided in case it is useful, but it encompasses all updated rectangles, which may include text that wasn't updated.

13 years agoAdd an app module for PuTTY, which causes incoming text to be read automatically.
James Teh [Tue, 9 Nov 2010 06:20:27 +0000 (16:20 +1000)]
Add an app module for PuTTY, which causes incoming text to be read automatically.

13 years agoDisplayModelLiveText NVDAObject: Use EditableTextDisplayModelTextInfo, as this gives...
James Teh [Tue, 9 Nov 2010 06:19:12 +0000 (16:19 +1000)]
DisplayModelLiveText NVDAObject: Use EditableTextDisplayModelTextInfo, as this gives more accurate information regarding spacing and is needed for caret offset in terminals.

13 years agoTerminal behavior: Inherit EditableText, as terminals need to handle caret navigation...
James Teh [Tue, 9 Nov 2010 04:17:38 +0000 (14:17 +1000)]
Terminal behavior: Inherit EditableText, as terminals need to handle caret navigation. Don't call super in loseFocus event, as there is no base event.

13 years agoLiveText._calculateNewText(): Handle lines with different lengths when searching...
James Teh [Tue, 9 Nov 2010 03:21:28 +0000 (13:21 +1000)]
LiveText._calculateNewText(): Handle lines with different lengths when searching a changed line for the changed section of text. Also, optimise and simplify.

13 years agoLiveText behavior: Don't report new text if report dynamic content changes is disabled.
James Teh [Tue, 9 Nov 2010 01:02:40 +0000 (11:02 +1000)]
LiveText behavior: Don't report new text if report dynamic content changes is disabled.

13 years agoAdd app module for mIRC. This reads new output text automatically when the input...
James Teh [Tue, 9 Nov 2010 00:58:38 +0000 (10:58 +1000)]
Add app module for mIRC. This reads new output text automatically when the input field is focused.

13 years agoAdd NVDAObjects.Window.DisplayModelLiveText, which can be used for NVDAObjects which...
James Teh [Tue, 9 Nov 2010 00:47:39 +0000 (10:47 +1000)]
Add NVDAObjects.Window.DisplayModelLiveText, which can be used for NVDAObjects which should automatically report new display text.

13 years agodisplayModel: Allow NVDAObjects to register for text change notifications using reque...
James Teh [Tue, 9 Nov 2010 00:46:13 +0000 (10:46 +1000)]
displayModel: Allow NVDAObjects to register for text change notifications using requestTextChangeNotifications().
The textChange event will be called on the object when the display text changes.

13 years agoAdd LiveText and Terminal behavior NVDAObjects to facilitate automatic reporting...
James Teh [Tue, 9 Nov 2010 00:36:17 +0000 (10:36 +1000)]
Add LiveText and Terminal behavior NVDAObjects to facilitate automatic reporting of new text for objects from which text can be retrieved and which notify of text changes, but do not specify the exact new text.
A background monitor thread is notified when the text changes and calculates the changed text using difflib.
This code is based on the monitor code in winConsoleHandler, but has been abstracted and significantly cleaned up. A future commit will probably start using this new code for winConsole.

13 years agoWindow NVDAObject: Add a redraw() method which redraws the display for this object...
James Teh [Tue, 9 Nov 2010 00:27:01 +0000 (10:27 +1000)]
Window NVDAObject: Add a redraw() method which redraws the display for this object using RedrawWindow().

13 years agoeventHandler: Fix a typo introduced over a year and a half ago which meant that a...
James Teh [Tue, 9 Nov 2010 00:21:50 +0000 (10:21 +1000)]
eventHandler: Fix a typo introduced over a year and a half ago which meant that a particular event would only be executed once for a given object, even if the same event was queued multiple times for that object. This hopefully shouldn't have any effect at present, but it was definitely unintentional.

13 years agoIt seems that MSNHiddenWindowClass fires some events other than nameChange on some...
James Teh [Tue, 9 Nov 2010 00:04:58 +0000 (10:04 +1000)]
It seems that MSNHiddenWindowClass fires some events other than nameChange on some systems which cause WLM 2009 to exit on startup when we respond, so just ignore all events from this class.
Fixes #677.

13 years agomsnmsgr app module: Fix another line we missed in the rename from MSNHistory to OldMS...
James Teh [Tue, 9 Nov 2010 00:00:03 +0000 (10:00 +1000)]
msnmsgr app module: Fix another line we missed in the rename from MSNHistory to OldMSNHistory. Should hopefully fix automatic reporting in WLM 2009.
Fixes #988.

13 years agoadobeAcrobat vbuf backend: Some nodes seem to report FontInfo_MixedInfo for IPDDomNod...
James Teh [Fri, 5 Nov 2010 11:45:18 +0000 (21:45 +1000)]
adobeAcrobat vbuf backend: Some nodes seem to report FontInfo_MixedInfo for IPDDomNode::GetFontInfo() but then report 0 for child count, which causes us to render the node as empty since there are no child nodes to render. One example is the links in the table of contents of the iPhone IOS 4.1 User Guide. To work around this, ignore FontInfo_MixedInfo in these cases and treat it like a node with no font info.

13 years agoMerge main.
James Teh [Fri, 5 Nov 2010 03:10:36 +0000 (13:10 +1000)]
Merge main.

13 years agoRefactor the build process to allow anyone to create binary distributions, portable...
James Teh [Fri, 5 Nov 2010 03:01:35 +0000 (13:01 +1000)]
Refactor the build process to allow anyone to create binary distributions, portable archives, installers and gettext translation templates with a simple command, including setting the version number and signing with a supplied certificate file.
scons is used to facilitate this. All builds should now be done using scons at the top level of the source distribution.
See the updated instructions towards the bottom of the source readme for details on how to use this.
Note that you can no longer build an installer directly by using makensis.

13 years agoMerged main
Michael Curran [Thu, 4 Nov 2010 07:35:59 +0000 (17:35 +1000)]
Merged main

13 years agonvdaHelper: implement support in display models for scrolled windows by hooking Scrol...
Michael Curran [Thu, 4 Nov 2010 07:29:00 +0000 (17:29 +1000)]
nvdaHelper: implement support in display models for scrolled windows by hooking ScrollWindow and ScrollWindowEx. This implementation makes use of displayModel_t::copyRectangle to move a given rectangle in a display model.

13 years agoNVDAHelper: displayModel_t::copyrectangleToOtherModel: rewritten to support new featu...
Michael Curran [Thu, 4 Nov 2010 01:42:22 +0000 (11:42 +1000)]
NVDAHelper: displayModel_t::copyrectangleToOtherModel: rewritten to support new features, allow it to propertly copy from/to the same model, and to be more understandable. Specific changes:
*Rename to "copyRectangle", as the destination model is optional, meaning that the copy could occure all in the one model.
*Rename the arguments otherModel, otherX and otherY to destModel, destX and destY respectivly.
*Move the destModel argument to the end as its optional.
*Rename the clearEntireRectangle argument to opaqueCopy.
*Add a removeFromSource argument, which if True means that  the copy should act like a move (i.e. the content is removed from the source model). This will hopefully be useful when implementing support for scrolling.
*Add an optional destClippingRect argument which allows you to provide a clipping rectangle which should clip all content being copied in to the destination model. Again useful for implementing scrolling support.
*Make copies of all the chunks before doing any clearing,rather than after,  so that copying from/to the same model correctly works. Both bltBlt and scrolling support need this.

13 years agonvdaHelper: hook all functions using apiHook_hookFunction_safe, at the same time...
Michael Curran [Tue, 2 Nov 2010 22:56:52 +0000 (08:56 +1000)]
nvdaHelper: hook all functions using apiHook_hookFunction_safe, at the same time catching and fixing some coding errors, which may have caused, or been the future cause of, some crashes. Specific code error fixes:
*ExtTextOutHelper: lpString must be const.
*TextOutA and TextOutW: the return type is int, not bool (lowercase), and lpString must be const.
*PolyTextOutW and PolyTextOutA: do not use our own custom WA_POLYTEXT template struct, instead  make the hookClass_PolyTextOut template class take the POLYTEXTA or POLYTEXTW as its template argument rather than just char or wchar_t. Although that sort of worked in the past, for actual verification of function signatures a custom struct can't be used.
  *ExtTextOutA and ExtTextOutW: lpString should be const, cbCount should be UINT not int, and lpdx should be INT (uppercase) not int (lowercase).

13 years agonvdaHelper: added a much safer way of hooking functions, that verifies the function...
Michael Curran [Tue, 2 Nov 2010 06:26:07 +0000 (16:26 +1000)]
nvdaHelper: added a much safer way of hooking functions, that verifies the function signatures at compile time.
If using apiHook_hookFunction_safe it is now impossible to use the incorrect function signiture for the real function symbol, the real function variable, or the fake function symbol. They *must* match, or else it doesn't compile.
To now hook a function, do something like real_GetDesktopWindow=apiHook_hookFunction_safe("USER32",GetDesktopWindow,fake_GetDesktopWindow).
The only difference on the outside is that a real defined function symbol must be used as the real function name rather than a string. This does mean though that you must have the header file for the function in order to hook it. Either that or at least have defined it somewhere in the same file, though this would not be any more safer than the older method.
How it works internally:
apiHook_hookFunction_safe is a macro that takes 3 arguments: moduleName, realFunction and fakeFunction.
apiHook_hookFunction_safe calls apiHook_hookFunction_tpl with these arguments, plus a stringified version of the realFunction argument.
apiHook_hookFunction_tpl is a template function which takes a moduleName string, a realFunctionName string, a realFunction symbol, and a fakeFunction symbol. Its template argument is a typename called funcType, which it deduces from the realFunction and fakeFunction signatures, which must match. It also returns a symbol of type funcType, which again will match the other two function symbols.
apiHook_hookFunction_tpl calls the original apiHook_hookFunction, hooking the function in the normal way. The macro and the template are only there for safety purposes at compile time.
 The only limit to this new way of hooking is that the symbol hooked in the particular module must have exactly the same name as the symbol defined in the header file. Plus a header file should be available containing this symbol you are hooking. If these limits are a problem then apiHook_hookFunction can be used directly, but when possible it is very important to use the safer version.

13 years agoA first go at supporting auto-announcement of new text in display models.
Michael Curran [Tue, 2 Nov 2010 04:03:41 +0000 (14:03 +1000)]
A first go at supporting auto-announcement of new text in display models.
*NVDAControllerInternal RPC interface: added displayModelTextChangeNotify, which takes a window and 4 rectangle coordinates (left, top, right bottom) (in screen coordinates) which match the part of the window which has just been updated. A simple implementation in nvdaHelper.py so far just fetches and speaks the text in the given rectangle if the window is the window of the focus object. Note though that notifications do not yet happen by default they must be turned on for each window.
*displayModel RPC interface: add requestTextChangeNotificationsForWindow, which takes a window and a bool saying whether or not you need notifications. Note that the implementation of this function reference counts so that  many  parts of NVDA could all turn it on separately and also turn it off with out affecting the other code.
*nvdaHelper's gdiHooks: for every extTextOutHelper and bitblt call, take note of the rectangle that changed.  A timer that fires every 50 ms in NVDAHelperRemote's manager thread then collects these rectangles and fires a textChangeNotify back to NVDA for each one. When rectangles are queued at first,  any overlapping / adjacent rectangles are merged to cut down on the number of separate notifications.

13 years agoMerge 2010.2. Change sfrom the fi and pl gettext (.po) files have not been merged...
James Teh [Sun, 31 Oct 2010 21:31:39 +0000 (07:31 +1000)]
Merge 2010.2. Change sfrom the fi and pl gettext (.po) files have not been merged due to conflicts.

13 years agoFix access to some Windows Security dialogs such as the dialog that appears when... release-2010.2
James Teh [Thu, 28 Oct 2010 06:02:35 +0000 (16:02 +1000)]
Fix access to some Windows Security dialogs such as the dialog that appears when installing unsigned drivers.
It seems that custom window messages cannot be sent to these dialogs, so sending our custom ping message returns an access denied error, which causes IAccessibleHandler.accessibleObjectFromEvent() to fail.
This custom ping message was implemented to fix Windows Live Messenger 2009 exiting on startup (#677). Instead, just use WM_NULL (which can be sent to these dialogs) and implement a specific condition to ignore the problematic event from Messenger.

13 years agoversionInfo: Set version to 2010.2.
James Teh [Thu, 28 Oct 2010 00:35:49 +0000 (10:35 +1000)]
versionInfo: Set version to 2010.2.

13 years agoUpdated traditional chinese language file and user guide.
Peter Vágner [Wed, 27 Oct 2010 17:41:58 +0000 (19:41 +0200)]
Updated traditional chinese language file and user guide.

13 years agoMerge main.
James Teh [Wed, 27 Oct 2010 05:19:13 +0000 (15:19 +1000)]
Merge main.

13 years agoScriptableObject: Don't store instance methods in the gesture map, as this causes...
James Teh [Wed, 27 Oct 2010 05:18:51 +0000 (15:18 +1000)]
ScriptableObject: Don't store instance methods in the gesture map, as this causes circular references and therefore memory leaks. Instance methods are meant ot be generated on retrieval anyway. Therefore, store the function from the class and create the instance method when the script is retrieved.

13 years agoUpdated croatian language file.
Peter Vágner [Wed, 27 Oct 2010 04:55:30 +0000 (06:55 +0200)]
Updated croatian language file.

13 years agoRemove unneeded.
James Teh [Wed, 27 Oct 2010 04:11:54 +0000 (14:11 +1000)]
Remove unneeded.

13 years agosetup.py: Don't copy kbd files in appModules dir, as they no longer exist.
James Teh [Wed, 27 Oct 2010 00:54:45 +0000 (10:54 +1000)]
setup.py: Don't copy kbd files in appModules dir, as they no longer exist.

13 years agoRemove unneeded code.
James Teh [Wed, 27 Oct 2010 00:49:30 +0000 (10:49 +1000)]
Remove unneeded code.