@@ -46,7 +46,10 @@ export function drawGridHeaders(
4646 ctx . fillStyle = outerTheme . bgHeader ;
4747 ctx . fillRect ( 0 , 0 , width , totalHeaderHeight ) ;
4848
49- const [ hCol , hRow ] = hovered ?. [ 0 ] ?? [ ] ;
49+ const hCol = hovered ?. [ 0 ] ?. [ 0 ] ;
50+ const hRow = hovered ?. [ 0 ] ?. [ 1 ] ;
51+ const hPosX = hovered ?. [ 1 ] ?. [ 0 ] ;
52+ const hPosY = hovered ?. [ 1 ] ?. [ 1 ] ;
5053
5154 const font = outerTheme . headerFontFull ;
5255 // Assinging the context font too much can be expensive, it can be worth it to minimze this
@@ -115,6 +118,8 @@ export function drawGridHeaders(
115118 selected ,
116119 theme ,
117120 hoveredBoolean ,
121+ hoveredBoolean ? hPosX : undefined ,
122+ hoveredBoolean ? hPosY : undefined ,
118123 hasSelectedCell ,
119124 hover ,
120125 spriteManager ,
@@ -415,6 +420,8 @@ function drawHeaderInner(
415420 selected : boolean ,
416421 theme : FullTheme ,
417422 isHovered : boolean ,
423+ posX : number | undefined ,
424+ posY : number | undefined ,
418425 hoverAmount : number ,
419426 spriteManager : SpriteManager ,
420427 touchMode : boolean ,
@@ -533,6 +540,12 @@ function drawHeaderInner(
533540 if ( shouldDrawMenu && headerLayout . menuBounds !== undefined ) {
534541 const menuBounds = headerLayout . menuBounds ;
535542
543+ const hovered = posX !== undefined && posY !== undefined && pointInRect ( menuBounds , posX + x , posY + y ) ;
544+
545+ if ( ! hovered ) {
546+ ctx . globalAlpha = 0.7 ;
547+ }
548+
536549 if ( c . menuIcon === undefined || c . menuIcon === GridColumnMenuIcon . Triangle ) {
537550 // Draw the default triangle menu icon:
538551 ctx . beginPath ( ) ;
@@ -572,6 +585,10 @@ function drawHeaderInner(
572585 const iconY = menuBounds . y + ( menuBounds . height - theme . headerIconSize ) / 2 ;
573586 spriteManager . drawSprite ( c . menuIcon , "normal" , ctx , iconX , iconY , theme . headerIconSize , theme ) ;
574587 }
588+
589+ if ( ! hovered ) {
590+ ctx . globalAlpha = 1 ;
591+ }
575592 }
576593}
577594
@@ -585,6 +602,8 @@ export function drawHeader(
585602 selected : boolean ,
586603 theme : FullTheme ,
587604 isHovered : boolean ,
605+ posX : number | undefined ,
606+ posY : number | undefined ,
588607 hasSelectedCell : boolean ,
589608 hoverAmount : number ,
590609 spriteManager : SpriteManager ,
@@ -620,6 +639,8 @@ export function drawHeader(
620639 selected ,
621640 theme ,
622641 isHovered ,
642+ posX ,
643+ posY ,
623644 hoverAmount ,
624645 spriteManager ,
625646 touchMode ,
@@ -638,6 +659,8 @@ export function drawHeader(
638659 selected ,
639660 theme ,
640661 isHovered ,
662+ posX ,
663+ posY ,
641664 hoverAmount ,
642665 spriteManager ,
643666 touchMode ,
0 commit comments