New function, copied from gtkpathbar.c.

2004-03-11  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (remove_settings_signal): New
	function, copied from gtkpathbar.c.
	(gtk_file_chooser_default_dispose): Use remove_settings_signal()
	rather than our own code.
	(gtk_file_chooser_default_screen_changed): Use
	remove_settings_signal(); this should handle per-screen settings
	correctly.
This commit is contained in:
Federico Mena Quintero 2004-03-11 20:03:38 +00:00 committed by Federico Mena Quintero
parent 796d15ef8b
commit df0510a89f
6 changed files with 67 additions and 8 deletions

View File

@ -1,3 +1,13 @@
2004-03-11 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (remove_settings_signal): New
function, copied from gtkpathbar.c.
(gtk_file_chooser_default_dispose): Use remove_settings_signal()
rather than our own code.
(gtk_file_chooser_default_screen_changed): Use
remove_settings_signal(); this should handle per-screen settings
correctly.
Thu Mar 11 14:07:18 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_focus): Fix a missing return

View File

@ -1,3 +1,13 @@
2004-03-11 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (remove_settings_signal): New
function, copied from gtkpathbar.c.
(gtk_file_chooser_default_dispose): Use remove_settings_signal()
rather than our own code.
(gtk_file_chooser_default_screen_changed): Use
remove_settings_signal(); this should handle per-screen settings
correctly.
Thu Mar 11 14:07:18 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_focus): Fix a missing return

View File

@ -1,3 +1,13 @@
2004-03-11 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (remove_settings_signal): New
function, copied from gtkpathbar.c.
(gtk_file_chooser_default_dispose): Use remove_settings_signal()
rather than our own code.
(gtk_file_chooser_default_screen_changed): Use
remove_settings_signal(); this should handle per-screen settings
correctly.
Thu Mar 11 14:07:18 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_focus): Fix a missing return

View File

@ -1,3 +1,13 @@
2004-03-11 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (remove_settings_signal): New
function, copied from gtkpathbar.c.
(gtk_file_chooser_default_dispose): Use remove_settings_signal()
rather than our own code.
(gtk_file_chooser_default_screen_changed): Use
remove_settings_signal(); this should handle per-screen settings
correctly.
Thu Mar 11 14:07:18 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_focus): Fix a missing return

View File

@ -1,3 +1,13 @@
2004-03-11 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (remove_settings_signal): New
function, copied from gtkpathbar.c.
(gtk_file_chooser_default_dispose): Use remove_settings_signal()
rather than our own code.
(gtk_file_chooser_default_screen_changed): Use
remove_settings_signal(); this should handle per-screen settings
correctly.
Thu Mar 11 14:07:18 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_focus): Fix a missing return

View File

@ -3205,6 +3205,21 @@ gtk_file_chooser_default_get_property (GObject *object,
}
}
/* Removes the settings signal handler. It's safe to call multiple times */
static void
remove_settings_signal (GtkFileChooserDefault *impl,
GdkScreen *screen)
{
if (impl->settings_signal_id)
{
GtkSettings *settings;
settings = gtk_settings_get_for_screen (screen);
g_signal_handler_disconnect (settings,
impl->settings_signal_id);
impl->settings_signal_id = 0;
}
}
static void
gtk_file_chooser_default_dispose (GObject *object)
@ -3217,14 +3232,7 @@ gtk_file_chooser_default_dispose (GObject *object)
impl->extra_widget = NULL;
}
if (impl->settings_signal_id)
{
GtkSettings *settings;
settings = gtk_settings_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (impl)));
g_signal_handler_disconnect (settings, impl->settings_signal_id);
impl->settings_signal_id = 0;
}
remove_settings_signal (impl, gtk_widget_get_screen (GTK_WIDGET (impl)));
G_OBJECT_CLASS (parent_class)->dispose (object);
}
@ -3322,6 +3330,7 @@ gtk_file_chooser_default_screen_changed (GtkWidget *widget,
if (GTK_WIDGET_CLASS (parent_class)->screen_changed)
GTK_WIDGET_CLASS (parent_class)->screen_changed (widget, previous_screen);
remove_settings_signal (impl, previous_screen);
check_icon_theme (impl);
g_signal_emit_by_name (widget, "default-size-changed");