mediawiki-extensions-Visual.../modules/ve/ui
Roan Kattouw febc0f567f Defer selection-triggered updates in ve.ui.Context
Move selection change handling (closing the popup if open, and updating
the context toolbar) to .afterChange(). Every time .onChange() detects
a selection change, it schedules a call to afterChange(). These calls
are batched so that multiple selection changes in the same tick cause
afterChange() to be called only once.

Deferring these updates causes them to no longer occur while a 'change'
event is being emitted. This means that if an inspectors' close handler
calls .change(), that call is now no longer nested inside another
.change() call and doesn't run afoul of any render locks set by the
caller of the outer .change().

Bug: 54675
Change-Id: Iae2f41a83b5d64251a54e42303100e84a5c25561
2013-10-23 15:12:47 +00:00
..
actions Remove ve.{inheritClass,mixinClass} and use OO instead 2013-10-18 18:58:08 +02:00
elements Merge "Split out popup functionality from ve.ui.PopupButtonWidget to ve.ui.PopuppableElement" 2013-10-17 22:15:41 +00:00
inspectors Remove ve.getHash and use getHash from oojs instead 2013-10-22 19:14:23 +00:00
layouts Rename @emits to @fires so we're forward compatible with JSDuck 5 2013-10-22 19:11:16 +00:00
styles Followup bb03e8f: fix toolbar floating 2013-10-22 23:19:22 +00:00
toolgroups Remove ve.{inheritClass,mixinClass} and use OO instead 2013-10-18 18:58:08 +02:00
tools Rename ui.Tool.static.canEditModel to isCompatibleWith 2013-10-22 21:20:09 +02:00
widgets Remove ve.getHash and use getHash from oojs instead 2013-10-22 19:14:23 +00:00
ve.ui.Action.js The Great ve.ui.Surface refactor of 2013 2013-05-24 14:01:02 +02:00
ve.ui.ActionFactory.js Remove ve.Factory and ve.Registry and use oojs instead 2013-10-22 19:15:18 +00:00
ve.ui.CommandRegistry.js Remove ve.Factory and ve.Registry and use oojs instead 2013-10-22 19:15:18 +00:00
ve.ui.Context.js Defer selection-triggered updates in ve.ui.Context 2013-10-23 15:12:47 +00:00
ve.ui.Dialog.js Rename @emits to @fires so we're forward compatible with JSDuck 5 2013-10-22 19:11:16 +00:00
ve.ui.DialogFactory.js Remove ve.Factory and ve.Registry and use oojs instead 2013-10-22 19:15:18 +00:00
ve.ui.Frame.js Rename @emits to @fires so we're forward compatible with JSDuck 5 2013-10-22 19:11:16 +00:00
ve.ui.Inspector.js Remove ve.{inheritClass,mixinClass} and use OO instead 2013-10-18 18:58:08 +02:00
ve.ui.InspectorFactory.js Remove ve.Factory and ve.Registry and use oojs instead 2013-10-22 19:15:18 +00:00
ve.ui.js ve.ui.ViewRegistry annihilation 2013-06-26 16:52:10 -07:00
ve.ui.Layout.js Use OO.EventEmitter instead of ve.EventEmitter 2013-10-22 16:57:33 +00:00
ve.ui.Surface.js Use OO.EventEmitter instead of ve.EventEmitter 2013-10-22 16:57:33 +00:00
ve.ui.SurfaceDialog.js Remove ve.{inheritClass,mixinClass} and use OO instead 2013-10-18 18:58:08 +02:00
ve.ui.SurfaceInspector.js Remove ve.{inheritClass,mixinClass} and use OO instead 2013-10-18 18:58:08 +02:00
ve.ui.SurfaceToolbar.js Rename @emits to @fires so we're forward compatible with JSDuck 5 2013-10-22 19:11:16 +00:00
ve.ui.SurfaceWindowSet.js Remove ve.Factory and ve.Registry and use oojs instead 2013-10-22 19:15:18 +00:00
ve.ui.TargetToolbar.js Remove ve.{inheritClass,mixinClass} and use OO instead 2013-10-18 18:58:08 +02:00
ve.ui.Tool.js Rename ui.Tool.static.canEditModel to isCompatibleWith 2013-10-22 21:20:09 +02:00
ve.ui.Toolbar.js Remove ve.Factory and ve.Registry and use oojs instead 2013-10-22 19:15:18 +00:00
ve.ui.ToolFactory.js Remove simpleArray utilities from ve.js and use oojs instead 2013-10-23 03:26:53 +02:00
ve.ui.ToolGroup.js Remove ve.{inheritClass,mixinClass} and use OO instead 2013-10-18 18:58:08 +02:00
ve.ui.Trigger.js Add the special 'clear' (12) button to ve.ui.Trigger 2013-07-29 16:41:28 -07:00
ve.ui.TriggerRegistry.js Remove ve.Factory and ve.Registry and use oojs instead 2013-10-22 19:15:18 +00:00
ve.ui.Widget.js Use OO.EventEmitter instead of ve.EventEmitter 2013-10-22 16:57:33 +00:00
ve.ui.Window.js Rename @emits to @fires so we're forward compatible with JSDuck 5 2013-10-22 19:11:16 +00:00
ve.ui.WindowSet.js Remove ve.Factory and ve.Registry and use oojs instead 2013-10-22 19:15:18 +00:00