Parcourir la source

dgui: Fix reset text scale on DirectOptionMenu item unhighlight

Set text scale to previous unhighlighted scale on unhighlight to keep
custom scales
fireclawthefox il y a 6 ans
Parent
commit
eb3b45ebb1
1 fichiers modifiés avec 6 ajouts et 1 suppressions
  1. 6 1
      direct/src/gui/DirectOptionMenu.py

+ 6 - 1
direct/src/gui/DirectOptionMenu.py

@@ -72,6 +72,10 @@ class DirectOptionMenu(DirectButton):
         self.popupMenu = None
         self.popupMenu = None
         self.selectedIndex = None
         self.selectedIndex = None
         self.highlightedIndex = None
         self.highlightedIndex = None
+        if 'item_text_scale' in kw:
+            self._prevItemTextScale = kw['item_text_scale']
+        else:
+            self._prevItemTextScale = (1,1)
         # A big screen encompassing frame to catch the cancel clicks
         # A big screen encompassing frame to catch the cancel clicks
         self.cancelFrame = self.createcomponent(
         self.cancelFrame = self.createcomponent(
             'cancelframe', (), None,
             'cancelframe', (), None,
@@ -247,6 +251,7 @@ class DirectOptionMenu(DirectButton):
 
 
     def _highlightItem(self, item, index):
     def _highlightItem(self, item, index):
         """ Set frame color of highlighted item, record index """
         """ Set frame color of highlighted item, record index """
+        self._prevItemTextScale = item['text_scale']
         item['frameColor'] = self['highlightColor']
         item['frameColor'] = self['highlightColor']
         item['frameSize'] = (self['highlightScale'][0]*self.minX, self['highlightScale'][0]*self.maxX, self['highlightScale'][1]*self.minZ, self['highlightScale'][1]*self.maxZ)
         item['frameSize'] = (self['highlightScale'][0]*self.minX, self['highlightScale'][0]*self.maxX, self['highlightScale'][1]*self.minZ, self['highlightScale'][1]*self.maxZ)
         item['text_scale'] = self['highlightScale']
         item['text_scale'] = self['highlightScale']
@@ -256,7 +261,7 @@ class DirectOptionMenu(DirectButton):
         """ Clear frame color, clear highlightedIndex """
         """ Clear frame color, clear highlightedIndex """
         item['frameColor'] = frameColor
         item['frameColor'] = frameColor
         item['frameSize'] = (self.minX, self.maxX, self.minZ, self.maxZ)
         item['frameSize'] = (self.minX, self.maxX, self.minZ, self.maxZ)
-        item['text_scale'] = (1,1)
+        item['text_scale'] = self._prevItemTextScale
         self.highlightedIndex = None
         self.highlightedIndex = None
 
 
     def selectHighlightedIndex(self, event = None):
     def selectHighlightedIndex(self, event = None):