Fix drag and drop, which had become horribly sensitive to the internal widget structure of Terminal

This commit is contained in:
Chris Jones 2010-02-20 23:05:51 +00:00
parent b1e4d7710d
commit ad1b1ecc79
1 changed files with 14 additions and 1 deletions

View File

@ -19,6 +19,7 @@ from util import dbg, err, gerr, get_top_window
import util import util
from config import Config from config import Config
from cwd import get_default_cwd from cwd import get_default_cwd
from factory import Factory
from terminator import Terminator from terminator import Terminator
from titlebar import Titlebar from titlebar import Titlebar
from terminal_popup_menu import TerminalPopupMenu from terminal_popup_menu import TerminalPopupMenu
@ -860,7 +861,19 @@ for %s (%s)' % (name, urlplugin.__class__.__name__))
return return
srchbox = widgetsrc srchbox = widgetsrc
dsthbox = widget.get_parent().get_parent()
# The widget argument is actually a vte.Terminal(). Turn that into a
# terminatorlib Terminal()
maker = Factory()
while True:
widget = widget.get_parent()
if not widget:
# We've run out of widgets. Something is wrong.
return
if maker.isinstance(widget, 'Terminal'):
break
dsthbox = widget
dstpaned = dsthbox.get_parent() dstpaned = dsthbox.get_parent()
srcpaned = srchbox.get_parent() srcpaned = srchbox.get_parent()