Olhando para a documentação , você poderá usar o get_path do objeto AppInfoManager
Executando o seguinte no interpretador python:
>>> from gi.repository import Unity >>> a = Unity.AppInfoManager.get_instance() >>> a.get_path("gedit.desktop") '/usr/share/applications/gedit.desktop'
Como você pode ver, apenas passar o nome do arquivo da área de trabalho retorna o caminho completo para o nome do arquivo da área de trabalho.
Assim, a partir do seu aplicativo de arrastar e soltar - certifique-se de adicionar o destino uri:
widget.drag_dest_add_uri_targets()
conecte-se ao método drag_data_get
connect("drag-data-get", self.on_drag_data_get)
def on_drag_data_received(self, widget, drag_context, x,y, data,info, time):
print (data.get_uris())
Divida a partir de application://app.desktop
( string.split(str, 1)[1]
) e alimente isso no método appinfomanager.get_path()