From 5c99cf16f81be62166ba2fcd207a040fd5cc6d45 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 14 Aug 2019 13:16:50 +0200 Subject: [PATCH] dgui: fix DirectEntry._autoCapitalize() on Python 3.x (#628) --- direct/src/gui/DirectEntry.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/direct/src/gui/DirectEntry.py b/direct/src/gui/DirectEntry.py index f7ad164798..d614a3825a 100644 --- a/direct/src/gui/DirectEntry.py +++ b/direct/src/gui/DirectEntry.py @@ -216,11 +216,11 @@ class DirectEntry(DirectFrame): self._autoCapitalize() def _autoCapitalize(self): - name = self.get().decode('utf-8') + name = self.guiItem.getWtext() # capitalize each word, allowing for things like McMutton - capName = '' + capName = u'' # track each individual word to detect prefixes like Mc - wordSoFar = '' + wordSoFar = u'' # track whether the previous character was part of a word or not wasNonWordChar = True for i, character in enumerate(name): @@ -229,9 +229,9 @@ class DirectEntry(DirectFrame): # This assumes that string.lower and string.upper will return different # values for all unicode letters. # - Don't count apostrophes as a break between words - if character.lower() == character.upper() and character != "'": + if character.lower() == character.upper() and character != u"'": # we are between words - wordSoFar = '' + wordSoFar = u'' wasNonWordChar = True else: capitalize = False @@ -255,7 +255,8 @@ class DirectEntry(DirectFrame): wordSoFar += character wasNonWordChar = False capName += character - self.enterText(capName.encode('utf-8')) + self.guiItem.setWtext(capName) + self.guiItem.setCursorPosition(self.guiItem.getNumCharacters()) def focusOutCommandFunc(self): if self['focusOutCommand']: