<p>OK, I know what's going on now but don't have a good solution for the problem. For non-downloaded XMLs the files to be opened are passed  as Geany command line arguments and everything works as on linux - they are passed to the existing Geany instance through the socket. However, with the downloaded XMLs the files to be opened aren't for some reason passed as arguments but later through the callback here:</p>
<p><a href="https://github.com/geany/geany/blob/master/src/osx.c#L111">https://github.com/geany/geany/blob/master/src/osx.c#L111</a></p>
<p>This means that argc==0 and no sending through sockets is performed here</p>
<p><a href="https://github.com/geany/geany/blob/master/src/libmain.c#L1096">https://github.com/geany/geany/blob/master/src/libmain.c#L1096</a></p>
<p>and new instance of Geany is started. The problem is that at the time when main() is run we don't know if Geany is going to receive the files to be opened through the callback or not. It's only later when we start receiving the callback but at this point Geany UI is already displayed.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/geany/geany/issues/1619#issuecomment-333368018">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABDrJ1BBJWCxiGqxEomcdxUMdi7DP4MTks5sn2yrgaJpZM4PpJX0">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJ-4dFqGozn4jf7xg2eFXJa_5BNmgks5sn2yrgaJpZM4PpJX0.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/geany/geany/issues/1619#issuecomment-333368018"></link>
  <meta itemprop="name" content="View Issue"></meta>
</div>
<meta itemprop="description" content="View this Issue on GitHub"></meta>
</div>

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/geany/geany","title":"geany/geany","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/geany/geany"}},"updates":{"snippets":[{"icon":"PERSON","message":"@techee in #1619: OK, I know what's going on now but don't have a good solution for the problem. For non-downloaded XMLs the files to be opened are passed  as Geany command line arguments and everything works as on linux - they are passed to the existing Geany instance through the socket. However, with the downloaded XMLs the files to be opened aren't for some reason passed as arguments but later through the callback here:\r\n\r\nhttps://github.com/geany/geany/blob/master/src/osx.c#L111\r\n\r\nThis means that argc==0 and no sending through sockets is performed here\r\n\r\nhttps://github.com/geany/geany/blob/master/src/libmain.c#L1096\r\n\r\nand new instance of Geany is started. The problem is that at the time when main() is run we don't know if Geany is going to receive the files to be opened through the callback or not. It's only later when we start receiving the callback but at this point Geany UI is already displayed.\r\n\r\n"}],"action":{"name":"View Issue","url":"https://github.com/geany/geany/issues/1619#issuecomment-333368018"}}}</script>