mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-26 08:42:41 +01:00
Fix tokenizer input of Japanese glyphs
Summary: Fixes T3834. We have some hack code here for Firefox, but I can't reproduce the original Firefox issue in modern Firefox. It's better to break weird copy/paste edge cases than all Japanese input, in any case. Test Plan: See screenshot. Reviewers: chad, btrahan Reviewed By: chad CC: aran Maniphest Tasks: T3834 Differential Revision: https://secure.phabricator.com/D7024
This commit is contained in:
parent
3f19ac70a5
commit
3b9037fa2a
2 changed files with 37 additions and 27 deletions
|
@ -2667,7 +2667,7 @@ celerity_register_resource_map(array(
|
|||
),
|
||||
'javelin-tokenizer' =>
|
||||
array(
|
||||
'uri' => '/res/7c117141/rsrc/externals/javelin/lib/control/tokenizer/Tokenizer.js',
|
||||
'uri' => '/res/1867b9e3/rsrc/externals/javelin/lib/control/tokenizer/Tokenizer.js',
|
||||
'type' => 'js',
|
||||
'requires' =>
|
||||
array(
|
||||
|
@ -4351,7 +4351,7 @@ celerity_register_resource_map(array(
|
|||
'uri' => '/res/pkg/96909266/diffusion.pkg.js',
|
||||
'type' => 'js',
|
||||
),
|
||||
'f32597c9' =>
|
||||
'a68dc06a' =>
|
||||
array(
|
||||
'name' => 'javelin.pkg.js',
|
||||
'symbols' =>
|
||||
|
@ -4377,7 +4377,7 @@ celerity_register_resource_map(array(
|
|||
18 => 'javelin-tokenizer',
|
||||
19 => 'javelin-history',
|
||||
),
|
||||
'uri' => '/res/pkg/f32597c9/javelin.pkg.js',
|
||||
'uri' => '/res/pkg/a68dc06a/javelin.pkg.js',
|
||||
'type' => 'js',
|
||||
),
|
||||
'36d5d071' =>
|
||||
|
@ -4434,7 +4434,7 @@ celerity_register_resource_map(array(
|
|||
'global-drag-and-drop-css' => 'a9a10c76',
|
||||
'inline-comment-summary-css' => '44bfe40c',
|
||||
'javelin-aphlict' => '8977e356',
|
||||
'javelin-behavior' => 'f32597c9',
|
||||
'javelin-behavior' => 'a68dc06a',
|
||||
'javelin-behavior-aphlict-dropdown' => '8977e356',
|
||||
'javelin-behavior-aphlict-listen' => '8977e356',
|
||||
'javelin-behavior-aphront-basic-tokenizer' => '8977e356',
|
||||
|
@ -4485,25 +4485,25 @@ celerity_register_resource_map(array(
|
|||
'javelin-behavior-repository-crossreference' => '5e9e5c4e',
|
||||
'javelin-behavior-toggle-class' => '8977e356',
|
||||
'javelin-behavior-workflow' => '8977e356',
|
||||
'javelin-dom' => 'f32597c9',
|
||||
'javelin-event' => 'f32597c9',
|
||||
'javelin-history' => 'f32597c9',
|
||||
'javelin-install' => 'f32597c9',
|
||||
'javelin-json' => 'f32597c9',
|
||||
'javelin-mask' => 'f32597c9',
|
||||
'javelin-request' => 'f32597c9',
|
||||
'javelin-resource' => 'f32597c9',
|
||||
'javelin-stratcom' => 'f32597c9',
|
||||
'javelin-tokenizer' => 'f32597c9',
|
||||
'javelin-typeahead' => 'f32597c9',
|
||||
'javelin-typeahead-normalizer' => 'f32597c9',
|
||||
'javelin-typeahead-ondemand-source' => 'f32597c9',
|
||||
'javelin-typeahead-preloaded-source' => 'f32597c9',
|
||||
'javelin-typeahead-source' => 'f32597c9',
|
||||
'javelin-uri' => 'f32597c9',
|
||||
'javelin-util' => 'f32597c9',
|
||||
'javelin-vector' => 'f32597c9',
|
||||
'javelin-workflow' => 'f32597c9',
|
||||
'javelin-dom' => 'a68dc06a',
|
||||
'javelin-event' => 'a68dc06a',
|
||||
'javelin-history' => 'a68dc06a',
|
||||
'javelin-install' => 'a68dc06a',
|
||||
'javelin-json' => 'a68dc06a',
|
||||
'javelin-mask' => 'a68dc06a',
|
||||
'javelin-request' => 'a68dc06a',
|
||||
'javelin-resource' => 'a68dc06a',
|
||||
'javelin-stratcom' => 'a68dc06a',
|
||||
'javelin-tokenizer' => 'a68dc06a',
|
||||
'javelin-typeahead' => 'a68dc06a',
|
||||
'javelin-typeahead-normalizer' => 'a68dc06a',
|
||||
'javelin-typeahead-ondemand-source' => 'a68dc06a',
|
||||
'javelin-typeahead-preloaded-source' => 'a68dc06a',
|
||||
'javelin-typeahead-source' => 'a68dc06a',
|
||||
'javelin-uri' => 'a68dc06a',
|
||||
'javelin-util' => 'a68dc06a',
|
||||
'javelin-vector' => 'a68dc06a',
|
||||
'javelin-workflow' => 'a68dc06a',
|
||||
'lightbox-attachment-css' => 'a9a10c76',
|
||||
'maniphest-task-summary-css' => '36d5d071',
|
||||
'maniphest-transaction-detail-css' => '36d5d071',
|
||||
|
|
|
@ -248,10 +248,20 @@ JX.install('Tokenizer', {
|
|||
metrics.x += 24;
|
||||
metrics.setDim(focus);
|
||||
|
||||
// This is a pretty ugly hack to force a redraw after copy/paste in
|
||||
// Firefox. If we don't do this, it doesn't redraw the input so pasting
|
||||
// in an email address doesn't give you a very good behavior.
|
||||
focus.value = focus.value;
|
||||
// NOTE: Once, long ago, we set "focus.value = focus.value;" here to fix
|
||||
// an issue with copy/paste in Firefox not redrawing correctly. However,
|
||||
// this breaks input of Japanese glyphs in Chrome, and I can't reproduce
|
||||
// the original issue in modern Firefox.
|
||||
//
|
||||
// If future changes muck around with things here, test that Japanese
|
||||
// inputs still work. Example:
|
||||
//
|
||||
// - Switch to Hiragana mode.
|
||||
// - Type "ni".
|
||||
// - This should produce a glyph, not the value "n".
|
||||
//
|
||||
// With the assignment, Chrome loses the partial input on the "n" when
|
||||
// the value is assigned.
|
||||
},
|
||||
|
||||
setPlaceholder : function(string) {
|
||||
|
|
Loading…
Reference in a new issue