aboutsummaryrefslogtreecommitdiffstats
path: root/embed
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2005-08-07 06:26:45 +0800
committerChristian Persch <chpe@src.gnome.org>2005-08-07 06:26:45 +0800
commit5ab6d7052301d708dc1f63351d82f46f4a1f6678 (patch)
tree58484ad13afed623d5aee78a04b97f83f8186085 /embed
parent976b6e0255ef388a396d1f1525b5d3ef70b67799 (diff)
downloadgsoc2013-epiphany-5ab6d7052301d708dc1f63351d82f46f4a1f6678.tar
gsoc2013-epiphany-5ab6d7052301d708dc1f63351d82f46f4a1f6678.tar.gz
gsoc2013-epiphany-5ab6d7052301d708dc1f63351d82f46f4a1f6678.tar.bz2
gsoc2013-epiphany-5ab6d7052301d708dc1f63351d82f46f4a1f6678.tar.lz
gsoc2013-epiphany-5ab6d7052301d708dc1f63351d82f46f4a1f6678.tar.xz
gsoc2013-epiphany-5ab6d7052301d708dc1f63351d82f46f4a1f6678.tar.zst
gsoc2013-epiphany-5ab6d7052301d708dc1f63351d82f46f4a1f6678.zip
Also block GtkMozEmbed's child focus-[in|out]-event handlers.
2005-08-07 Christian Persch <chpe@cvs.gnome.org> * embed/mozilla/mozilla-embed.cpp: (mozilla_embed_realize): Also block GtkMozEmbed's child focus-[in|out]-event handlers.
Diffstat (limited to 'embed')
-rw-r--r--embed/mozilla/mozilla-embed.cpp28
1 files changed, 21 insertions, 7 deletions
diff --git a/embed/mozilla/mozilla-embed.cpp b/embed/mozilla/mozilla-embed.cpp
index d925ac0fa..80aa77d26 100644
--- a/embed/mozilla/mozilla-embed.cpp
+++ b/embed/mozilla/mozilla-embed.cpp
@@ -257,22 +257,36 @@ mozilla_embed_realize (GtkWidget *widget)
guint n;
n = g_signal_handlers_block_matched (toplevel,
- (GSignalMatchType) (G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DATA),
- fiesid, 0, NULL, NULL, data);
+ (GSignalMatchType) (G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DATA),
+ fiesid, 0, NULL, NULL, data);
n += g_signal_handlers_block_matched (toplevel,
- (GSignalMatchType) (G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DATA),
- foesid, 0, NULL, NULL, data);
+ (GSignalMatchType) (G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DATA),
+ foesid, 0, NULL, NULL, data);
if (n != 2)
{
- g_warning ("Unexpected (n=%d) focus handlers found!\n", n);
+ g_warning ("Unexpected number (n=%d) of toplevel focus handlers found!\n", n);
}
if (mpriv->focus_connected) return;
- g_signal_connect_object (bin->child, "focus-in-event",
+ GtkWidget *child = gtk_bin_get_child (bin);
+ g_return_if_fail (child != NULL);
+
+ n = g_signal_handlers_block_matched (child,
+ (GSignalMatchType) (G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DATA),
+ fiesid, 0, NULL, NULL, widget);
+ n += g_signal_handlers_block_matched (child,
+ (GSignalMatchType) (G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DATA),
+ foesid, 0, NULL, NULL, widget);
+ if (n != 2)
+ {
+ g_warning ("Unexpected number (n=%d) of child focus handlers found!\n", n);
+ }
+
+ g_signal_connect_object (child, "focus-in-event",
G_CALLBACK (child_focus_in_event_cb), widget,
G_CONNECT_AFTER);
- g_signal_connect_object (bin->child, "focus-out-event",
+ g_signal_connect_object (child, "focus-out-event",
G_CALLBACK (child_focus_out_event_cb), widget,
G_CONNECT_AFTER);