Re: Bug#590453: libgtk2-perl: Gtk2::FileChooserDialog signal produces different response to ->run()
- From: Torsten Schoenfeld <kaffeetisch gmx de>
- To: gtk-perl-list gnome org
- Cc: muppet <scott asofyet org>
- Subject: Re: Bug#590453: libgtk2-perl: Gtk2::FileChooserDialog signal produces different response to ->run()
- Date: Sun, 19 Sep 2010 03:12:51 +0200
On 26.07.2010 23:30, Torsten Schoenfeld wrote:
On 26.07.2010 15:47, Jeffrey Ratcliffe wrote:
After some rooting around, the problem comes from Gtk2::Dialog
ancestor, as demonstrated by the attached script.
I can reproduce the problem. After some head-scratching, I'm now pretty
sure that this due to a problem in Glib that was uncovered by the
introduction of Gtk2::InfoBar in Gtk2 1.230.
Gtk2::InfoBar also has a "response" signal, and just like Gtk2::Dialog,
it installs a custom signal marshaller that converts the numeric
response IDs to strings. The problem is that Glib stores custom signal
marshallers in a hash table keyed by signal names. And since Gtk2 1.230,
Gtk2::Dialog and Gtk2::InfoBar both install a custom signal marshaller
for the "response" signal on their respective type. But since Glib just
stores (signal name => signal marshaller) pairs, the entry for
Gtk2::InfoBar replaces the entry for Gtk2::Dialog. Glib needs to be
fixed to store the associations in the form ((type, signal name) =>
signal marshaller).
I implemented this now:
<https://bugzilla.gnome.org/show_bug.cgi?id=630031>. The changes
necessarily do quite a bit more work when connecting signals, so this
might be a slow-down. But I don't see how to implement custom signal
marshaller lookup properly in a different way.
muppet, what do you think?
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]