textEditor string compare confusion

I’m trying to get a reliable dirty flag for a textEditor component.

It’s not working to just put the flag in textChanged() because I’m getting calls to it that are not originating in my code.

So I’m trying to compare a stored value for the text in the editor. But I’m not getting the compare value I expect.

Basically I’m doing this:
String str(“my text”);

and then elsewhere:
setDirty (editor.getText().compare(str) != 0);

compare returns -1. And If I printout substring(0,50) for both str and editor.getText(), the editor text shows one more character.

Is there a hidden character I need to strip to get the intended effect? I’ve tried trimming both strings to no avail.

Well, I tried “compareNatural” and it works. But seems expensive, maybe. Shouldn’t matter for my app.

I’d still like to know what’s going on…


Well, in case this comes up for anyone else, there is a solution for the ‘dirty’ flag issue in the MDI panel of the Juce Demo. Not sure quite how it works, but I think I can use it regardless.