Create an ext.visualEditor.mwextensionmessages module in our
ResourceLoaderRegisterModules hook and load them there as available instead.
Bug: T139550
Change-Id: I89e942052f86291085652ae93ae8d10efefb5f44
When our remember-last preference changes work, alongside changing the
label of the edit tab, also change the label of the edit section links.
I seriously have no idea WTF I was thinking back in December when I
put some of this code into #activatePageTarget.
Bug: T137424
Change-Id: I581c0acf0a3ad11ad3bcf4e2e46242907ca9166f
This replaces ve.safeDecodeURIComponent(...).replace( /_/g, ' ' ) . This action
is really specific to the quirks of mediawiki title processing.
Change-Id: Ia9e525c9340e6de9e485355899996c97867ccb48
Make new graphical interface for editing existing
galleries and adding new galleries.
NB The dialog does not yet support rich text in the
image captions, nor does it provide separate fields for
e.g. link, alt text, etc. These are dependent on parsing
the text within the tag, which is yet to be implemented
by Parsoid. For now, these attributes should be
specified in wikitext in the image-specific caption
field.
Bug: T45037
Change-Id: I2b4082e991268241a15b9bbd6d85c94cdc2185f2
New changes:
1cda586 Split about groups on text nodes
7b4619d ve.ui.TabIndexScope: provide a scope for tabIndex
54d7a35 Insert undo breakpoints at word breaks
9e6a562 Use cloneWithData in beforePaste
04c0921 Lower supported Firefox version in stylelint
8e0c513 Update OOjs UI to v0.17.4
Change-Id: I14cf5187954f954fb6039b28fb8b0ee18658fd21
Some code was expecting an associative array with content model IDs
as keys, and some wwas expecting a numeric array.
Make it work more like namespace checks.
Change-Id: I804db88ed4562a6eea2b6723cb5cc8ae39d7c08f
T52720 (link corruption in FF13/14) appears to be fixed.
T52780 (editor not loading in FF11/12) appears to be fixed.
FF11 has a new issue where templates are normalised even
when not touched (T136607)
Change-Id: I34358e3d90b8186e6b89c04c038ab79c908fc81b
The first two are deprecated. Take advantage of this to consolidate the
code and add comments. Note that these config options are not currently
used in WMF production, and might never be used again, depending on how
futher roll-outs go.
Bug: T135071
Change-Id: Ie7638b1aed9f71c19d0735e831956f853201902b
Define $editableContent on target construction, and mark
all non-ancestor nodes between that at the target container
as uneditable (50% opacity, no pointer events).
Bug: T58289
Change-Id: I7fe51104bd5aa1bd53ffc604e5f02752c7553578
New changes:
f50f6a9 Remove directy dependency on stylelint
c45cfeb Add <BDI> support
4e5d312 Update store hashes when modifying items in store during #sanitize
eadc310 build: Bump grunt-stylelint to v0.3.0
a55520f Fix watch path for css
f016c4d Re-clone linear data on each paste
Change-Id: I2a1340261ce1f457f28c34fb1aaec7d4966783ea
This puts IE9 on the greylist, meaning it will open but with
a warning.
Bug: T133094
Depends-On: I817b286e16b7923dd4dd456467466a0128805da1
Change-Id: I55fcbd1b7c4a82e11d61d3b93b4fdb7e992fba1d
Usually this gets loaded by MW core's Article::view, but that never gets run if
we loaded on action=edit
Bug: T132825
Change-Id: I1511bea947c976cea87d92efcb2e756dc7f7c55a
New changes:
c48d7cc Add support for placing a toolbar dialog in the side margin
ee7e14b FindAndReplaceDialog#renderFragments: Protect against null surface
fc61463 Fix dm.Surface#getHistory to not return undone items
f1dff2f Introduce ve.Range#overlapsRange method
f608958 Introduce dm.Surface#getModifiedRanges
db114ed Move debugging data-url GIFs to a debug only file
1dd8194 Update RangeFix to 0.2.0
706ff4e Add 'Support: [browser]' to browser hack comments
4f52afc Inline slugs: Limit Firefox hack to versions <38
bf73326 Add classList polyfill for IE9
59d78aa Fix access of iframe-created document in IE9
a886ae1 Hide borders on linked images in IE9
5293974 Fix double-click to edit table cells in IE9
a49a02f Add some more Support: comments
Depends-On: I9c5cea3e8df1fae001d4d98c0782a04dec803776
Change-Id: I460368f509a213464e57bb95f2d726305ef608de
New changes:
0e3e63a Rename ve-ce-sectionNode-focused to active
0010e49 Update OOjs UI to v0.16.5
8a50357 Localisation updates from https://translatewiki.net.
a731e0e Implement ve.dm.Selection#getCoveringRange
145c754 ce.Surface: Prevent selection from spanning an active node
e430224 Move toolbar positioning logic to PositionedTargetToolbar
c4bc52c demo: Put border around whole target
Local changes:
* Adjust to cope with the new positioned toolbar class
Change-Id: I47053af8a9efb0f4c267543616a5d6c80ae1534f
* Use TitleInputWidget for wiki-page-name and wiki-template-name parameters
* Use UserInputWidget for wiki-user-name parameters
* Use a custom hacky CheckboxInputWidget child class for boolean parameters
* Borrow some ve.ui.MWExternalLinkAnnotationWidget.prototype.createInputWidget code for url parameters
* Use a TextInputWidget with multiline disabled for line parameters
Not dealt with in this commit, so fallback to existing behaviour:
* string
* number
* unknown
* content
* unbalanced-wikitext
* date
* wiki-file-name
Bug: T55613
Bug: T124734
Bug: T124736
Change-Id: If04944d64303d959e8dd605e75a175895932b788
Depends-On: I87699a93ca1b34c6d248456fcc060f584623d158
Depends-On: I5e97604f0fc24176d5e89899bf0505dc442a1a7e
New changes:
14a02d3 Add article/section nodes for isolated editing sections
fa1b64a SectionNode: Don't set self as active node if a descendent is active
90f05cc Sections: Make sections & articles un-unwrappable
9518d4b SurfaceFragment#delete: Check removal is not a no-op
5109934 Section nodes: Use opacity to indicate active-ness
Change-Id: I3e89e8fa2db130f21e7d58231043b775ec51dc18
New changes:
3e587b8 sync-gh-pages: Fix "oojs-ui-apex.vector.css" 404 Not Found
0e53633 Toolbar: Add tooltip to structure group
7f0b6f7 Remove icon properties from windows
3a612b2 Fix positioning of mobile windows
Change-Id: I2a6995e61a76abfc0f77d3301c7c76593756463c
New changes:
1f298ce Update OOjs UI to v0.16.4
650776a Improve drop target preview for block node dragging
77fb965 LinearArrowKeyDownHandler: test more
0f669bf Fix behaviour of SurfaceFragment#annotateContent
fa08fca ve.ui.ContentActions: Add tests
3f4185f Tests: Add speed warnings to UI surface constructors
4bee4eb Localisation updates from https://translatewiki.net.
b678dbe Refactor getNodeAndOffset
254a802 Localisation updates from https://translatewiki.net.
0f0d980 SurfaceFramgent: Guard against tx.getModifiedRange returning null
603abe4 TriggerRegistry: Alter trigger for paste special on Mac to OS standard
Change-Id: I512c9b3a99673a876040e0fce789483e7221a78c
New changes:
6cf8864 Follow-up eb97c1f: Fix build for added language 'inh'
d1ce123 SpecialCharacterDialog: Use getReadyProcess promise to wait for char list
Local changes:
* SpecialCharacterDialog: Defer loading of character list.
Saves ~40k for most users who never use it.
Change-Id: I74b30fee96e1ae4463ed28c19bef4b515330220e
Depends-On: I45dc9f788aa5bd702b91ffd9f63b05b1f4760691
New changes:
e661245 Localisation updates from https://translatewiki.net.
d0bac53 ElementLinearData: Add test for sanitize conversions
53988e4 ElementLinearData: Test blacklist unwrapping
8593098 ve.dm.Model: Remove unused, untested method 'hasAttributes'
6247dd2 ce.Surface: Add tests for table strip delete
bee1851 ce.Surface: Add larger table strip-delete test
42d39e7 ce.Surface: Test table navigation with enter/escape/tab/shift-tab
5d248f9 Remove TableCaptionCommand
a86ad04 PreviewElement: Check node is a GCN, and always return a boolean
b518839 Localisation updates from https://translatewiki.net.
8834e9c ce.Surface: Allow any key code in the key handler tests
6b3ea6a ce.Surface: Linear arrow tests for block node
026999d Localisation updates from https://translatewiki.net.
eb97c1f Localisation updates from https://translatewiki.net.
Change-Id: Ic5853116d97623316d9a6bbacda2ecab9e4b49d5
Follow up to I9cf2aa50
Someone should figure out why some of these still have translations
Bug: T129704
Change-Id: I23e4c72fc07c4decf43b8b3a76bb5515731e737c
* Don't just fail to load, action=visualeditor itself should not write to the DB
(we have action=visualeditoredit for that)
* Send notice to the client in the usual way
* Handle read only errors on save, log as unknown
This won't let you review changes because that uses visualeditoredit
Bug: T129501
Change-Id: Id78c06b031423e47a7ddf94ec615b6d6975309d3
This allows extensions to register their own rules for detecting wikitext,
e.g. matching '<ref>'.
Bonus: Strip the autogenerated <references/> tag which
gets inserted when converting a <ref>.
Bug: T128805
Change-Id: I7a38db45d25e86ff3f3f6199aa04425ec98f7cc4
This can happen when the user gets logged out on a private wiki.
We get a badtoken error, so we try to refetch the token, which
itself returns an error. Token refetches didn't have error handling
at all and got the save dialog stuck in the pending state.
We can't offer the user to proceed with a different identity here,
because we encountered an error while trying to figure out what their
current identity is. The best we can do is encourage them to
log back in in a different tab.
Bug: T128934
Change-Id: I17d4452f688ec22631dbd12af223731635004d66
New changes:
cea967f Use upstream highlightQuery method in OOUI
07bcff1 Update OOjs UI to v0.16.0
6296fd4 Handle Enter keyPress without matching keyDown
3c2a3b4 Localisation updates from https://translatewiki.net.
c2d64c9 GeneratedContentNode: Check model existence before using
c1a350a FindAndReplace: Always focus dialog when using command
cdd9581 Follow-up I534ce003: Surface#getViewportRange: Fix typo
Change-Id: I4c61e85d43486731e0b20d3a26f23fabe7482861
This module is (and always has been) referenced by
ve.init.mw.Platform, so ensure it is loaded before that.
Previously this was not a problem because it was inside a
function that was never run unless the language search widget
was invoked.
This probably makes a good case to not put these functions
in platform, but that is for another day.
Bug: T127736
Change-Id: I119b27a397b15628a8de5f0b32ae636bc73a8ba4
New changes:
c02ea46 Clarify documentation of directionality methods
43c9b6f Move initialisation browser support checking from downstream
c89be66 Localisation updates from https://translatewiki.net.
5fb7907 Follow-up c89be66: Fix build for added language 'nan'
fc74fab dm.ElementLinearData.compareElements: Add a few missed test cases
Local changes:
Use initialisation browser support checking from upstream
Depends-On: I27a8e7b4376647f01cee648de987dc3ca6a060d5
Change-Id: I3fc79422ee5e487cf5fae3929fe492f21cd2840a
Was being thrown on all read pages and caused VE to no longer
load properly.
Three places make use of $.cookie():
* ve.init.mw.DesktopArticleTarget.init.js
* ve.init.mw.DesktopArticleTarget.js
* ve.ui.MWEducationPopupTool.js
Presumably this worked by luck previously due to another extension
or core module depending on it and loading earlier but no more.
Change-Id: I6b00822f1d5d17add3e298cbd77f4790899aaec2
New changes:
b558ef1 Localisation updates from https://translatewiki.net.
53476f4 Move logic for showing icon for invisibles to focusable node
Change-Id: I4bda82918cb54a3cc77523137fa297960b1b1ba0
New changes:
242ab45 DesktopContext: Float the context when it goes beyond the viewport
405c44d Rename TableContext to TableLineContext
6c564be Sort messages alphabetically
70ff8cc Introduce table and table cell context
Change-Id: I4357162bc192c90f99ca0aec12eb67bf848e5504
Some old code (pre-Icebc378f) is still relying on these existing,
and some users are getting it loaded somehow.
Bug: T125249
Change-Id: I83190da98478bc702c23dfff2091cc5480174958
New changes:
79546b8 Tables: Add slugs for missing cells in sparse tables
f723301 Tables: Multi-cell copy and paste
2548fac Spoil the fun of guessing what current[0] and current[1] mean.
db7c9aa Localisation updates from https://translatewiki.net.
526e1bf Tables: Move columns and rows
Change-Id: Id8d5f091cbca36c54f78f90bd2ac7aa2e6dacd1b
New changes:
1ab3b78 Localisation updates from https://translatewiki.net.
92abd0c [DEPRECATING CHANGE] ve.ui.Surface: Make an OO.ui.Widget and implement #setDisabled
479b902 Localisation updates from https://translatewiki.net.
7723bcc Unbreak build from i18n-bot self merging
d1c5207 Move white-space:pre-wrap hack to ContentBranchNode
7bbded7 Annotation context items: expand the selection if no annotations
c9ca0a3 Localisation updates from https://translatewiki.net.
8dfabec ve.dm.Document: Rename cloneSliceFromRange to shallowCloneFromRange
7fee02d Localisation updates from https://translatewiki.net.
2176d88 Localisation updates from https://translatewiki.net.
a5ab6f4 Unbreak i18n lists
915b8c2 Localisation updates from https://translatewiki.net.
469c8be Localisation updates from https://translatewiki.net.
34f4a48 APIResultsProvider: Refactoring resetting of queue.
584fc0f Localisation updates from https://translatewiki.net.
Change-Id: I9c165c8df7a48560ab84fabe4ee2f8d244c37203
Create a subclass for MediaSearch(Provider/Queue) and make the parent
class a more generic representation of API requests for media.
Change-Id: Iea8b90e829d532d210bfef3c96d6798c64e15eed
Usually. Unless you load VE, because then you might be loading on
`action=edit` in remember-last mode and therefore the tab text needs to
be updated from "Edit source" to "Edit". Or "Create source" to "Create".
Or the equivalent with 'local description' in the case of pages from
foreign file repos, etc.
Bug: T120970
Change-Id: I8f07be6c8e415b40ad134ee82d0bda1d63cc4f96
As of 3b44da3261673 in MediaWiki core, all MediaWiki:*.json pages are
given the JSON content model, so our hook that does the same is no
longer needed.
Change-Id: I8b39edf36b479ca22d74481c3d571d15db69aa1e
New changes:
e536779 [DEPRECATING CHANGE] Rename link inspector tools
3899967 Localisation updates from https://translatewiki.net.
0a1c09e [BREAKING CHANGE] ve.init.Target: Upstream the action toolbar from sa/mw desktop targets
Local changes:
* Refactor tools for the breaking change
Change-Id: I676af9c50b09ef007926240eb2327d1a0fdd80f5
Move over logic which isn't specific to the article
implementation of VE (e.g. nothing related to loading/saving).
Refactors setupSurface to use an abstract tracking method (which
does nothing by default), and moves surface CSS classes to #createSurface.
Breaking change:
* Rename onSurfaceReady to surfaceReady. We shouldn't need to listen
to our own events.
* Rename onReady to documentReady. onReady is not a listener.
Bug: T97166
Change-Id: I7242b1bb5501b7755a18a13d13e166c30cac9cdd
This makes way for a base mw.Target class which is
not specific to articles (e.g. Flow boards).
Bug: T97166
Change-Id: If72650bdf87aa9f195b004da0a4d815f1a8063a3
In addition to the couple of TODOs inline, we should do the following in
follow-up commits:
* Prevent FOUC due to changing things only on the client
* Make section link behaviour sensible
Bug: T58337
Change-Id: I65d966270491ffe017cb11a0daa915628fadf65c
New changes:
94f2edb Paste sanitization: Check for whitespace *before* newlines
c981b96 Fix-up Ie5414f62c: Fix call to non existant method
d6f2d75 FindAndReplace: Implement whole word matching
Local changes:
* Message and config for FindAndReplace whole word matching
Change-Id: I103b9b1ec92c0aae1e51e1a94db6b8b5e759dbea
New changes:
c04d8c0 Diff richtext to build model changes
25c95be Localisation updates from https://translatewiki.net.
Change-Id: Idf95b655dbed4f56633d91c52fc8b90308438d45
New changes:
ee3c787 When the cursor is inside a table cell, tab moves between cells
c6b338a Use white-space: pre-wrap instead of using for spaces
83e394b Define 'space' as a trigger key
b0c4535 Localisation updates from https://translatewiki.net.
1336c5c .mailmap: Add some extra addresses and change default for rmoen
a67ee68 AUTHORS.txt: Be more strict about 'principal' authors and update addresses
Change-Id: I4193774aa0d45d3751386bd2cfbd6d6717c0a81a
This fixes some rendering issues, and also increases the font
size of reference contexts from 12.8px (interface) to 14px (content).
Bug: T119430
Change-Id: Ib1bae8cd4cfe86903d78406a33db78e1489fde86
An MWExtensionDialog with a PreviewElement for the selected node,
or node to insert.
Depends on Icd622e15cd7 in VE core.
Change-Id: Ia0f46da2d445dd94c8aa50be73508d9f1afcb816
New changes:
3951dc1 Localisation updates from https://translatewiki.net.
a92d028 Introduce view selections to abstract getSelectionRects logic
f3030e0 Move getSelectionBoundingRect logic from TableNode to TableSelection
679300d Localisation updates from https://translatewiki.net.
5f7ebcd Update OOjs UI to v0.13.3
aa87e56 Unbreak complex HTML paste by ignoring screenshot fallbacks
afe5d45 Paste handlers: Break after the HTML data item
Change-Id: I6ce7c41fac995e718a88d8c2366ff642ef6dfd06
Follows-up 55f78fc which deleted this message.
> MessageBlobStore::fetchMessage failed to find: 'visualeditor-linkinspector-open' (en)
Change-Id: Iccfd51f597b991146209b7a639179ff0deb0e119
New changes:
fbb2b2e Localisation updates from https://translatewiki.net.
933f979 mailmap: Remove unused alias for ttijhof@wikimedia.org
72ce0e6 Better faking of onselectionchange
0d550d9 Paste sanitization: Treat <br> breaks as node splits
966b0a1 Localisation updates from https://translatewiki.net.
414cebb ContentAction: Add 'collapseToEnd' option to 'insert'
60de784 demos: Fix 'TypeError: ve.demo.target not a function' in desktop-dist.html
71f272e Localisation updates from https://translatewiki.net.
60376d2 RangeFix: Update from 0.1.1 to 0.1.2
2470042 Localisation updates from https://translatewiki.net.
7b1cdda Range offsets: Special case when adjacent to a nail
7ecde6c Add ve.ui.AnnotationContextItem
Change-Id: Iaab4cb7f9d4ec9d7120f42350fd613458c996c85
VisualEditor is usually not enabled in talk namespaces... but
sometimes it is. And when users see the button to edit with VE,
they're going to click it and expect to be able to sign their posts.
This tool is only loaded on talk pages and pages in additional
namespaces defined in $wgExtraSignatureNamespaces.
Code adapted with small tweaks from my own gadget
<https://meta.wikimedia.org/wiki/User:Matma_Rex/visualeditor-signature.js?oldid=13461327>,
which is already available under the MIT license.
Changes include:
* The tool is now always visible if the wiki allows signatures in any
VE namespaces, but disabled when not allowed in the current namespace.
* Register '~~~~' sequence to insert the signature.
* Code style tweaks for stricter lint checks in this repository.
* Documentation corrections.
Swedish translation provided by André Costa (already credited
as a translator as Lokal_Profil).
Depends on changes in VisualEditor core:
* I89fe53890ab59d12260ea6b41de802c38c24e8b9
* I14cd7efac521687ea38580341ae08ddc522edeeb
Bug: T53154
Change-Id: I6be5fb2118cf3eef5098d4c5320228aa81411ccb
Ensures that these styles are loaded *after* OOUI by making
them dependent on it, unlike DesktopArticleTarget.init
which isn't.
Change-Id: Ia1fff16432d20fb56707c5e21c6a930d2478e311
New changes:
cda23ea CommandHelpDialog: Layout tweak
a4fcff4 Localisation updates from https://translatewiki.net.
dac9067 Remove unused jquery.visibleText library
58beb8c lib: Add AUTHORS, LICENSE and README files for libraries missing them
efb1749 Surface drop: Show branch node drop markers for file drop
a55574b Localisation updates from https://translatewiki.net.
0ad3133 Add ve.Scheduler
55cc3e0 Close inspectors before executing a ve.ui.Tool command
6132af8 Localisation updates from https://translatewiki.net.
24fed63 Watch for hashchange on the demo
0f04339 ve.ui.Sequence: Allow sequences to insert content
Change-Id: Idf26d9fb1970b994a54085b43fcc848b005da273
VE already has a a switch icon in the options menu, so bring that
up to the main toolbar.
Append an OOUI button to the WikiEditor toolbar if present, and bind
to the same functon as the edit tab.
Bug: T49779
Change-Id: Ic1e83ea7b13c4fef68024bf05ffc244060666103
New changes:
6cae77b ElementLinearData: Add another case to hasContent
d2e15f2 SurfaceFragment: Improve handling of delete all
16db2a3 Return 'null' instead of null in ve.Filibuster observers
24de6b2 Introduce key down handlers to separate logic from ce surface
f77fe99 Localisation updates from https://translatewiki.net.
062cb26 Localisation updates from https://translatewiki.net.
Change-Id: I61c94983c7898af219266af3022761638c7578b7
Remove bottom border radii from the <textarea> and apply to
the options bar instead.
Apply different values for Apex and MediaWiki themes.
Change-Id: If727863a87547692ee499d2141c0418658609412
The extension registers a lot of sequences that don't apply to core
VisualEditor. Pretty much the opposite of the trigger situation, where
almost all are in core. So, merge them into the help dialog.
Update VE core submodule to master (be148ae)
New changes:
7380244 [BREAKING CHANGE] Include sequences in the command help dialog
Bug: T116013
Change-Id: I5ad2939c10140b954fb29e1e50414ab7d79aeab7
The widget attempts to load the ext.codeEditor.ace.modes module
and if it fails, will fall back to regular TextWidget behaviour.
Bug: T49742
Change-Id: Ie483f6eba25e3732a396c18decc0e1844b806b23
New changes:
9cb6f74 Move insertion annotation calc logic from DM Surface to ElementLinearData
04d4bfd Refactor the code that determine insertion annotations
d9efa1c DimensionsWidget: Fix alignment of labels
66ba732 Always render generated content the first time, including errors
23a957c Consistently use spaces inside brackets in CSS
f17c8ad Localisation updates from https://translatewiki.net.
f4d0643 Localisation updates from https://translatewiki.net.
ec29e77 Follow-up I553e31: Don't show error for non-rendered GCNs
5f2402b Pass staging state through Document#commit to ve.dm.Node update event
0d3e998 Fix ve.ce.Document HTML tests
7c95c6a Wrap <hr>s so their margins are clickable
164b9a3 Localisation updates from https://translatewiki.net.
Change-Id: I069082baeb45105bf2e0106879d472319a6ffe2a
As part of the plan to render extension errors in the
inspector instead of the view, append an element to
contain the error. More specifically, the element is
a div that contains a LabelWidget (in which the error
message is displayed) and a ButtonWidget (to expand
and collapse the error).
Initially the error element is hidden, but if Parsoid
returns an error, the element will be shown. If the
error is longer than 1 line, it is truncated but can
be expanded. On closing the inspector, any remaining
error is collapsed and hidden.
Depends on I6002d9870d2b to work
Bug: T113172
Change-Id: Ie84130d4ac0da9a738bf98ad0a3677d47566d585
* Make betatempdisable appear checked if autodisable is true
* Set autodisable=false only if betatempdisable is also false
* On wikis where $wgVisualEditorTransitionDefault=true, set
autodisable=true when the user disables VE
Change-Id: I3415af4a735afb10cf246f4b22b9d84ef98c882f
We want to flip the default of visualeditor-enable to true, but don't
necessarily want to turn it on for users who already have contributions but who
haven't already enabled it. Therefore we're considering adding such users to
this autodisable preference which they can self-remove (by explicitly enabling
VE) or we can target later, separate from betatempdisable users.
Bug: T112352
Change-Id: I1ce5e6c92055e30fdc82bc912a767e913b190ef6
New changes:
90ed001 Localisation updates from https://translatewiki.net.
c2f2096 Rename ve.ui.PreviewWidget to ve.ui.PreviewElement
Change-Id: I35103bc5d98b7eee77c9f5f22c441091b6453687
New changes:
4a089dd dm.Annotation: Remove unused convenience wrapper
f30ad5c PreviewWidget: De-duplicate code with a private function
c16da30 Restore scroll immediately after paste
45b1406 Links: Explicit entry/exit with cartouches
Change-Id: I48ad7fb3f68ebb5eff89cc7e2b00878cca550222
Drop beta-ness as users don't care and it confuses them. Leaving the preference
alone for now.
Bug: T99963
Bug: T112354
Change-Id: I0e039dec54d528fce24226e76b931b593dd13a9e