KawaiiBASIC / classilla

Automatically exported from code.google.com/p/classilla
0 stars 0 forks source link

Cursor keys don't work in text boxes #202

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Not sure when this regressed. They do work other places, so this is probably 
the editor or some such.

Original issue reported on code.google.com by classi...@floodgap.com on 27 Oct 2012 at 12:19

GoogleCodeExporter commented 9 years ago
Regressed in 9.3.1. Mouse still works. This might have been an event handling 
change. No other keys seem to be affected.

Original comment by classi...@floodgap.com on 27 Oct 2012 at 1:18

GoogleCodeExporter commented 9 years ago
Likely suspects:
206859
257523 STRONG SUSPICION (check both patches)
328566

doubt 124750 or 262887
doubt 292591 or 292589

Original comment by classi...@floodgap.com on 10 Nov 2012 at 4:31

GoogleCodeExporter commented 9 years ago
Looked at all seven. Can't find an obvious cause in any of them, even backed 
out a couple. This must be more subtle.

Original comment by classi...@floodgap.com on 10 Nov 2012 at 6:11

GoogleCodeExporter commented 9 years ago
206859 again (check libeditor)
292591??
292589??

look at nsTextWidget: cursor keys are being suppressed for some reason

Original comment by classi...@floodgap.com on 12 Nov 2012 at 5:20

GoogleCodeExporter commented 9 years ago
I'm still not sure what broke this, but I now know what's broken. in 
HTMLEditor.shlb (_editor.mcp), nsPlaintextEditor::HandleKeyPress is returning 
NS_ERROR_FAILURE. The call stack looks like this:

nsAppShell::Run()
nsMacMessagePump::DoMessagePump()
nsMacMessagePump::GetEvent(EventRecord&)
[ lots of mixed mode calls ]
nsMacTSMMessagePump::UnicodeNotFromInputMethodHandler(const 
AEDesc*,AEDesc*,long)
nsMacEventHandler::HandleUKeyEvent(wchar_t*,long,EventRecord&)
nsWindow::DispatchWindowEvent(nsGUIEvent&)
nsWindow::DispatchEvent(nsGUIEvent*,nsEventStatus&)
HandleEvent(nsGUIEvent*)
nsViewManager::DispatchEvent(nsGUIEvent*,nsEventStatus*)
nsView::HandleEvent(nsViewManager*,nsGUIEvent*,int)
nsViewManager::HandleEvent(nsView*,nsGUIEvent*,int)
PresShell::HandleEvent(nsIView*,nsGUIEvent*,nsEventStatus*,int,int&)
PresShell::HandleEventInternal(nsEvent*,nsIView*,unsigned int,nsEventStatus*)
nsHTMLTextAreaElement::HandleDOMEvent(nsIPresContext*,nsEvent*,nsIDOMEvent**,uns
igned int,nsEventStatus*)
nsGenericElement::HandleDOMEvent(nsIPresContext*,nsEvent*,nsIDOMEvent**,unsigned
 int,nsEventStatus*)
nsEventListenerManager::HandleEvent(nsIPresContext*,nsEvent*,nsIDOMEvent**,nsIDO
MEventTarget*,unsigned int,nsEventStatus*)
nsTextEditorKeyListener::KeyPress(nsIDOMEvent*)
nsPlaintextEditor::HandleKeyPress(nsIDOMKeyEvent*)

Original comment by classi...@floodgap.com on 12 Nov 2012 at 8:54

GoogleCodeExporter commented 9 years ago
This isn't how I wanted to solve this, but I have a simple keycontroller 
working in nsPlaintextEditor now. It has some glitches though.

Original comment by classi...@floodgap.com on 12 Nov 2012 at 10:02

GoogleCodeExporter commented 9 years ago
I think I have most of the glitches sorted. Again, this is not how I wanted to 
solve this issue, but it behaves the same as 9.2.3 and 9.3.0, and can easily be 
disabled (all within nsPlaintextEditor::HandleKeyPress).

Original comment by classi...@floodgap.com on 12 Nov 2012 at 10:56

GoogleCodeExporter commented 9 years ago
There seems to be some disconnect in nsGlobalWindow.cpp about caret mode. I 
wonder if our focus changes are to blame.

Original comment by classi...@floodgap.com on 18 Nov 2012 at 1:33

GoogleCodeExporter commented 9 years ago
Well, it doesn't matter. I can't find a better solution and it works, and since 
the code is mine, we could enhance it later.

Original comment by classi...@floodgap.com on 6 Jan 2013 at 7:48