[Webkit-unassigned] [Bug 69137] In input field caret is not blinking after context menu hide

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Oct 17 02:01:46 PDT 2011


--- Comment #9 from chandra shekar vallala <chandra.vallala at motorola.com>  2011-10-17 02:01:46 PST ---
(In reply to comment #8)
> (In reply to comment #7)
> > (In reply to comment #6)
> > > (From update of attachment 109479 [details] [details] [details])
> > > This bug reproduces on Safari as well. We need to fix it in cross-platform code then.
> > 
> > To match the native app behaviour [caret should blink after the context menu hide which is same across all platforms] we should resume the caret blink after the menu hide.  Currently there is no way in which WebCore knows whether the context menu widget is hidden or not and it can even more troublesome in multi-process ports like Chromium or WebKit2 since widget is handled in different process.
> So are you saying that ContextMenuController doesn't get notified at all? That's hard to believe. If anything, we should be adding some method in ContextMenuController to notify when the context menu hides.

Yes, ContextMenuController doesn't get notified from browser. So I added a contextMenuHidden function to controller. This should get called when menu hides.

> > Instead we could resume caret after menu is dismissed which should be handled at WebKit port level rather than in WebCore.
> That'll be a wrong abstraction layer to deal with this. Suspension of caret blinking is done in EventHandler, and resuming it in WebKit layer is strange to say the least.

Yes, your right. But I am not sure of adding a new function in EventHandler to resume/suspend the caret. EventHandler has a function called lostMouseCapture to do the same. The function name doesn't match to this case. I added a new one in EventHandler.

> > My understanding is root cause of the bug is because of the way we handle the contextmenu creation/destroy which is defined WebKit port layer for each platform.
> Then we should add some notification mechanism so that we can notify either EventHandler or ContextMenuController when the context menu disappears. We should definitely NOT resume caret blinking in WebKit layer. In fact, I'd like to make setCaretBlinkingSuspended only accessible from EventHandler.

To make the behavior same across all platforms, we should suspend/resume the caret on context menu show/hide respectively.

Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

More information about the webkit-unassigned mailing list