<p>This workarounds a strange crash on Windows when the default GTK<br>
URL handler is called.<br>
We need the URL handler only on the secondary text label but we<br>
cannot access it directly, so iterate over all labels of the message<br>
dialog's message area and attach the custom handler to all of the<br>
labels. This shouldn't harm much as only the secondary label contains<br>
a link.</p>

<p>Here is the gdb backtrace from running on Windows:</p>

<pre><code>Thread 1 received signal SIGSEGV, Segmentation fault.
0x61a3ca04 in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
(gdb) bt
#0  0x61a3ca04 in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#1  0x61a4f96c in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#2  0x63c45fd2 in ?? () from H:\all\bin\libgobject-2.0-0.dll
#3  0x63c57c26 in ?? () from H:\all\bin\libgobject-2.0-0.dll
#4  0x63c5f31a in ?? () from H:\all\bin\libgobject-2.0-0.dll
#5  0x63c5faf7 in ?? () from H:\all\bin\libgobject-2.0-0.dll
#6  0x61a3fd4e in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#7  0x61a42c16 in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#8  0x61a4e72c in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#9  0x63c45f1c in ?? () from H:\all\bin\libgobject-2.0-0.dll
#10 0x63c57c26 in ?? () from H:\all\bin\libgobject-2.0-0.dll
#11 0x63c5f31a in ?? () from H:\all\bin\libgobject-2.0-0.dll
#12 0x63c5faf7 in ?? () from H:\all\bin\libgobject-2.0-0.dll
#13 0x61b691e3 in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#14 0x61a4cdb0 in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#15 0x61a4d15c in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#16 0x6c5791c4 in ?? () from H:\all\bin\libgdk-win32-2.0-0.dll
#17 0x687f3783 in ?? () from H:\all\bin\libglib-2.0-0.dll
#18 0x687f39dc in ?? () from H:\all\bin\libglib-2.0-0.dll
#19 0x687f3e93 in ?? () from H:\all\bin\libglib-2.0-0.dll
#20 0x619d2c7c in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#21 0x02fc29d9 in show_msgbox () from H:\all\lib\geany\geniuspaste.dll
#22 0x02fc2e8e in paste () from H:\all\lib\geany\geniuspaste.dll
#23 0x02fc2f0e in item_activate () from H:\all\lib\geany\geniuspaste.dll
#24 0x63c45fd2 in ?? () from H:\all\bin\libgobject-2.0-0.dll
#25 0x63c57871 in ?? () from H:\all\bin\libgobject-2.0-0.dll
#26 0x63c5f890 in ?? () from H:\all\bin\libgobject-2.0-0.dll
#27 0x63c5faf7 in ?? () from H:\all\bin\libgobject-2.0-0.dll
#28 0x61b67fad in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#29 0x61a60ae7 in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#30 0x61a60e20 in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#31 0x61a4e72c in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#32 0x63c45fd2 in ?? () from H:\all\bin\libgobject-2.0-0.dll
#33 0x63c57c26 in ?? () from H:\all\bin\libgobject-2.0-0.dll
#34 0x63c5f31a in ?? () from H:\all\bin\libgobject-2.0-0.dll
#35 0x63c5faf7 in ?? () from H:\all\bin\libgobject-2.0-0.dll
#36 0x61b691e3 in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#37 0x61a4cdb0 in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#38 0x61a4d15c in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#39 0x6c5791c4 in ?? () from H:\all\bin\libgdk-win32-2.0-0.dll
#40 0x687f3783 in ?? () from H:\all\bin\libglib-2.0-0.dll
#41 0x687f39dc in ?? () from H:\all\bin\libglib-2.0-0.dll
#42 0x687f3e93 in ?? () from H:\all\bin\libglib-2.0-0.dll
---Type <return> to continue, or q <return> to quit---
#43 0x61a4c11f in ?? () from H:\all\bin\libgtk-win32-2.0-0.dll
#44 0x6a181c39 in main_lib (argc=1, argv=0x4dec90) at libmain.c:1229
#45 0x00401650 in main (argc=3, argv=0x4dec90) at main.c:27
(gdb)
</code></pre>

<p>which doesn't really help much. Unfortunately, I don't have a GTK runtime with debug symbols.</p>

<p>Anyway, using <code>utils_open_browser()</code> has the nice side effect that the link will be opened with the browser configured in Geany.</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/geany/geany-plugins/pull/403'>https://github.com/geany/geany-plugins/pull/403</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Geniuspaste: Install a custom URL handler for Paste link</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany-plugins/pull/403/files#diff-0">geniuspaste/src/geniuspaste.c</a>
    (26)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/geany/geany-plugins/pull/403.patch'>https://github.com/geany/geany-plugins/pull/403.patch</a></li>
  <li><a href='https://github.com/geany/geany-plugins/pull/403.diff'>https://github.com/geany/geany-plugins/pull/403.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href="https://github.com/geany/geany-plugins/pull/403">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJ9mr1ac-r6Md-WMbhs6mzwLdAvC0ks5pssFQgaJpZM4HvTZB.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-plugins/pull/403"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>