Are the coordinates you are passing to the pick function relative to the lower-left corner of the sub-window, or the lower-left corner of the graphics window? The pick function expects coordinates that are relative to the lower-left corner of the graphics window. Here is a simple script showing that picking does work with sub-windows:
Code:
import viz
viz.go()
viz.mouse(0)
viz.clearcolor(viz.GRAY)
#Add sub-windows
window = viz.addWindow(view=viz.addView(scene=2),pos=(0.8,1))
window = viz.addWindow(view=viz.addView(scene=3),pos=(0,1))
window = viz.addWindow(view=viz.addView(scene=4),pos=(0,0.2))
window = viz.addWindow(view=viz.addView(scene=5),pos=(0.8,0.2))
#Add quad to each window
viz.addTexQuad(pos=(0,1.8,2),color=viz.WHITE,scene=1)
viz.addTexQuad(pos=(0,1.8,2),color=viz.RED,scene=2)
viz.addTexQuad(pos=(0,1.8,2),color=viz.GREEN,scene=3)
viz.addTexQuad(pos=(0,1.8,2),color=viz.BLUE,scene=4)
viz.addTexQuad(pos=(0,1.8,2),color=viz.YELLOW,scene=5)
def dopick():
win = viz.window.select()
if win:
node = win.pick()
if node:
node.runAction(vizact.sizeTo(size=[2,2,1],time=0.1))
node.addAction(vizact.sizeTo(size=[1,1,1],time=0.1))
vizact.onmousedown(viz.MOUSEBUTTON_LEFT,dopick)