From ea5a7014d9f97f048512abddf06f35e20fce5dcc Mon Sep 17 00:00:00 2001 From: Mirek Fidler Date: Mon, 12 Dec 2022 21:53:38 +0100 Subject: [PATCH] ide: Assist fix for -> --- uppsrc/Draw/Draw.h | 2 +- uppsrc/Draw/DrawUtil.cpp | 4 ++-- uppsrc/ide/Assist.cpp | 6 ++++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/uppsrc/Draw/Draw.h b/uppsrc/Draw/Draw.h index a65c645ad..fd81a40b0 100644 --- a/uppsrc/Draw/Draw.h +++ b/uppsrc/Draw/Draw.h @@ -893,7 +893,7 @@ void Union(Vector& rr, const Rect& add); Vector Intersection(const Vector& b, const Rect& a); -void AddRefreshRect(Vector& invalid, const Rect& _r); +void AddRefreshRect(Vector& invalid, const Rect& _r, double ctolerance = 2); void DrawDragFrame(Draw& w, const Rect& r, int n, const int *pattern, Color color, int animation); void DrawDragFrame(Draw& w, const Rect& r, int n, int pattern, Color color, int animation); diff --git a/uppsrc/Draw/DrawUtil.cpp b/uppsrc/Draw/DrawUtil.cpp index 524b7f1ee..a7fcba4f5 100644 --- a/uppsrc/Draw/DrawUtil.cpp +++ b/uppsrc/Draw/DrawUtil.cpp @@ -94,7 +94,7 @@ Vector Intersection(const Vector& b, const Rect& a) return Intersect(b, a, dummy); } -void AddRefreshRect(Vector& invalid, const Rect& _r) +void AddRefreshRect(Vector& invalid, const Rect& _r, double ctolerance) { Vector inv; Rect r = _r; @@ -102,7 +102,7 @@ void AddRefreshRect(Vector& invalid, const Rect& _r) for(int i = 0; i < invalid.GetCount(); i++) { const Rect& ir = invalid[i]; Rect ur = r | ir; - if(ur.Width() * ur.Height() < 2 * (ir.Width() * ir.Height() + ra)) + if(ur.Width() * ur.Height() < ctolerance * (ir.Width() * ir.Height() + ra)) r = ur; else if(!r.Contains(ir)) diff --git a/uppsrc/ide/Assist.cpp b/uppsrc/ide/Assist.cpp index ba2647361..fbd51df52 100644 --- a/uppsrc/ide/Assist.cpp +++ b/uppsrc/ide/Assist.cpp @@ -1059,8 +1059,10 @@ bool AssistEditor::Key(dword key, int count) else if(auto_assist) { if(InCode()) { - if(key == '.' || key == '>' && Ch(GetCursor32() - 2) == '-' || - key == ':' && Ch(GetCursor32() - 2) == ':') { + if(key == '>' && Ch(GetCursor32() - 2) == '-' || key == ':' && Ch(GetCursor32() - 2) == ':') + Assist(false); + else + if(key == '.') { String id; int pos = GetCursor() - 2; int n = 50;