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
* Updates jquery.webfonts from upstream
* Introduces wgULSNoWebfontsSelectors configuration variable. It
takes an array of jquery selector to which webfonts will not be
applied if defined.
Change-Id: I0dc263f84620af4077f52e18eeb0f986ff0f13b9
If a user does changes in module A, does not save or cancel,
goes to module B, does some changes, moves to other modules,
and finally presses Apply, all changes should get saved.
Similarly, if a user cancels, all changes should get cancelled.
This required moving the cancel and apply button outside of modules
and managed by the language settings framework.
Modules get mw.uls.settings.apply or mw.uls.settings.cancel triggers
to do whatever they want to do on apply or save.
Includes some refactoring related to this.
Bug: 53256
Change-Id: I7d773d33a980a78604b36e39bf96a5686870124e
Happens when anonymous user cannot change language, and the
language of the translation differs from the content language.
Change-Id: Ie4f15f1813eec992cfe060baf9cd7dcb5f8a0d95
Restore the language(ui, content), font values, input method values.
Rest of the UI resetting will be done by redrawing the settings
area whenever the language settings is accessed again.
Change-Id: Ia1488d1501f9c9f61726cea3637624f22a7ba135
This avoids mandate of having 'cancel' method defined in settings module.
Also avoids looping of all modules while cancel is happening.
Change-Id: I87d0975f2ef1bdee61f71d66eabe3040b81876b8
It is the font used in book maker for Persian Wikipedia. Its font
family (Nazanin) is one of widely used font on Persian documents.
It is needed for print output of Persian Wikipedia articles
Change-Id: I2c658f599b5c05882673f42c29c80ae826ddc047
In I59dfcfb25c, for logging events when page is navigating away, we
used callbacks with mw.hook. That is wrong approach. If event logging
is disabled those callbacks will never called: it broke language change
and all use cases which navigates away from current page.
Event logging should not interfere with any ULS functionality. If ULS
functionality depends on callbacks from event logging, it is wrong.
In this patch, we give a small time window to make sure event logging is
fired, but we won't wait for its success or failure.
If eventlogging is disabled, this time window does not exist.
Change-Id: I0b7d9d8b9d1d01b99422010596ebfa80b2589d04
upstream: http://github.com/wikimedia/jquery.ime
changes:
* Support for contenteditable, like the VisualEditor surfaces. This
support is very minimal now. Because of VE bugs on IME support, many
things are broken. But one-one keyboard mappings should work with less
issues. The UI of jquery.ime is not integrated with VE toolbar
* More input methods
- IPA-X-SAMPA by Amir
- Armenian keymaps by Aleksey Chalabyan
- Kurdish keymaps by Ghybu
- Кыргыз keymap by Amir
- Central Kurdish keyboards by Çalak
* A lot of input method bug fixes multiple contributors
* Minor UX fixes
Introduces Rangy library.
A module named rangy is defined in VisualEditor extension with more features of rangy.
Here we need only the core library. This module is loaded dynamically from
client when rangy is undefined. If VE is present rangy will be defined, the module
defined in VE will be used. ie, This get loaded only when VE is not present and
user trying to type in a contenteditable.
Bug: 49569
Bug: 50849
Bug: 50220
Change-Id: Iadad5a4e5972fbd1359847526d28e9dbbe00a7c4
Separating event logging out of ULS functionality. Event logging
is now loosely coupled with ULS. ULS core modules can emit an event
whenever EventLogging is required. The eventlogger module will act
on the event if configured.
Change-Id: I59dfcfb25c1acb85376b56239f2355ee7c4aff1e