tooltip problem

Hi, I found a funny problem about GUI.tooltip

I am going to make button, then show a little box beside the button when button hover,
then, hide the box when pointer move out from the box

I discover that the GUI.tooltip will just can detect hover event every second frame,
and I don’t understand what is going on, would anyone can tell me the what is going on ??

here is my code with C#.

===========================

using UnityEngine;
using System.Collections;

public class tooltiptest : MonoBehaviour {

bool m_ShowBox;
bool m_HasShowedBox;

void ShowHiddenBox()
{
	GUILayout.Box(new GUIContent("Box","true2"));
	if(GUI.tooltip == "true2")
	{
		//m_HasShowedBox = true;
		print("Hover detected on Box - " + GUI.tooltip);
	}
	else
	{
		print("Nothing Detected - " + GUI.tooltip);
		//m_ShowBox = false;
	}
}

void OnGUI()
{
	GUILayout.BeginArea(new Rect(0,0,Screen.width,Screen.height));
	GUILayout.Button(new GUIContent("hover here","true"));
	
	
	if(GUI.tooltip == "true")
	{
		GUILayout.Label(GUI.tooltip);
		m_ShowBox = true;
	}
	else
	{
		GUILayout.Label("please move your mouse onto the above button");
	}
	
	if(m_ShowBox) ShowHiddenBox();
	GUILayout.EndArea();
}

}

IIRC, OnGUI is called several time per frame. By default you get two events: layout and paint. If you do mouse clicks, then you get more events. You can get current event from Event.current. Maybe that is what is causing the confusion.