Welcome to NeoOffice developer notes and announcements
NeoOffice
Developer notes and announcements
 
 

This website is an archive and is no longer active
NeoOffice announcements have moved to the NeoOffice News website


Support
· Forums
· NeoOffice Support
· NeoWiki


Announcements
· Twitter @NeoOffice


Downloads
· Download NeoOffice


  
NeoOffice :: View topic - Macspeech Dictate and NO3
Macspeech Dictate and NO3
 
   NeoOffice Forum Index -> NeoOffice Releases
View previous topic :: View next topic  
Author Message
bbjonz
Pure-blooded Human


Joined: Jun 01, 2005
Posts: 31

PostPosted: Tue Apr 21, 2009 2:33 pm    Post subject: Macspeech Dictate and NO3

I've noticed an interesting behavior when dictating into Neooffice using Dictate. Neooffice does not seem to remember cursor positions when making corrections. In other words, when I tell Dictate to "scratch that" (which effectively backspaces to the most recent pause in the dictation) the cursor does not go back exactly to that spot but tends to be one or two spaces short (to the right). This does not happen in Openoffice so I'm curious why it would in Neo.

As a side note, and as many of you probably know, Neooffice is much faster then Openoffice, and the speed difference is plainly visible when backspacing using Dicate, and when dictating contractions. In Openoffice, "it is" becomes 'its--for some reason, the apostrophe appears before the letters, whereas in Neooffice that doesn't happen. It seems to happen with all contractions in Openoffice. Strange...

Anyway, thanks in advance for any suggestions.

Joe
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Tue Apr 21, 2009 3:38 pm    Post subject:

Since this is a commercial product that runs only on Intel Macs that have a microphone, neither I nor narf can setup your environment. So, we can only guess as to what key events that product actually sends to NeoOffice when you say "scratch that".

What I do know is that NeoOffice's underlying OpenOffice.org code has several autoreplace and autocorrect features that may be kicking in. To see which of these features are turned on, select the Tools :: AutoCorrect menu and in the dialog that appears, click on the Options tab. If you uncheck all checked options and press the OK button, do you see any change?

Patrick
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Tue Apr 21, 2009 4:01 pm    Post subject:

Wait. Before you fuss with all of the autocorrection settings, can you do the following steps and tell us if this disables your dictation software in NeoOffice and OpenOffice.org?:

1. Launch the System Preferences applictions
2. Click on the Universal Access icon
3. Uncheck the "Enable access for assistive devices" checkbox

If this disables your dictation software, then I know why you are seeing different results in NeoOffice compared to OpenOffice.org: NeoOffice 3.0 does not include OpenOffice.org 3.0.1's native Universal Access code.

Unfortunately, while NeoOffice 3.0 includes nearly all of the features in OpenOffice.org 3.0.1, we have not been able integrate OpenOffice.org's Universal Access code into NeoOffice.

Without OpenOffice.org's Universal Access code, you will get see this same behavior which was originally discovered in older versions of OpenOffice.org in bug 1553: the dictation software cannot predict where the cursor is in document.

If our dictation software fits requires OpenOffice.org 3.0.1's new Universal Access support and you cannot workaround the cursor mismatch bug that exists in all versions of NeoOffice, we recommend that you use OpenOffice.org 3.01, Microsoft Office, or Apple iWork.

Patrick
Back to top
bbjonz
Pure-blooded Human


Joined: Jun 01, 2005
Posts: 31

PostPosted: Tue Apr 21, 2009 4:23 pm    Post subject:

Hi Patrick,

Thanks for your responses. Deselecting the formatting options did not work. And deselecting universal access does not disable dictation in either of the two programs.

Thank you for your suggestions regarding alternatives that work with my dictation software. I have all three, but prefer to work with and support open source software whenever possible, so I will stick with Openoffice for the majority of my work when dictation is needed.

Joe
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Tue Apr 21, 2009 4:46 pm    Post subject:

bbjonz wrote:
Thanks for your responses. Deselecting the formatting options did not work. And deselecting universal access does not disable dictation in either of the two programs.


Hmm. Then I assume that your dictation software does not query NeoOffice or OpenOffice.org through Mac OS X's Universal Access functions and erases by sending NeoOffice and OpenOffice.org a series of fake key events.

If my theory is correct, then there is probably something unique about those fake key events that NeoOffice is stumbling on. Since NeoOffice uses Java to process native key events, let me write a simple Java application that you can use to log the fake key events that your dictation software is sending.

I'll post a sample Java application in a few minutes.

Patrick
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Tue Apr 21, 2009 4:58 pm    Post subject:

OK. Attached is a simple Java test application. This application will display a 500 x 500 pixel empty window. When that window is the active window, all key events that the application receives will be printed.

Can you do following steps to run the application?:

1. Download the attached Test.class file and put it on your Desktop

2. Launch the /Applications/Terminal application, copy the following commands into the Terminal window, and press the Return key:

Code:
cd ~/Desktop
java -classpath . Test


3. Click on the empty window that appears, dictate a couple of words, and then tell your dictation software to "scratch that"

4. Press the Command-Q keys to quit the application

5. Paste the output in the Terminal window into this forum topic

Patrick
Back to top
bbjonz
Pure-blooded Human


Joined: Jun 01, 2005
Posts: 31

PostPosted: Mon May 04, 2009 2:07 pm    Post subject: Whoa!

Hi Patrick,

Didn't mean to disappear on you! Thought the matter was closed. I'll check on this right away and get back to you. Thanks for doing that!

Joe
Back to top
bbjonz
Pure-blooded Human


Joined: Jun 01, 2005
Posts: 31

PostPosted: Tue May 05, 2009 9:51 am    Post subject:

Hi Patrick,

Text pasted below. I hope this is what you are looking for.

Joe
Code:


java.awt.event.KeyEvent[KEY_PRESSED,keyCode=16,keyText=?,keyChar=Undefined keyChar,modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_LEFT,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=79,keyText=O,keyChar='O',modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='O',modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=79,keyText=O,keyChar='O',modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=16,keyText=?,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_LEFT,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=75,keyText=K,keyChar='k',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='k',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=75,keyText=K,keyChar='k',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=65,keyText=A,keyChar='a',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='a',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=65,keyText=A,keyChar='a',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=89,keyText=Y,keyChar='y',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='y',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=89,keyText=Y,keyChar='y',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=44,keyText=,,keyChar=',',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=',',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=44,keyText=,,keyChar=',',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=' ',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=72,keyText=H,keyChar='h',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='h',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=72,keyText=H,keyChar='h',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='e',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=82,keyText=R,keyChar='r',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='r',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=82,keyText=R,keyChar='r',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='e',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=' ',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=65,keyText=A,keyChar='a',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='a',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=65,keyText=A,keyChar='a',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=82,keyText=R,keyChar='r',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='r',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=82,keyText=R,keyChar='r',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='e',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=' ',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=65,keyText=A,keyChar='a',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='a',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=65,keyText=A,keyChar='a',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=' ',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=70,keyText=F,keyChar='f',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='f',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=70,keyText=F,keyChar='f',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='e',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=87,keyText=W,keyChar='w',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='w',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=87,keyText=W,keyChar='w',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=' ',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=87,keyText=W,keyChar='w',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='w',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=87,keyText=W,keyChar='w',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=79,keyText=O,keyChar='o',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='o',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=79,keyText=O,keyChar='o',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=82,keyText=R,keyChar='r',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='r',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=82,keyText=R,keyChar='r',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=68,keyText=D,keyChar='d',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='d',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=68,keyText=D,keyChar='d',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=83,keyText=S,keyChar='s',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='s',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=83,keyText=S,keyChar='s',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=46,keyText=.,keyChar='.',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='.',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=46,keyText=.,keyChar='.',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=16,keyText=?,keyChar=Undefined keyChar,modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_LEFT,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=37,keyText=?,keyChar=Undefined keyChar,modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=37,keyText=?,keyChar=Undefined keyChar,modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=16,keyText=?,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_LEFT,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=' ',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=8,keyText=?,keyChar=?,keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=?,keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=8,keyText=?,keyChar=?,keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Tue May 05, 2009 10:10 am    Post subject:

Just to confirm what you entered. You entered the following text:

Code:
OKAY, here are words,


Then you pressed the "<" key.

Then you press the spacebar and then the Delete key.

Is that correct?

Patrick
Back to top
bbjonz
Pure-blooded Human


Joined: Jun 01, 2005
Posts: 31

PostPosted: Wed May 06, 2009 8:34 am    Post subject:

Not sure, but I know I didn't press the any keys--all dictation. I said "scratch that" and then copied the term window output. I'll check again and keep better track of what I said.

Joe
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Wed May 06, 2009 8:59 am    Post subject:

bbjonz wrote:
Not sure, but I know I didn't press the any keys--all dictation. I said "scratch that" and then copied the term window output. I'll check again and keep better track of what I said.


Can you speak the following into the test program and post the output?:

Code:
OKAY, here are words,


Then say "scratch that".

Also, when you do the same in Apple's TextEdit application, what gets deleted? Does only the "," get deleted or does "words," get deleted?

Patrick
Back to top
bbjonz
Pure-blooded Human


Joined: Jun 01, 2005
Posts: 31

PostPosted: Wed May 06, 2009 10:17 am    Post subject:

Okay, first, Textedit doesn't seem to have the same problem--the cursor returns to the correct position after saying "scratch that."

Here's the output from the java program:

Code:

java.awt.event.KeyEvent[KEY_PRESSED,keyCode=16,keyText=?,keyChar=Undefined keyChar,modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_LEFT,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=79,keyText=O,keyChar='O',modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='O',modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=79,keyText=O,keyChar='O',modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=16,keyText=?,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_LEFT,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=75,keyText=K,keyChar='k',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='k',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=75,keyText=K,keyChar='k',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=65,keyText=A,keyChar='a',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='a',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=65,keyText=A,keyChar='a',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=89,keyText=Y,keyChar='y',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='y',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=89,keyText=Y,keyChar='y',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=44,keyText=,,keyChar=',',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=',',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=44,keyText=,,keyChar=',',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=' ',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=72,keyText=H,keyChar='h',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='h',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=72,keyText=H,keyChar='h',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='e',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=82,keyText=R,keyChar='r',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='r',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=82,keyText=R,keyChar='r',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='e',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=' ',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=65,keyText=A,keyChar='a',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='a',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=65,keyText=A,keyChar='a',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=82,keyText=R,keyChar='r',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='r',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=82,keyText=R,keyChar='r',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='e',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=' ',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=84,keyText=T,keyChar='t',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='t',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=84,keyText=T,keyChar='t',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=72,keyText=H,keyChar='h',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='h',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=72,keyText=H,keyChar='h',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='e',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=69,keyText=E,keyChar='e',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=' ',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=87,keyText=W,keyChar='w',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='w',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=87,keyText=W,keyChar='w',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=79,keyText=O,keyChar='o',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='o',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=79,keyText=O,keyChar='o',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=82,keyText=R,keyChar='r',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='r',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=82,keyText=R,keyChar='r',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=68,keyText=D,keyChar='d',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='d',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=68,keyText=D,keyChar='d',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=83,keyText=S,keyChar='s',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='s',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=83,keyText=S,keyChar='s',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=44,keyText=,,keyChar=',',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=',',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=44,keyText=,,keyChar=',',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=16,keyText=?,keyChar=Undefined keyChar,modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_LEFT,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=37,keyText=?,keyChar=Undefined keyChar,modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=37,keyText=?,keyChar=Undefined keyChar,modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=16,keyText=?,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_LEFT,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=' ',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=32,keyText=?,keyChar=' ',keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=8,keyText=?,keyChar=?,keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=?,keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=8,keyText=?,keyChar=?,keyLocation=KEY_LOCATION_STANDARD,rawCode=0] on panel0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=157,keyText=?,keyChar=Undefined keyChar,modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_LEFT,rawCode=0] on panel0


Thanks again. Please don't waste too much time with this!

Joe
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Wed May 06, 2009 10:20 am    Post subject:

bbjonz wrote:
Okay, first, Textedit doesn't seem to have the same problem--the cursor returns to the correct position after saying "scratch that."


Where exactly is that correct position? I don't have MacSpeech so I don't know exactly what "scratch that" is supposed to delete in my example.

Patrick
Back to top
bbjonz
Pure-blooded Human


Joined: Jun 01, 2005
Posts: 31

PostPosted: Wed May 06, 2009 10:37 am    Post subject:

Depends, actually. The first one should delete the last comma, the second one up to, but not the last comma, and so on. MacSpeech has funny behavior because if one pauses before punctuation, then punctuation is not treated as part of the preceding text. If no pause, then it deletes the punctuation and the preceding text, up to the previous pause.

Joe
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Wed May 06, 2009 11:07 am    Post subject:

OK. I now understand how MacSpeech deletes text. It uses the following steps:

1. It highlights the text to delete by sending Shift-< keystrokes to the applications. The number of those keystrokes sent to the application is equal to the number of characters that MacSpeech wants to delete.

2. It sends a spacebar keystroke to overwrite the selected text with a space.

3. It sends a Delete keystroke to delete the space sent in step 2.

My guess is that the NeoOffice problem is in step 1. My theory is that Java is collapsing some of the keystrokes in step 1 into a reduced number of keystrokes. Unfortunately, I would need to have MacSpeech installed to test this theory. Sad

Patrick
Back to top
Display posts from previous:   
   NeoOffice Forum Index -> NeoOffice Releases All times are GMT - 7 Hours
Page 1 of 1

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum

Powered by phpBB © 2001, 2005 phpBB Group

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © Planamesa Inc.
NeoOffice is a registered trademark of Planamesa Inc. and may not be used without permission.
PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.