Closed Bug 10688 Opened 25 years ago Closed 25 years ago

Hitting Tab Key turns off selection by forcing focus change

Categories

(Core :: DOM: Editor, defect, P3)

defect

Tracking

()

VERIFIED FIXED

People

(Reporter: kinmoz, Assigned: buster)

References

Details

Start the editor. Put the caret anywhere in a text block. Hit the tab key. Notice that 4 spaces were added. Now try to move the caret somewhere else or try to select something. You can't!!! This has to do with the fact that nsEventStateManager::PostHandleEvent() is looking specifically for tab characters and then broadcasting an onBlur message, which the editor now listens for. Here's the stack trace: nsTextEditorFocusListener::Blur(nsIDOMEvent * 0x02344830) line 1426 nsEventListenerManager::HandleEvent(nsIPresContext & {...}, nsEvent * 0x0012f818, nsIDOMEvent * * 0x0012f768, unsigned int 3, nsEventStatus & nsEventStatus_eIgnore) line 818 + 17 bytes nsDocument::HandleDOMEvent(nsDocument * const 0x0230f5f0, nsIPresContext & {...}, nsEvent * 0x0012f818, nsIDOMEvent * * 0x0012f768, unsigned int 1, nsEventStatus & nsEventStatus_eIgnore) line 2303 nsHTMLHtmlElement::HandleDOMEvent(nsHTMLHtmlElement * const 0x0231179c, nsIPresContext & {...}, nsEvent * 0x0012f818, nsIDOMEvent * * 0x00000000, unsigned int 1, nsEventStatus & nsEventStatus_eIgnore) line 186 + 41 bytes nsEventStateManager::SendFocusBlur(nsEventStateManager * const 0x0233dee0, nsIContent * 0x00000000) line 1236 nsEventStateManager::SetContentState(nsEventStateManager * const 0x0233dee0, nsIContent * 0x00000000, int 2) line 1129 nsEventStateManager::ShiftFocus(int 1) line 833 nsEventStateManager::PostHandleEvent(nsEventStateManager * const 0x0233dee0, nsIPresContext & {...}, nsGUIEvent * 0x0012fb78, nsIFrame * 0x0231fe50, nsEventStatus & nsEventStatus_eIgnore, nsIView * 0x0231fcd0) line 280 PresShell::HandleEvent(PresShell * const 0x02318124, nsIView * 0x0231fcd0, nsGUIEvent * 0x0012fb78, nsEventStatus & nsEventStatus_eIgnore) line 2259 + 43 bytes nsView::HandleEvent(nsView * const 0x0231fcd0, nsGUIEvent * 0x0012fb78, unsigned int 8, nsEventStatus & nsEventStatus_eIgnore, int & 0) line 834 nsView::HandleEvent(nsView * const 0x0231f1f0, nsGUIEvent * 0x0012fb78, unsigned int 8, nsEventStatus & nsEventStatus_eIgnore, int & 0) line 819 nsView::HandleEvent(nsView * const 0x0231f120, nsGUIEvent * 0x0012fb78, unsigned int 8, nsEventStatus & nsEventStatus_eIgnore, int & 0) line 819 nsView::HandleEvent(nsView * const 0x023175c0, nsGUIEvent * 0x0012fb78, unsigned int 28, nsEventStatus & nsEventStatus_eIgnore, int & 0) line 819 nsViewManager::DispatchEvent(nsViewManager * const 0x02317e20, nsGUIEvent * 0x0012fb78, nsEventStatus & nsEventStatus_eIgnore) line 1736 HandleEvent(nsGUIEvent * 0x0012fb78) line 67 nsWindow::DispatchEvent(nsWindow * const 0x0231f284, nsGUIEvent * 0x0012fb78, nsEventStatus & nsEventStatus_eIgnore) line 490 + 10 bytes nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012fb78) line 515 nsWindow::DispatchKeyEvent(unsigned int 133, unsigned short 0, unsigned int 9) line 1955 + 15 bytes nsWindow::OnKeyDown(unsigned int 9, unsigned int 15) line 2150 nsWindow::ProcessMessage(unsigned int 256, unsigned int 9, long 983041, long * 0x0012fd9c) line 2493 + 37 bytes nsWindow::WindowProc(void * 0x000d0cfc, unsigned int 256, unsigned int 9, long 983041) line 563 + 27 bytes USER32! 77e71250()
*** Bug 10430 has been marked as a duplicate of this bug. ***
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Summary: Hitting Tab Key turns off selection → Hitting Tab Key turns off selection by forcing focus change
problem is that we're handling tab on keypress, and joki is handling tab on keydown to force focus changes. switched our handling of tab to keydown, and all is well.
Status: RESOLVED → VERIFIED
verified in 8/10 build.
You need to log in before you can comment on or make changes to this bug.