anchor.diff:      begin
         k2 := FHoverKey;
         if Assigned(k) and not k.Enabled then k := nil;
  -      
  +
         FHoverKey := k;
         DoDrawKey(Canvas, k); //InvalidateKey(k);
         DoDrawKey(Canvas, k2); //InvalidateKey(k2);
  
positive.code: 
          if GetTextExtentPoint32W(Canvas.Handle, PWideChar(FKeyValue), Length(FKeyValue), FTextExtent) then  // I2576
          begin
            if FTextExtent.cx > (RText.Right - RText.Left) * FKeyboard.FScale then
            begin
              Font.Height := Trunc(Font.Height * (RText.Right - RText.Left) * FKeyboard.FScale / FTextExtent.cx);
            end
            else if FTextExtent.cy > (RText.Bottom - RText.Top) * FKeyboard.FScale then
            begin
              Font.Height := Trunc(Font.Height * (RText.Bottom - RText.Top) * FKeyboard.FScale / FTextExtent.cy);
            end
          end;
  
  
          if not Enabled then      Font.Color := $808080
          else                     Font.Color := clWindowText;
  
negative.code: (*
    Name:             OnScreenKeyboard
    Copyright:        Copyright (C) SIL International.
    Documentation:
    Description:
    Create Date:      23 Aug 2006
  
    Modified Date:    24 Jul 2015
    Authors:          mcdurdin
    Related Files:
    Dependencies:
  
    Bugs:
    Todo:
    Notes:
    History:          23 Aug 2006 - mcdurdin - Initial version
                      30 Aug 2006 - mcdurdin - Fix underlying layout published bug
                      14 Sep 2006 - mcdurdin - Add Transparent flag, retrieve aspected size, polish drawing
  