Michael, Changes that William Scott made to fink's blt for coot caused the pymol tk interface to get stuck with a watch cursor icon after the APBS tools window was closed. I found that pymol 1.1r1 didn't suffer from this problem against that blt whereas all of the pymol 1.2 releases did. Looking at Warren's commit...
http://pymol.svn.sourceforge.net/viewvc/pymol/trunk/pymol/modules/pmg_tk/startup/apbs_tools.py?r1=3748&r2=3761 Warren seems to have been tinkering with the line... #self.dialog.activate(geometry = 'centerscreenalways', globalMode = 'nograb') Unfortunately, he rarely addded comments to the code changes in his commits so it is difficult to tell what he was trying to achieve with that. My own guess is that blt destablizes pymol and he was hacking around that. FYI, I think blt gets dragged in by Pmw. Looking at http://pmw.sourceforge.net/doc/starting.html, I see... ------------- Requirements Pmw.1.3 requires the _tkinter and Tkinter modules. It works with python versions 1.5.2 and greater (tested up to 2.2.1) and Tk versions 8.0 and greater (tested up to 8.3.2). If the BLT extension to Tk is present, Pmw will use the BLT busy command during modal dialogs to display a clock cursor. Also, the Pmw.Blt interface to the BLT busy, graph, stripchart, tabset and vector commands will be available. BLT versions 2.4i and greater are supported (tested up to 2.4u). You can find BLT at http://www.tcltk.com/blt/. ------------- So unfortunately, I don't think we can 'turn off' the blt usage in Pmw without building Pmw in the absence of blt. I guess this is hopeful though for the long term support of pymol. If only Pmw interacts directly with blt, we shouldn't have to do anything in pymol for blt 3.0 other than upgrade to a Pmw release which understand blt 3.0's interfaces. Jack On Wed, Dec 09, 2009 at 03:14:09PM -0500, Michael Lerner wrote: > I don't call blt directly from my plugin. In fact, I don't plot anything in > the plugin, so unless Pmw automatically makes some blt calls for me, the > plugin is probably blt-free. > > I haven't used pynmr before but it looks like you have to either compile > something or get a precompiled binary from the web. I'd rather stick with > pure python for the APBS Tools plugin. > > It looks to me like the plugin is closing PyMOL rather than crashing it when > I make the suggested changes under Ubuntu. > > -michael > > On Wed, Dec 9, 2009 at 12:05 PM, Jack Howarth <howa...@bromo.med.uc.edu>wrote: > > > Michael, > > Do you know if the APBS Tools plugin uses blt? I have working under > > the assumption that these problems are a manifestation of breakage in > > the existing blt 2.4z. Have you consider changing ABPS Tools to > > function more like pynmr (ie open its own window instead of a dialog)? > > I don't think I've ever seen pynmr crash pymol. > > Jack > > > > On Wed, Dec 09, 2009 at 11:14:08AM -0500, Michael Lerner wrote: > > > Hi, > > > > > > When I try that on my Ubuntu image, it makes it so that quitting the > > plugin > > > causes PyMOL to quit. > > > > > > I don't really know much about tk. If there's a standard way to open / > > > destroy the plugin, I'd be glad to change things around. As far as I > > know, > > > the relevant bits are > > > > > > def __init__(self,app): > > > self.parent = app.root > > > > > > # Create the dialog. > > > self.dialog = Pmw.Dialog(self.parent, > > > buttons = ('Register APBS Use', > > 'Register > > > PDB2PQR Use', 'Set grid', 'Run APBS', 'Exit APBS tools'), > > > title = 'PyMOL APBS Tools', > > > command = self.execute) > > > self.dialog.protocol('WM_DELETE_WINDOW',self.quit) > > > self.dialog.withdraw() > > > Pmw.setbusycursorattributes(self.dialog.component('hull')) > > > ... > > > self.showAppModal() > > > > > > def showAppModal(self): > > > #self.dialog.activate(geometry = 'centerscreenfirst', globalMode > > = > > > 'nograb') > > > #self.dialog.activate(geometry = 'centerscreenalways', globalMode > > = > > > 'nograb') > > > #self.dialog.activate(geometry = 'centerscreenfirst') > > > self.dialog.show() > > > > > > def execute(self, result, refocus=True): > > > if result == 'Register APBS Use': > > > ... > > > else: > > > # > > > # Doing it this way takes care of clicking on the x in the > > top > > > of the > > > # window, which as result set to None. > > > # > > > if __name__ == '__main__': > > > # > > > # dies with traceback, but who cares > > > # > > > self.parent.destroy() > > > else: > > > #self.dialog.deactivate(result) > > > global APBS_BINARY_LOCATION, APBS_PSIZE_LOCATION > > > APBS_BINARY_LOCATION = self.binary.getvalue() > > > APBS_PSIZE_LOCATION = self.psize.getvalue() > > > #self.dialog.withdraw() > > > #self.dialog.destroy() # stops CPU hogging, perhaps fixes > > > Ubuntu bug MGL > > > self.quit() > > > def quit(self): > > > self.dialog.quit() > > > self.parent.quit() > > > #self.dialog.withdraw() > > > #self.dialog.destroy() > > > > > > > > > by the way, we've started a google wave about the plugin. I can add any > > of > > > you that want to be on it. > > > > > > -michael > > > > > > On Sat, Dec 5, 2009 at 12:02 AM, William G. Scott < > > > wgsc...@chemistry.ucsc.edu> wrote: > > > > > > > Hi Jack: > > > > > > > > Again, many thanks. It has been a busy day so I didn't get a chance to > > try > > > > this until just now, but it fixed this highly annoying problem > > immediately. > > > > > > > > I'll pass it along upstream. > > > > > > > > All the best, > > > > > > > > Bill > > > > > > > > > > > > On Dec 4, 2009, at 8:25 AM, Jack Howarth wrote: > > > > > > > > > Bill, > > > > > Looking through the changes in the abps_tools.py script from > > > > > pymol 1.r1 to the current 1.2r2, I believe I've found the offending > > > > > code. If I revert the change... > > > > > > > > > > --- modules/pmg_tk/startup/apbs_tools.py.broken 2009-12-04 > > > > 11:11:03.000000000 -0500 > > > > > +++ modules/pmg_tk/startup/apbs_tools.py 2009-12-04 > > > > 11:18:08.000000000 -0500 > > > > > @@ -1124,7 +1124,7 @@ > > > > > self.showAppModal() > > > > > > > > > > def showAppModal(self): > > > > > - self.dialog.activate(geometry = 'centerscreenfirst', > > globalMode > > > > = 'nograb') > > > > > + #self.dialog.activate(geometry = 'centerscreenfirst', > > globalMode > > > > = 'nograb') > > > > > self.dialog.show() > > > > > #self.dialog.activate(geometry = 'centerscreenalways') > > > > > > > > > > I find that the use of the ABPS tools window no longer nukes the use > > of > > > > the main tk > > > > > interface menus afterwards. You may want to update the current > > pymol-py > > > > package with > > > > > that change. I haven't tested it yet but this might also solve the > > same > > > > issue with > > > > > pymol-py and the current x86_64 blt package. > > > > > Jack > > > > > > > > > > > > > > > > > -- > > > Michael Lerner, Ph.D. > > > IRTA Postdoctoral Fellow > > > Laboratory of Computational Biology NIH/NHLBI > > > 5635 Fishers Lane, Room T909, MSC 9314 > > > Rockville, MD 20852 (UPS/FedEx/Reality) > > > Bethesda MD 20892-9314 (USPS) > > > > > > -- > Michael Lerner, Ph.D. > IRTA Postdoctoral Fellow > Laboratory of Computational Biology NIH/NHLBI > 5635 Fishers Lane, Room T909, MSC 9314 > Rockville, MD 20852 (UPS/FedEx/Reality) > Bethesda MD 20892-9314 (USPS) ------------------------------------------------------------------------------ Return on Information: Google Enterprise Search pays you back Get the facts. http://p.sf.net/sfu/google-dev2dev _______________________________________________ Fink-devel mailing list Fink-devel@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.devel Subscription management: https://lists.sourceforge.net/lists/listinfo/fink-devel