gentoo/dev-python/pmw/files/1.3.2-python2.5.patch
Robin H. Johnson 56bd759df1
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.

This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.

Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
2015-08-08 17:38:18 -07:00

55 lines
2.0 KiB
Diff

Source: http://github.com/nanotube/pmw_fixes/commit/5e6dcbdaef2bb6c40037b922dd0efa081f1575ab (Daniel Folkinshteyn)
fix bug in OptionMenu.setitems, introduced with the fixing of this python
bug:
http://bugs.python.org/issue1342811
versions of python 2.5.4 and newer now automatically delete commands when
items are deleted
however, that causes error if the command is deleted manually beforehand.
old versions, on the contrary, require manual command deletion to free up
the objects.
so we put in a python version check to see if we need to manually delete
commands.
fixes the Pmw bug referred to here:
http://sourceforge.net/forum/forum.php?thread_id=3283195&forum_id=33675
and here:
http://sourceforge.net/tracker/?func=detail&aid=2795731&group_id=10743&ati
d=110743
--- a/src/Pmw/Pmw_1_3/lib/PmwOptionMenu.py
+++ b/src/Pmw/Pmw_1_3/lib/PmwOptionMenu.py
@@ -1,6 +1,7 @@
import types
import Tkinter
import Pmw
+import sys
class OptionMenu(Pmw.MegaWidget):
@@ -59,11 +60,17 @@ class OptionMenu(Pmw.MegaWidget):
def setitems(self, items, index = None):
- # Clean up old items and callback commands.
- for oldIndex in range(len(self._itemList)):
- tclCommandName = str(self._menu.entrycget(oldIndex, 'command'))
- if tclCommandName != '':
- self._menu.deletecommand(tclCommandName)
+ # python version check
+ # python versions >= 2.5.4 automatically clean commands
+ # and manually cleaning them causes errors when deleting items
+
+ if sys.version_info[0] * 100 + sys.version_info[1] * 10 + \
+ sys.version_info[2] < 254:
+ # Clean up old items and callback commands.
+ for oldIndex in range(len(self._itemList)):
+ tclCommandName = str(self._menu.entrycget(oldIndex, 'command'))
+ if tclCommandName != '':
+ self._menu.deletecommand(tclCommandName)
self._menu.delete(0, 'end')
self._itemList = list(items)