diff --git a/src/__celerity_resource_map__.php b/src/__celerity_resource_map__.php index 433548bd02..45cae40a93 100644 --- a/src/__celerity_resource_map__.php +++ b/src/__celerity_resource_map__.php @@ -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', diff --git a/webroot/rsrc/externals/javelin/lib/control/tokenizer/Tokenizer.js b/webroot/rsrc/externals/javelin/lib/control/tokenizer/Tokenizer.js index bfcac0aaaa..c2343b45d9 100644 --- a/webroot/rsrc/externals/javelin/lib/control/tokenizer/Tokenizer.js +++ b/webroot/rsrc/externals/javelin/lib/control/tokenizer/Tokenizer.js @@ -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) {