Commit Graph
3 Commits
Author SHA1 Message Date
Catrope 1400354f43 Revert "Update jquery.uls to a9dc11b"
Breaks VisualEditor by throwing exceptions on most key
presses and selection changes, which causes Enter and Tab
to behave very badly in VE.

This reverts commit 3499b0a1b9.

Bug: T144871
Change-Id: I0518b056e6946341cf29eb3f16378702d37086a5
2016-09-07 00:47:01 +00:00
Roan KattouwandJforrester 81ecac9a5d Blacklist all VisualEditor contentEditables, not just the main one
With the introduction of table editing support, ULS is now activating
on table cells, which have contentEditable=true, but do not have
the ve-ce-documentNode class. So instead, expand the blacklist to
include all descendants of .ve-ce-surface.

Bug: 72824
Change-Id: I974d7ab2726bbe15606f43d7713627eed623435e
2014-11-22 03:08:40 +00:00
Roan Kattouw d6ae72eb9c Don't trigger namespaced events, it breaks VisualEditor
Code like $input.trigger( 'focus.ime' ); doesn't make any sense. Event
namespaces exist for binding and unbinding and are irrelevant when
triggering. However, there's a bug in the version of jQuery that we
use (1.8.3) that causes .trigger( 'focus.ime' ) to perform a native
focus and call natively bound focus handlers, but only call jQuery
event handlers bound to 'focus.ime', not handlers bound to 'focus'.
This bug is fixed in jQuery 1.9+. http://jsfiddle.net/WGy9h/3/
demonstrates this bug.

The way ULS broke VE with this went like this:
* VE initializes and creates two contentEditable divs, the
  pasteTarget and the documentNode. It then focuses the documentNode.
* ULS loads jQuery.ime
* Once jQuery.ime loads, it first calls .trigger( 'focus.ime' ) on
  the pasteTarget
* jQuery focuses the pasteTarget, which means a blur is emitted on the
  documentNode
* In response to this blur event, VE disables the SurfaceObserver
* jQuery.ime then calls .trigger( 'focus.ime' ) on the documentNode
* jQuery focuses the documentNode, but does not call VE's focus handler
  because it's bound to 'focus' rather than 'focus.ime'
* This means VE's SurfaceObserver is not reenabled
* If the user then focuses something else then focuses VE again, a
  native focus event fires and the SurfaceObserver does get reenabled

Change-Id: I7c590599df4cf62418403bc1d1dccfc3c6db5fd3
2013-09-27 16:34:19 -07:00