5
5
/**
6
6
* @ngInject
7
7
*/
8
- function MdTabsController ( $scope , $element , $window , $mdConstant , $mdTabInkRipple ,
9
- $mdUtil , $ animateCss, $attrs , $compile , $mdTheming ) {
8
+ function MdTabsController ( $scope , $element , $window , $mdConstant , $mdTabInkRipple , $mdUtil ,
9
+ $animateCss , $attrs , $compile , $mdTheming , $mdInteraction ) {
10
10
// define private properties
11
11
var ctrl = this ,
12
12
locked = false ,
@@ -42,7 +42,7 @@ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipp
42
42
ctrl . tabs = [ ] ;
43
43
ctrl . lastSelectedIndex = null ;
44
44
ctrl . hasFocus = false ;
45
- ctrl . lastClick = true ;
45
+ ctrl . styleTabItemFocus = false ;
46
46
ctrl . shouldCenterTabs = shouldCenterTabs ( ) ;
47
47
ctrl . tabContentPrefix = 'tab-content-' ;
48
48
@@ -293,7 +293,6 @@ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipp
293
293
if ( ! locked ) select ( ctrl . focusIndex ) ;
294
294
break ;
295
295
}
296
- ctrl . lastClick = false ;
297
296
}
298
297
299
298
/**
@@ -304,7 +303,6 @@ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipp
304
303
*/
305
304
function select ( index , canSkipClick ) {
306
305
if ( ! locked ) ctrl . focusIndex = ctrl . selectedIndex = index ;
307
- ctrl . lastClick = true ;
308
306
// skip the click event if noSelectClick is enabled
309
307
if ( canSkipClick && ctrl . noSelectClick ) return ;
310
308
// nextTick is required to prevent errors in user-defined click events
@@ -431,7 +429,7 @@ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipp
431
429
isRight : function ( ) { return this . getIndex ( ) > ctrl . selectedIndex ; } ,
432
430
shouldRender : function ( ) { return ! ctrl . noDisconnect || this . isActive ( ) ; } ,
433
431
hasFocus : function ( ) {
434
- return ! ctrl . lastClick
432
+ return ctrl . styleTabItemFocus
435
433
&& ctrl . hasFocus && this . getIndex ( ) === ctrl . focusIndex ;
436
434
} ,
437
435
id : $mdUtil . nextUid ( ) ,
@@ -671,6 +669,7 @@ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipp
671
669
* issues when attempting to focus an item that is out of view.
672
670
*/
673
671
function redirectFocus ( ) {
672
+ ctrl . styleTabItemFocus = ( $mdInteraction . getLastInteractionType ( ) === 'keyboard' ) ;
674
673
getElements ( ) . dummies [ ctrl . focusIndex ] . focus ( ) ;
675
674
}
676
675
0 commit comments