From 1d315d84be108dc3b81b2c6344d707ab9cd69a3b Mon Sep 17 00:00:00 2001 From: martin Date: Wed, 11 Feb 2009 00:54:04 +0000 Subject: [PATCH] SynEdit: Fix Highlight Begin-End with tabs or multi byte chars on the line (was not using Physical Pos for Markup) git-svn-id: trunk@18634 - --- components/synedit/syneditmarkupwordgroup.pp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/components/synedit/syneditmarkupwordgroup.pp b/components/synedit/syneditmarkupwordgroup.pp index c349386fab..369eab5717 100644 --- a/components/synedit/syneditmarkupwordgroup.pp +++ b/components/synedit/syneditmarkupwordgroup.pp @@ -127,7 +127,21 @@ begin Word3.Y, Word3.X, Word3. X2, Word2.Y, Word2.X, Word2. X2 ) then + begin + if Word1.Y > 0 then begin + Word1.X := TSynEdit(SynEdit).LogicalToPhysicalPos(Point(Word1.X, Word1.Y)).X; + Word1.X2 := TSynEdit(SynEdit).LogicalToPhysicalPos(Point(Word1.X2, Word1.Y)).X; + end; + if Word2.Y > 0 then begin + Word2.X := TSynEdit(SynEdit).LogicalToPhysicalPos(Point(Word2.X, Word2.Y)).X; + Word2.X2 := TSynEdit(SynEdit).LogicalToPhysicalPos(Point(Word2.X2, Word2.Y)).X; + end; + if Word3.Y > 0 then begin + Word3.X := TSynEdit(SynEdit).LogicalToPhysicalPos(Point(Word3.X, Word3.Y)).X; + Word3.X2 := TSynEdit(SynEdit).LogicalToPhysicalPos(Point(Word3.X2, Word3.Y)).X; + end; exit; + end; // In Case GetWordTriplet did set them Word1.Y := -1;