diff --git a/terminatorlib/terminal.py b/terminatorlib/terminal.py index 329a7ecd..c97a4a6b 100755 --- a/terminatorlib/terminal.py +++ b/terminatorlib/terminal.py @@ -1044,12 +1044,23 @@ class Terminal(gtk.VBox): dbg('drag data received of type: %s' % selection_data.type) if gtk.targets_include_text(drag_context.targets) or \ gtk.targets_include_uri(drag_context.targets): - # copy text to destination - txt = selection_data.data.strip(' ') - if txt[0:7] == 'file://': - txt = "'%s'" % urllib.unquote(txt[7:]) - else: - txt = txt.split('\n')[0] + # copy text with no modification yet to destination + txt = selection_data.data + txt_lines = txt.split( "\r\n" ) + if txt_lines[-1] == '': + for line in txt_lines[:-1]: + if line[0:7] != 'file://': + break + else: + # It is a list of crlf terminated file:// URL. let's + # iterate over all elements except the last one. + str='' + for fname in txt_lines[:-1]: + dbg('drag data fname: %s' % fname) + fname = "'%s'" % urllib.unquote(fname[7:].replace("'", + '\'\\\'\'')) + str += fname + ' ' + txt=str for term in self.terminator.get_target_terms(self): term.feed(txt) return