When CallTip window is already created, ScintillaBase::CallTipShow() will only move it without drawing new content when new size is same as previous. added InvalidateRect() to ScintillaWin::CreateCallTipWindow() request redraw.
+   } else {
+       ::InvalidateRect(HwndFromWindow(ct.wCallTip), nullptr, FALSE);
Yeah, that's where my code come from.
maybe
InvalidateAll()need to be placed inScintillaBase::CallTipShow()asScintillaQt::CreateCallTipWindow()or other platforms may have same problem.Committed with [0f2095].
Related
Commit: [0f2095]
I was thought add
ct.wCallTip.InvalidateAll();beforect.wCallTip.Show();to avoid immediate redraw after show.I don't think that the draw will happen until returning to the message loop. Here is a trace switching from "20 " to "39 " in monospaced text:
OK, got it.