Okay, I sort of fixed it.
everything is in src/watchesdlg.cpp
ValueTooltip::Fit now looks like this:
void ValueTooltip::Fit()
{
::SetMinSize(m_grid);
m_sizer->Fit(m_panel);
wxPoint pos = GetScreenPosition();
//wxSize size = m_panel->GetScreenRect().GetSize();
wxSize size = m_grid->GetScreenRect().GetSize();
//SetSize(pos.x, pos.y, size.x, size.y);
int max_y = wxSystemSettings::GetMetric(wxSYS_SCREEN_Y, m_grid->GetParent() );
int y = pos.y;
if (y + size.y > max_y) {
y = max_y - size.y;
}
//SetSize(pos.x, 0, size.x, size.y);
//SetSize(pos.x, 0, size.x, max_y);
SetSize(pos.x, y, size.x, size.y);
}
In ValueTooltip::OnTimer, added Fit(); at the very end.
In SetMinSize, replaced this:
int minWidth = (wxSystemSettings::GetMetric(wxSYS_SCREEN_X, grid->GetParent())*3)/2;
int minHeight = (wxSystemSettings::GetMetric(wxSYS_SCREEN_Y, grid->GetParent())*3)/2;
with this:
int minWidth = wxSystemSettings::GetMetric(wxSYS_SCREEN_X, grid->GetParent()); //changed
int minHeight = wxSystemSettings::GetMetric(wxSYS_SCREEN_Y, grid->GetParent());
It now uses all of the screen. It probably goes under menu bar, but it's hidden for me anyway.