diff Lib/lib-tk/FileDialog.py @ 4893:c2eac126e8ff legacy-trunk

Fix the following bug: - When dragging the mouse in either listbox, the *first* entry clicked on is selected rather than the last (but the last one is highlighted). This is done by changing the bindtags so that our binding is executed after the default binding (which sets the 'active' index to the last item selected), and using 'active' instead of 'anchor' as the index to ask for.
author Guido van Rossum <guido@python.org>
date Fri, 03 Jan 1997 23:39:26 +0000
parents 0d1463a45b6f
children 9c37ed8868b9
line wrap: on
line diff
--- a/Lib/lib-tk/FileDialog.py	Fri Jan 03 23:00:51 1997 +0000
+++ b/Lib/lib-tk/FileDialog.py	Fri Jan 03 23:39:26 1997 +0000
@@ -11,8 +11,6 @@
 from Tkinter import *
 from Dialog import Dialog
 
-ANCHOR = 'anchor'
-
 import os
 import fnmatch
 
@@ -73,6 +71,8 @@
 	self.files = Listbox(self.midframe, exportselection=0,
 			     yscrollcommand=(self.filesbar, 'set'))
 	self.files.pack(side=RIGHT, expand=YES, fill=BOTH)
+	btags = self.files.bindtags()
+	self.files.bindtags(btags[1:] + btags[:1])
 	self.files.bind('<ButtonRelease-1>', self.files_select_event)
 	self.files.bind('<Double-ButtonRelease-1>', self.files_double_event)
 	self.filesbar.config(command=(self.files, 'yview'))
@@ -83,6 +83,8 @@
 			    yscrollcommand=(self.dirsbar, 'set'))
 	self.dirs.pack(side=LEFT, expand=YES, fill=BOTH)
 	self.dirsbar.config(command=(self.dirs, 'yview'))
+	btags = self.dirs.bindtags()
+	self.dirs.bindtags(btags[1:] + btags[:1])
 	self.dirs.bind('<ButtonRelease-1>', self.dirs_select_event)
 	self.dirs.bind('<Double-ButtonRelease-1>', self.dirs_double_event)
 
@@ -133,7 +135,7 @@
 
     def dirs_select_event(self, event):
 	dir, pat = self.get_filter()
-	subdir = self.dirs.get(ANCHOR)
+	subdir = self.dirs.get('active')
 	dir = os.path.normpath(os.path.join(self.directory, subdir))
 	self.set_filter(dir, pat)
 
@@ -141,7 +143,7 @@
 	self.ok_command()
 
     def files_select_event(self, event):
-	file = self.files.get(ANCHOR)
+	file = self.files.get('active')
 	self.set_selection(file)
 
     def ok_event(self, event):