diff --git a/uppsrc/TextDiffCtrl/TextCtrl.cpp b/uppsrc/TextDiffCtrl/TextCtrl.cpp index f722998f1..97be093df 100644 --- a/uppsrc/TextDiffCtrl/TextCtrl.cpp +++ b/uppsrc/TextDiffCtrl/TextCtrl.cpp @@ -140,6 +140,14 @@ void TextCompareCtrl::MouseMove(Point pt, dword flags) } } +void Upp::TextCompareCtrl::MouseLeave() +{ + if(blame_line >= 0) { + blame_line = -1; + Refresh(); + } +} + void TextCompareCtrl::LeftRepeat(Point pt, dword keyflags) { if(HasCapture()) @@ -533,7 +541,7 @@ void TextCompareCtrl::Paint(Draw& draw) draw.End(); draw.DrawRect(0, lcy, n_width, sz.cy - lcy, number_bg); - if(blame_y >= 0) { + if(blame_y >= 0 && HasMouse()) { RichText txt = ParseQTF(blame_qtf); txt.ApplyZoom(GetRichTextStdScreenZoom()); int cx = clamp(txt.GetWidth(), 10, sz.cx - n_width); diff --git a/uppsrc/TextDiffCtrl/TextDiffCtrl.h b/uppsrc/TextDiffCtrl/TextDiffCtrl.h index 13c0d3b5d..60c0869da 100644 --- a/uppsrc/TextDiffCtrl/TextDiffCtrl.h +++ b/uppsrc/TextDiffCtrl/TextDiffCtrl.h @@ -30,19 +30,20 @@ Vector GetStringLineMap(const String &s); class TextCompareCtrl : public Ctrl { public: - virtual void Paint(Draw& draw); - virtual void Layout(); - virtual void MouseWheel(Point pt, int zdelta, dword keyflags); - virtual void HorzMouseWheel(Point pt, int zdelta, dword keyflags); - virtual void MouseMove(Point pt, dword keyflags); - virtual void LeftDown(Point pt, dword keyflags); - virtual void LeftDouble(Point pt, dword keyflags); - virtual void LeftUp(Point pt, dword keyflags); - virtual void LeftRepeat(Point pt, dword keyflags); - virtual void RightDown(Point p, dword keyflags); - virtual Image CursorImage(Point p, dword keyflags); - virtual bool Key(dword key, int repcnt); - virtual void LostFocus(); + void Paint(Draw& draw) override; + void Layout() override; + void MouseWheel(Point pt, int zdelta, dword keyflags) override; + void HorzMouseWheel(Point pt, int zdelta, dword keyflags) override; + void MouseMove(Point pt, dword keyflags) override; + void MouseLeave() override; + void LeftDown(Point pt, dword keyflags) override; + void LeftDouble(Point pt, dword keyflags) override; + void LeftUp(Point pt, dword keyflags) override; + void LeftRepeat(Point pt, dword keyflags) override; + void RightDown(Point p, dword keyflags) override; + Image CursorImage(Point p, dword keyflags) override; + bool Key(dword key, int repcnt) override; + void LostFocus() override; struct Blame : Moveable { String hash;