@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix tab-focus of Tokenizers

Summary: Fixes T3140. Previously, we added the highlight class only on explicit events, but not on actual focus events (e.g., via tab).

Test Plan: Tabbed into a tokenizer. Clicked a tokenizer. Tabbed out of a tokenizer. Clicked out of a tokenizer. Shift-tabbed out of a tokenizer. Verified highlight state was always correct.

Reviewers: chad

Reviewed By: chad

CC: aran

Maniphest Tasks: T3140

Differential Revision: https://secure.phabricator.com/D5891

+28 -25
+22 -22
src/__celerity_resource_map__.php
··· 2561 2561 ), 2562 2562 'javelin-tokenizer' => 2563 2563 array( 2564 - 'uri' => '/res/8bccdb9e/rsrc/externals/javelin/lib/control/tokenizer/Tokenizer.js', 2564 + 'uri' => '/res/2c55cb68/rsrc/externals/javelin/lib/control/tokenizer/Tokenizer.js', 2565 2565 'type' => 'js', 2566 2566 'requires' => 2567 2567 array( ··· 4185 4185 'uri' => '/res/pkg/f96657b8/diffusion.pkg.js', 4186 4186 'type' => 'js', 4187 4187 ), 4188 - '7d174323' => 4188 + '202a3dd0' => 4189 4189 array( 4190 4190 'name' => 'javelin.pkg.js', 4191 4191 'symbols' => ··· 4210 4210 17 => 'javelin-typeahead-ondemand-source', 4211 4211 18 => 'javelin-tokenizer', 4212 4212 ), 4213 - 'uri' => '/res/pkg/7d174323/javelin.pkg.js', 4213 + 'uri' => '/res/pkg/202a3dd0/javelin.pkg.js', 4214 4214 'type' => 'js', 4215 4215 ), 4216 4216 '6b1fccc6' => ··· 4270 4270 'global-drag-and-drop-css' => '56e0b740', 4271 4271 'inline-comment-summary-css' => 'dd27a69b', 4272 4272 'javelin-aphlict' => '26980a1c', 4273 - 'javelin-behavior' => '7d174323', 4273 + 'javelin-behavior' => '202a3dd0', 4274 4274 'javelin-behavior-aphlict-dropdown' => '26980a1c', 4275 4275 'javelin-behavior-aphlict-listen' => '26980a1c', 4276 4276 'javelin-behavior-aphront-basic-tokenizer' => '26980a1c', ··· 4321 4321 'javelin-behavior-repository-crossreference' => '27c55b30', 4322 4322 'javelin-behavior-toggle-class' => '26980a1c', 4323 4323 'javelin-behavior-workflow' => '26980a1c', 4324 - 'javelin-dom' => '7d174323', 4325 - 'javelin-event' => '7d174323', 4326 - 'javelin-install' => '7d174323', 4327 - 'javelin-json' => '7d174323', 4328 - 'javelin-mask' => '7d174323', 4329 - 'javelin-request' => '7d174323', 4330 - 'javelin-resource' => '7d174323', 4331 - 'javelin-stratcom' => '7d174323', 4332 - 'javelin-tokenizer' => '7d174323', 4333 - 'javelin-typeahead' => '7d174323', 4334 - 'javelin-typeahead-normalizer' => '7d174323', 4335 - 'javelin-typeahead-ondemand-source' => '7d174323', 4336 - 'javelin-typeahead-preloaded-source' => '7d174323', 4337 - 'javelin-typeahead-source' => '7d174323', 4338 - 'javelin-uri' => '7d174323', 4339 - 'javelin-util' => '7d174323', 4340 - 'javelin-vector' => '7d174323', 4341 - 'javelin-workflow' => '7d174323', 4324 + 'javelin-dom' => '202a3dd0', 4325 + 'javelin-event' => '202a3dd0', 4326 + 'javelin-install' => '202a3dd0', 4327 + 'javelin-json' => '202a3dd0', 4328 + 'javelin-mask' => '202a3dd0', 4329 + 'javelin-request' => '202a3dd0', 4330 + 'javelin-resource' => '202a3dd0', 4331 + 'javelin-stratcom' => '202a3dd0', 4332 + 'javelin-tokenizer' => '202a3dd0', 4333 + 'javelin-typeahead' => '202a3dd0', 4334 + 'javelin-typeahead-normalizer' => '202a3dd0', 4335 + 'javelin-typeahead-ondemand-source' => '202a3dd0', 4336 + 'javelin-typeahead-preloaded-source' => '202a3dd0', 4337 + 'javelin-typeahead-source' => '202a3dd0', 4338 + 'javelin-uri' => '202a3dd0', 4339 + 'javelin-util' => '202a3dd0', 4340 + 'javelin-vector' => '202a3dd0', 4341 + 'javelin-workflow' => '202a3dd0', 4342 4342 'lightbox-attachment-css' => '56e0b740', 4343 4343 'maniphest-task-summary-css' => '6b1fccc6', 4344 4344 'maniphest-transaction-detail-css' => '6b1fccc6',
+6 -3
webroot/rsrc/externals/javelin/lib/control/tokenizer/Tokenizer.js
··· 213 213 // Explicitly update the placeholder since we just wiped the field 214 214 // value. 215 215 this._typeahead.updatePlaceholder(); 216 + } else if (e.getType() == 'focus') { 217 + this._didfocus(); 216 218 } 217 219 }, 218 220 ··· 380 382 focus : function() { 381 383 var focus = this._focus; 382 384 JX.DOM.show(focus); 385 + setTimeout(function() { JX.DOM.focus(focus); }, 0); 386 + }, 383 387 388 + _didfocus : function() { 384 389 JX.DOM.alterClass( 385 390 this._containerNode, 386 391 'jx-tokenizer-container-focused', 387 392 true); 388 - 389 - setTimeout(function() { JX.DOM.focus(focus); }, 0); 390 393 }, 391 394 392 - _didblur: function() { 395 + _didblur : function() { 393 396 JX.DOM.alterClass( 394 397 this._containerNode, 395 398 'jx-tokenizer-container-focused',