1
0
Fork 0
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:
epriestley 2013-09-18 10:12:36 -07:00
parent 3f19ac70a5
commit 3b9037fa2a
2 changed files with 37 additions and 27 deletions

View file

@ -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',

View file

@ -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) {