@@ -168,14 +168,6 @@ var positioners = {
168
168
}
169
169
} ;
170
170
171
- /**
172
- * Helper method to merge the opacity into a color
173
- */
174
- function mergeOpacity ( colorString , opacity ) {
175
- var color = helpers . color ( colorString ) ;
176
- return color . alpha ( opacity * color . alpha ( ) ) . rgbaString ( ) ;
177
- }
178
-
179
171
// Helper to push or concat based on if the 2nd parameter is an array or not
180
172
function pushOrConcat ( base , toPush ) {
181
173
if ( toPush ) {
@@ -734,7 +726,7 @@ var exports = module.exports = Element.extend({
734
726
return { x1 : x1 , x2 : x2 , x3 : x3 , y1 : y1 , y2 : y2 , y3 : y3 } ;
735
727
} ,
736
728
737
- drawTitle : function ( pt , vm , ctx , opacity ) {
729
+ drawTitle : function ( pt , vm , ctx ) {
738
730
var title = vm . title ;
739
731
740
732
if ( title . length ) {
@@ -744,7 +736,7 @@ var exports = module.exports = Element.extend({
744
736
var titleFontSize = vm . titleFontSize ;
745
737
var titleSpacing = vm . titleSpacing ;
746
738
747
- ctx . fillStyle = mergeOpacity ( vm . titleFontColor , opacity ) ;
739
+ ctx . fillStyle = vm . titleFontColor ;
748
740
ctx . font = helpers . fontString ( titleFontSize , vm . _titleFontStyle , vm . _titleFontFamily ) ;
749
741
750
742
var i , len ;
@@ -759,7 +751,7 @@ var exports = module.exports = Element.extend({
759
751
}
760
752
} ,
761
753
762
- drawBody : function ( pt , vm , ctx , opacity ) {
754
+ drawBody : function ( pt , vm , ctx ) {
763
755
var bodyFontSize = vm . bodyFontSize ;
764
756
var bodySpacing = vm . bodySpacing ;
765
757
var body = vm . body ;
@@ -776,32 +768,32 @@ var exports = module.exports = Element.extend({
776
768
} ;
777
769
778
770
// Before body lines
779
- ctx . fillStyle = mergeOpacity ( vm . bodyFontColor , opacity ) ;
771
+ ctx . fillStyle = vm . bodyFontColor ;
780
772
helpers . each ( vm . beforeBody , fillLineOfText ) ;
781
773
782
774
var drawColorBoxes = vm . displayColors ;
783
775
xLinePadding = drawColorBoxes ? ( bodyFontSize + 2 ) : 0 ;
784
776
785
777
// Draw body lines now
786
778
helpers . each ( body , function ( bodyItem , i ) {
787
- var textColor = mergeOpacity ( vm . labelTextColors [ i ] , opacity ) ;
779
+ var textColor = vm . labelTextColors [ i ] ;
788
780
ctx . fillStyle = textColor ;
789
781
helpers . each ( bodyItem . before , fillLineOfText ) ;
790
782
791
783
helpers . each ( bodyItem . lines , function ( line ) {
792
784
// Draw Legend-like boxes if needed
793
785
if ( drawColorBoxes ) {
794
786
// Fill a white rect so that colours merge nicely if the opacity is < 1
795
- ctx . fillStyle = mergeOpacity ( vm . legendColorBackground , opacity ) ;
787
+ ctx . fillStyle = vm . legendColorBackground ;
796
788
ctx . fillRect ( pt . x , pt . y , bodyFontSize , bodyFontSize ) ;
797
789
798
790
// Border
799
791
ctx . lineWidth = 1 ;
800
- ctx . strokeStyle = mergeOpacity ( vm . labelColors [ i ] . borderColor , opacity ) ;
792
+ ctx . strokeStyle = vm . labelColors [ i ] . borderColor ;
801
793
ctx . strokeRect ( pt . x , pt . y , bodyFontSize , bodyFontSize ) ;
802
794
803
795
// Inner square
804
- ctx . fillStyle = mergeOpacity ( vm . labelColors [ i ] . backgroundColor , opacity ) ;
796
+ ctx . fillStyle = vm . labelColors [ i ] . backgroundColor ;
805
797
ctx . fillRect ( pt . x + 1 , pt . y + 1 , bodyFontSize - 2 , bodyFontSize - 2 ) ;
806
798
ctx . fillStyle = textColor ;
807
799
}
@@ -820,7 +812,7 @@ var exports = module.exports = Element.extend({
820
812
pt . y -= bodySpacing ; // Remove last body spacing
821
813
} ,
822
814
823
- drawFooter : function ( pt , vm , ctx , opacity ) {
815
+ drawFooter : function ( pt , vm , ctx ) {
824
816
var footer = vm . footer ;
825
817
826
818
if ( footer . length ) {
@@ -829,7 +821,7 @@ var exports = module.exports = Element.extend({
829
821
ctx . textAlign = vm . _footerAlign ;
830
822
ctx . textBaseline = 'top' ;
831
823
832
- ctx . fillStyle = mergeOpacity ( vm . footerFontColor , opacity ) ;
824
+ ctx . fillStyle = vm . footerFontColor ;
833
825
ctx . font = helpers . fontString ( vm . footerFontSize , vm . _footerFontStyle , vm . _footerFontFamily ) ;
834
826
835
827
helpers . each ( footer , function ( line ) {
@@ -839,9 +831,9 @@ var exports = module.exports = Element.extend({
839
831
}
840
832
} ,
841
833
842
- drawBackground : function ( pt , vm , ctx , tooltipSize , opacity ) {
843
- ctx . fillStyle = mergeOpacity ( vm . backgroundColor , opacity ) ;
844
- ctx . strokeStyle = mergeOpacity ( vm . borderColor , opacity ) ;
834
+ drawBackground : function ( pt , vm , ctx , tooltipSize ) {
835
+ ctx . fillStyle = vm . backgroundColor ;
836
+ ctx . strokeStyle = vm . borderColor ;
845
837
ctx . lineWidth = vm . borderWidth ;
846
838
var xAlign = vm . xAlign ;
847
839
var yAlign = vm . yAlign ;
@@ -906,21 +898,26 @@ var exports = module.exports = Element.extend({
906
898
var hasTooltipContent = vm . title . length || vm . beforeBody . length || vm . body . length || vm . afterBody . length || vm . footer . length ;
907
899
908
900
if ( this . _options . enabled && hasTooltipContent ) {
901
+ ctx . save ( ) ;
902
+ ctx . globalAlpha = opacity ;
903
+
909
904
// Draw Background
910
- this . drawBackground ( pt , vm , ctx , tooltipSize , opacity ) ;
905
+ this . drawBackground ( pt , vm , ctx , tooltipSize ) ;
911
906
912
907
// Draw Title, Body, and Footer
913
908
pt . x += vm . xPadding ;
914
909
pt . y += vm . yPadding ;
915
910
916
911
// Titles
917
- this . drawTitle ( pt , vm , ctx , opacity ) ;
912
+ this . drawTitle ( pt , vm , ctx ) ;
918
913
919
914
// Body
920
- this . drawBody ( pt , vm , ctx , opacity ) ;
915
+ this . drawBody ( pt , vm , ctx ) ;
921
916
922
917
// Footer
923
- this . drawFooter ( pt , vm , ctx , opacity ) ;
918
+ this . drawFooter ( pt , vm , ctx ) ;
919
+
920
+ ctx . restore ( ) ;
924
921
}
925
922
} ,
926
923
0 commit comments