It seems so only the indentleft AND the indentfirst is change in your case. I cannot reproduces that her. IncIndent/DecIndent works differently depending on the text, in regular text and bullets it just changes indentleft, with outlines it also increments the outline level.
The amount it indents depends on the tabstops.
The indentfirst is changed if otherwise the text would go past the left margin.
In the code where I decrease the indent I did this
OldIndent := Editor.CurrAttr.IndentLeft;
Editor.CurrAttr.DecOutlineLevel;
Editor.CurrAttr.DecIndent;
if ((Editor.CurrAttr.IndentLeft = OldIndent) and (OldIndent = 720)) or
((Editor.CurrAttr.IndentLeft = 720) and (OldIndent = 0)) then
begin
Editor.CurrAttr.IndentLeft := 0;
Editor.CurrAttr.IndentFirst := 0;
end;
720 is the indent where it is all the way to the left.
Now even though when its there I had to check to make sure that if it was attempted to be decreased again that we didn't let it reset to a position where the text of the bullet was a tabs width indented to the right as in the second step of my first post.
I don't know if this will help determine what I was doing wrong or help someone else out in the future but I hope so.