aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCrispin Flowerday <gnome@flowerday.cx>2006-01-01 03:12:31 +0800
committerCrispin Flowerday <crispin@src.gnome.org>2006-01-01 03:12:31 +0800
commitd2d8ffb20ab2567a922529521c2f20a7f9576562 (patch)
tree0fd07f2b410a07e50ed6d61403b724bfa8593139 /src
parentcbcd4b6b377bf56d69a63f5672f349149aa83c9d (diff)
downloadgsoc2013-epiphany-d2d8ffb20ab2567a922529521c2f20a7f9576562.tar
gsoc2013-epiphany-d2d8ffb20ab2567a922529521c2f20a7f9576562.tar.gz
gsoc2013-epiphany-d2d8ffb20ab2567a922529521c2f20a7f9576562.tar.bz2
gsoc2013-epiphany-d2d8ffb20ab2567a922529521c2f20a7f9576562.tar.lz
gsoc2013-epiphany-d2d8ffb20ab2567a922529521c2f20a7f9576562.tar.xz
gsoc2013-epiphany-d2d8ffb20ab2567a922529521c2f20a7f9576562.tar.zst
gsoc2013-epiphany-d2d8ffb20ab2567a922529521c2f20a7f9576562.zip
When in automatic mode, update the treeview to reflect the currently
2005-12-31 Crispin Flowerday <gnome@flowerday.cx> * src/ephy-encoding-dialog.c: (sync_encoding_against_embed), (embed_net_stop_cb), (sync_embed_cb), (ephy_encoding_dialog_finalize): When in automatic mode, update the treeview to reflect the currently selected encoding. Fixes bug #127757
Diffstat (limited to 'src')
-rw-r--r--src/ephy-encoding-dialog.c36
1 files changed, 35 insertions, 1 deletions
diff --git a/src/ephy-encoding-dialog.c b/src/ephy-encoding-dialog.c
index 261b8f4b5..79d1a7621 100644
--- a/src/ephy-encoding-dialog.c
+++ b/src/ephy-encoding-dialog.c
@@ -107,7 +107,7 @@ ephy_encoding_dialog_get_type (void)
}
static void
-sync_embed_cb (EphyEncodingDialog *dialog, GParamSpec *pspec, gpointer dummy)
+sync_encoding_against_embed (EphyEncodingDialog *dialog)
{
EphyEmbed *embed;
EphyNode *node;
@@ -160,6 +160,33 @@ sync_embed_cb (EphyEncodingDialog *dialog, GParamSpec *pspec, gpointer dummy)
dialog->priv->update_tag = FALSE;
}
+
+static void
+embed_net_stop_cb (EphyEmbed *embed, EphyEncodingDialog *dialog)
+{
+ sync_encoding_against_embed (dialog);
+}
+
+static void
+sync_embed_cb (EphyEncodingDialog *dialog, GParamSpec *pspec, gpointer dummy)
+{
+ EphyEmbed *embed;
+ embed = ephy_embed_dialog_get_embed (EPHY_EMBED_DIALOG (dialog));
+
+ if (dialog->priv->embed != NULL)
+ {
+ g_signal_handlers_disconnect_by_func (dialog->priv->embed,
+ G_CALLBACK (embed_net_stop_cb),
+ dialog);
+ }
+
+ g_signal_connect (G_OBJECT (embed), "net_stop",
+ G_CALLBACK (embed_net_stop_cb), dialog);
+ dialog->priv->embed = embed;
+
+ sync_encoding_against_embed (dialog);
+}
+
static void
sync_active_tab (EphyWindow *window, GParamSpec *pspec, EphyEncodingDialog *dialog)
{
@@ -367,6 +394,13 @@ ephy_encoding_dialog_finalize (GObject *object)
dialog);
}
+ if (dialog->priv->embed)
+ {
+ g_signal_handlers_disconnect_by_func (dialog->priv->embed,
+ G_CALLBACK (embed_net_stop_cb),
+ dialog);
+ }
+
g_object_unref (dialog->priv->filter);
G_OBJECT_CLASS (parent_class)->finalize (object);