staticconstfloatWINDOWS_MOUSE_WHEEL_SCROLL_LOCK_TIMER=0.70f;// Lock scrolled window (so it doesn't pick child windows that are scrolling through) for a certain time, unless mouse moved.
// Tooltip offset
staticconstImVec2TOOLTIP_DEFAULT_OFFSET=ImVec2(16,10);// Multiplied by g.Style.MouseCursorScale
staticconstImVec2TOOLTIP_DEFAULT_OFFSET_MOUSE=ImVec2(16,10);// Multiplied by g.Style.MouseCursorScale
staticconstImVec2TOOLTIP_DEFAULT_OFFSET_TOUCH=ImVec2(0,-20);// Multiplied by g.Style.MouseCursorScale
staticconstImVec2TOOLTIP_DEFAULT_PIVOT_TOUCH=ImVec2(0.5f,1.0f);// Multiplied by g.Style.MouseCursorScale
//PushStyleVar(ImGuiStyleVar_Alpha, g.Style.Alpha * 0.60f); // This would be nice but e.g ColorButton with checkboard has issue with transparent colors :(
// Position tooltip (always follows mouse + clamp within outer boundaries)
// Note that drag and drop tooltips are NOT using this path: BeginTooltipEx() manually sets their position.
// In theory we could handle both cases in same location, but requires a bit of shuffling as drag and drop tooltips are calling SetWindowPos() leading to 'window_pos_set_by_api' being set in Begin()
// FIXME:
// - Too many paths. One problem is that FindBestWindowPosForPopupEx() doesn't allow passing a suggested position (so touch screen path doesn't use it by default).
// - Drag and drop tooltips are not using this path either: BeginTooltipEx() manually sets their position.
// - Require some tidying up. In theory we could handle both cases in same location, but requires a bit of shuffling
// as drag and drop tooltips are calling SetNextWindowPos() leading to 'window_pos_set_by_api' being set in Begin().
r_avoid=ImRect(ref_pos.x-16,ref_pos.y-8,ref_pos.x+24*scale,ref_pos.y+24*scale);// FIXME: Hard-coded based on mouse cursor shape expectation. Exact dimension not very important.