You've already forked lazarus-ccr
richmemo: win32 fix style selection on internal change.
modified Internal change. Only allow if styles is fully modified. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4526 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -845,16 +845,24 @@ var
|
||||
j : Integer;
|
||||
l : Integer;
|
||||
p : TFontParams;
|
||||
allowInternalChange: Boolean;
|
||||
fp : TFontParams;
|
||||
const
|
||||
AllFontStyles : TFontStyles = [fsBold, fsItalic, fsUnderline, fsStrikeOut];
|
||||
begin
|
||||
if not HandleAllocated then HandleNeeded;
|
||||
|
||||
if (ModifyMask = []) or (TextLength = 0) then Exit;
|
||||
|
||||
if TWSCustomRichMemoClass(WidgetSetClass).isInternalChange(Self, ModifyMask) then
|
||||
allowInternalChange:=(not (tmm_Styles in ModifyMask)) or (AddFontStyle+RemoveFontStyle=AllFontStyles);
|
||||
|
||||
if allowInternalChange and (TWSCustomRichMemoClass(WidgetSetClass).isInternalChange(Self, ModifyMask)) then
|
||||
begin
|
||||
// more effecient from OS view
|
||||
fp:=fnt;
|
||||
if tmm_Styles in ModifyMask then fp.Style:=AddFontStyle;
|
||||
TWSCustomRichMemoClass(WidgetSetClass).SetTextAttributesInternal(Self,
|
||||
TextStart, TextLength, ModifyMask, fnt);
|
||||
TextStart, TextLength, ModifyMask, fp);
|
||||
Exit;
|
||||
end;
|
||||
|
||||
|
Reference in New Issue
Block a user