title: What does g_signal_connect_swapped() do?
body: <p>According to GObject reference </p>
  
  <blockquote>
    <p>g_signal_connect_swapped(instance, detailed_signal, c_handler, data); connects a GCallback function to a signal for a particular object. The instance on which the signal is emitted and data will be swapped when calling the handler.</p>
  </blockquote>
  
  <p>I don't quite get what this means. Does this mean that the <code>data</code> will point to the object pointed to by<code>instance</code> and <code>instance</code> will point to the object that was pointed to by <code>data</code> or am I making a mistake here?</p>
  
  <p>If former is the case then what is the logic behind this?</p>