Wait for our child to exit before quitting. The prevents us from pulling
Fri Mar 12 10:53:10 1999 Owen Taylor <otaylor@redhat.com> * capplets/theme-switcher/main.c (main): Wait for our child to exit before quitting. The prevents us from pulling the socket window out from under our child. * capplets/theme-switcher/demo.c (demo_main): Clean up some warnings about types in formats. * capplets/theme-switcher/demo.c (demo_main): Exit cleanly if read from parent fails - don't drop a core.
This commit is contained in:
parent
4d6e8150b5
commit
af81c4017f
8 changed files with 116 additions and 63 deletions
14
ChangeLog
14
ChangeLog
|
@ -1,3 +1,17 @@
|
||||||
|
Fri Mar 12 10:53:10 1999 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* capplets/theme-switcher/main.c (main): Wait for
|
||||||
|
our child to exit before quitting. The prevents
|
||||||
|
us from pulling the socket window out from under
|
||||||
|
our child.
|
||||||
|
|
||||||
|
* capplets/theme-switcher/demo.c (demo_main): Clean
|
||||||
|
up some warnings about types in formats.
|
||||||
|
|
||||||
|
* capplets/theme-switcher/demo.c (demo_main): Exit
|
||||||
|
cleanly if read from parent fails - don't drop
|
||||||
|
a core.
|
||||||
|
|
||||||
Fri Mar 12 02:21:55 1999 Owen Taylor <otaylor@redhat.com>
|
Fri Mar 12 02:21:55 1999 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* capplets/theme-switcher/gui.c (browse_dialog_close):
|
* capplets/theme-switcher/gui.c (browse_dialog_close):
|
||||||
|
|
|
@ -59,24 +59,10 @@ list_user_themes(gint *number);
|
||||||
GtkWidget *
|
GtkWidget *
|
||||||
make_main(void);
|
make_main(void);
|
||||||
void
|
void
|
||||||
click_entry(GtkWidget *widget, gpointer data);
|
|
||||||
void
|
|
||||||
delete_entry(GtkWidget *widget, gpointer data);
|
|
||||||
void
|
|
||||||
update_theme_entries(GtkWidget *disp_list);
|
update_theme_entries(GtkWidget *disp_list);
|
||||||
void
|
void
|
||||||
signal_apply_theme(GtkWidget *widget);
|
signal_apply_theme(GtkWidget *widget);
|
||||||
void
|
void
|
||||||
click_preview(GtkWidget *widget, gpointer data);
|
|
||||||
void
|
|
||||||
click_try(GtkWidget *widget, gpointer data);
|
|
||||||
void
|
|
||||||
click_help(GtkWidget *widget, gpointer data);
|
|
||||||
void
|
|
||||||
click_ok(GtkWidget *widget, gpointer data);
|
|
||||||
void
|
|
||||||
click_revert(GtkWidget *widget, gpointer data);
|
|
||||||
void
|
|
||||||
edit_file_to_use(gchar *file, gchar *theme);
|
edit_file_to_use(gchar *file, gchar *theme);
|
||||||
void
|
void
|
||||||
set_tmp_rc(void);
|
set_tmp_rc(void);
|
||||||
|
@ -88,7 +74,7 @@ void
|
||||||
click_update(GtkWidget *widget, gpointer data);
|
click_update(GtkWidget *widget, gpointer data);
|
||||||
gchar *
|
gchar *
|
||||||
install_theme(gchar *file);
|
install_theme(gchar *file);
|
||||||
void
|
gint
|
||||||
do_demo(int argc, char **argv);
|
do_demo(int argc, char **argv);
|
||||||
void
|
void
|
||||||
send_socket(void);
|
send_socket(void);
|
||||||
|
|
|
@ -59,24 +59,10 @@ list_user_themes(gint *number);
|
||||||
GtkWidget *
|
GtkWidget *
|
||||||
make_main(void);
|
make_main(void);
|
||||||
void
|
void
|
||||||
click_entry(GtkWidget *widget, gpointer data);
|
|
||||||
void
|
|
||||||
delete_entry(GtkWidget *widget, gpointer data);
|
|
||||||
void
|
|
||||||
update_theme_entries(GtkWidget *disp_list);
|
update_theme_entries(GtkWidget *disp_list);
|
||||||
void
|
void
|
||||||
signal_apply_theme(GtkWidget *widget);
|
signal_apply_theme(GtkWidget *widget);
|
||||||
void
|
void
|
||||||
click_preview(GtkWidget *widget, gpointer data);
|
|
||||||
void
|
|
||||||
click_try(GtkWidget *widget, gpointer data);
|
|
||||||
void
|
|
||||||
click_help(GtkWidget *widget, gpointer data);
|
|
||||||
void
|
|
||||||
click_ok(GtkWidget *widget, gpointer data);
|
|
||||||
void
|
|
||||||
click_revert(GtkWidget *widget, gpointer data);
|
|
||||||
void
|
|
||||||
edit_file_to_use(gchar *file, gchar *theme);
|
edit_file_to_use(gchar *file, gchar *theme);
|
||||||
void
|
void
|
||||||
set_tmp_rc(void);
|
set_tmp_rc(void);
|
||||||
|
@ -88,7 +74,7 @@ void
|
||||||
click_update(GtkWidget *widget, gpointer data);
|
click_update(GtkWidget *widget, gpointer data);
|
||||||
gchar *
|
gchar *
|
||||||
install_theme(gchar *file);
|
install_theme(gchar *file);
|
||||||
void
|
gint
|
||||||
do_demo(int argc, char **argv);
|
do_demo(int argc, char **argv);
|
||||||
void
|
void
|
||||||
send_socket(void);
|
send_socket(void);
|
||||||
|
|
|
@ -8,8 +8,8 @@ send_socket()
|
||||||
{
|
{
|
||||||
gchar buffer[256];
|
gchar buffer[256];
|
||||||
|
|
||||||
g_snprintf(buffer, sizeof(buffer), "%11x ",
|
g_snprintf(buffer, sizeof(buffer), "%11lx ",
|
||||||
GDK_WINDOW_XWINDOW (preview_socket->window));
|
(gulong)GDK_WINDOW_XWINDOW (preview_socket->window));
|
||||||
write(prog_fd, buffer, strlen(buffer));
|
write(prog_fd, buffer, strlen(buffer));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ static void
|
||||||
demo_main(int argc, char **argv, gint in_fd)
|
demo_main(int argc, char **argv, gint in_fd)
|
||||||
{
|
{
|
||||||
gchar buf[256];
|
gchar buf[256];
|
||||||
XID window;
|
Window window;
|
||||||
GtkWidget *widget, *table, *hbox;
|
GtkWidget *widget, *table, *hbox;
|
||||||
GtkWidget *scrolled_window;
|
GtkWidget *scrolled_window;
|
||||||
GSList *group;
|
GSList *group;
|
||||||
|
@ -58,11 +58,11 @@ demo_main(int argc, char **argv, gint in_fd)
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
if (read(in_fd, buf, 12) <= 0)
|
if (read(in_fd, buf, 12) <= 0)
|
||||||
g_error ("Error reading socket descriptor from parent: %s",
|
/* Assume this means that our parent exited or was killed */
|
||||||
g_strerror (errno));
|
exit(0);
|
||||||
|
|
||||||
buf[12] = 0;
|
buf[12] = 0;
|
||||||
sscanf(buf, "%x", &window);
|
window = strtol (buf, NULL, 16);
|
||||||
|
|
||||||
fcntl(0, F_SETFL, O_NONBLOCK);
|
fcntl(0, F_SETFL, O_NONBLOCK);
|
||||||
|
|
||||||
|
@ -161,7 +161,7 @@ demo_main(int argc, char **argv, gint in_fd)
|
||||||
gtk_main ();
|
gtk_main ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
gint
|
||||||
do_demo(int argc, char **argv)
|
do_demo(int argc, char **argv)
|
||||||
{
|
{
|
||||||
gint toProg[2];
|
gint toProg[2];
|
||||||
|
@ -173,15 +173,17 @@ do_demo(int argc, char **argv)
|
||||||
{
|
{
|
||||||
close(toProg[1]);
|
close(toProg[1]);
|
||||||
demo_main(argc, argv, toProg[0]);
|
demo_main(argc, argv, toProg[0]);
|
||||||
|
exit(0);
|
||||||
}
|
}
|
||||||
else if (pid > 0)
|
else if (pid > 0)
|
||||||
{
|
{
|
||||||
close(toProg[0]);
|
close(toProg[0]);
|
||||||
prog_fd = toProg[1];
|
prog_fd = toProg[1];
|
||||||
|
return pid;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* baaaaaaaah eeeeek */
|
/* baaaaaaaah eeeeek */
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,8 +8,8 @@ send_socket()
|
||||||
{
|
{
|
||||||
gchar buffer[256];
|
gchar buffer[256];
|
||||||
|
|
||||||
g_snprintf(buffer, sizeof(buffer), "%11x ",
|
g_snprintf(buffer, sizeof(buffer), "%11lx ",
|
||||||
GDK_WINDOW_XWINDOW (preview_socket->window));
|
(gulong)GDK_WINDOW_XWINDOW (preview_socket->window));
|
||||||
write(prog_fd, buffer, strlen(buffer));
|
write(prog_fd, buffer, strlen(buffer));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ static void
|
||||||
demo_main(int argc, char **argv, gint in_fd)
|
demo_main(int argc, char **argv, gint in_fd)
|
||||||
{
|
{
|
||||||
gchar buf[256];
|
gchar buf[256];
|
||||||
XID window;
|
Window window;
|
||||||
GtkWidget *widget, *table, *hbox;
|
GtkWidget *widget, *table, *hbox;
|
||||||
GtkWidget *scrolled_window;
|
GtkWidget *scrolled_window;
|
||||||
GSList *group;
|
GSList *group;
|
||||||
|
@ -58,11 +58,11 @@ demo_main(int argc, char **argv, gint in_fd)
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
if (read(in_fd, buf, 12) <= 0)
|
if (read(in_fd, buf, 12) <= 0)
|
||||||
g_error ("Error reading socket descriptor from parent: %s",
|
/* Assume this means that our parent exited or was killed */
|
||||||
g_strerror (errno));
|
exit(0);
|
||||||
|
|
||||||
buf[12] = 0;
|
buf[12] = 0;
|
||||||
sscanf(buf, "%x", &window);
|
window = strtol (buf, NULL, 16);
|
||||||
|
|
||||||
fcntl(0, F_SETFL, O_NONBLOCK);
|
fcntl(0, F_SETFL, O_NONBLOCK);
|
||||||
|
|
||||||
|
@ -161,7 +161,7 @@ demo_main(int argc, char **argv, gint in_fd)
|
||||||
gtk_main ();
|
gtk_main ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
gint
|
||||||
do_demo(int argc, char **argv)
|
do_demo(int argc, char **argv)
|
||||||
{
|
{
|
||||||
gint toProg[2];
|
gint toProg[2];
|
||||||
|
@ -173,15 +173,17 @@ do_demo(int argc, char **argv)
|
||||||
{
|
{
|
||||||
close(toProg[1]);
|
close(toProg[1]);
|
||||||
demo_main(argc, argv, toProg[0]);
|
demo_main(argc, argv, toProg[0]);
|
||||||
|
exit(0);
|
||||||
}
|
}
|
||||||
else if (pid > 0)
|
else if (pid > 0)
|
||||||
{
|
{
|
||||||
close(toProg[0]);
|
close(toProg[0]);
|
||||||
prog_fd = toProg[1];
|
prog_fd = toProg[1];
|
||||||
|
return pid;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* baaaaaaaah eeeeek */
|
/* baaaaaaaah eeeeek */
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,21 @@ static GtkWidget *current_global_theme = NULL;
|
||||||
static GtkWidget *initial_theme = NULL;
|
static GtkWidget *initial_theme = NULL;
|
||||||
static GtkWidget *last_theme = NULL;
|
static GtkWidget *last_theme = NULL;
|
||||||
|
|
||||||
|
static void
|
||||||
|
click_preview(GtkWidget *widget, gpointer data);
|
||||||
|
static void
|
||||||
|
click_try(GtkWidget *widget, gpointer data);
|
||||||
|
static void
|
||||||
|
click_help(GtkWidget *widget, gpointer data);
|
||||||
|
static void
|
||||||
|
click_ok(GtkWidget *widget, gpointer data);
|
||||||
|
static void
|
||||||
|
click_revert(GtkWidget *widget, gpointer data);
|
||||||
|
static void
|
||||||
|
click_entry(GtkWidget *widget, gpointer data);
|
||||||
|
static void
|
||||||
|
delete_entry(GtkWidget *widget, gpointer data);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
auto_callback (GtkWidget *widget, gpointer data)
|
auto_callback (GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
|
@ -121,6 +136,17 @@ install_theme_callback (GtkWidget *widget, gpointer data)
|
||||||
gtk_widget_show (install_theme_file_sel);
|
gtk_widget_show (install_theme_file_sel);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gint
|
||||||
|
delete_capplet (GtkWidget *widget, GdkEvent *event, gpointer data)
|
||||||
|
{
|
||||||
|
/* We don't want the toplevel window destroyed until
|
||||||
|
* our child exits.
|
||||||
|
*/
|
||||||
|
close(prog_fd);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
GtkWidget *
|
GtkWidget *
|
||||||
make_main(void)
|
make_main(void)
|
||||||
{
|
{
|
||||||
|
@ -211,6 +237,8 @@ make_main(void)
|
||||||
GTK_SIGNAL_FUNC (click_revert), NULL);
|
GTK_SIGNAL_FUNC (click_revert), NULL);
|
||||||
gtk_signal_connect (GTK_OBJECT (capplet_widget), "cancel",
|
gtk_signal_connect (GTK_OBJECT (capplet_widget), "cancel",
|
||||||
GTK_SIGNAL_FUNC (click_revert), NULL);
|
GTK_SIGNAL_FUNC (click_revert), NULL);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (capplet_widget), "delete_event",
|
||||||
|
GTK_SIGNAL_FUNC (delete_capplet), NULL);
|
||||||
gtk_container_add (GTK_CONTAINER (capplet_widget), box);
|
gtk_container_add (GTK_CONTAINER (capplet_widget), box);
|
||||||
|
|
||||||
readme_current = NULL;
|
readme_current = NULL;
|
||||||
|
@ -220,13 +248,13 @@ make_main(void)
|
||||||
return capplet_widget;
|
return capplet_widget;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
click_update(GtkWidget *widget, gpointer data)
|
click_update(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
update_theme_entries(theme_list);
|
update_theme_entries(theme_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
click_preview(GtkWidget *widget, gpointer data)
|
click_preview(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc;
|
gchar *rc;
|
||||||
|
@ -241,7 +269,7 @@ click_preview(GtkWidget *widget, gpointer data)
|
||||||
send_reread();
|
send_reread();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
click_help(GtkWidget *widget, gpointer data)
|
click_help(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *tmp;
|
gchar *tmp;
|
||||||
|
@ -253,7 +281,7 @@ click_help(GtkWidget *widget, gpointer data)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
void
|
static void
|
||||||
click_try(GtkWidget *widget, gpointer data)
|
click_try(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc;
|
gchar *rc;
|
||||||
|
@ -280,7 +308,7 @@ click_try(GtkWidget *widget, gpointer data)
|
||||||
/* system(cmd); */
|
/* system(cmd); */
|
||||||
gdk_error_warnings = 1;
|
gdk_error_warnings = 1;
|
||||||
}
|
}
|
||||||
void
|
static void
|
||||||
click_ok(GtkWidget *widget, gpointer data)
|
click_ok(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
click_try (widget, data);
|
click_try (widget, data);
|
||||||
|
@ -288,7 +316,7 @@ click_ok(GtkWidget *widget, gpointer data)
|
||||||
gnome_config_set_string ("/theme-switcher-capplet/settings/theme", gtk_object_get_data (GTK_OBJECT (current_theme), "name"));
|
gnome_config_set_string ("/theme-switcher-capplet/settings/theme", gtk_object_get_data (GTK_OBJECT (current_theme), "name"));
|
||||||
gnome_config_sync ();
|
gnome_config_sync ();
|
||||||
}
|
}
|
||||||
void
|
static void
|
||||||
click_revert(GtkWidget *widget, gpointer data)
|
click_revert(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc;
|
gchar *rc;
|
||||||
|
@ -317,7 +345,7 @@ click_revert(GtkWidget *widget, gpointer data)
|
||||||
gdk_error_warnings = 1;
|
gdk_error_warnings = 1;
|
||||||
gtk_list_select_child (GTK_LIST (theme_list), initial_theme);
|
gtk_list_select_child (GTK_LIST (theme_list), initial_theme);
|
||||||
}
|
}
|
||||||
void
|
static void
|
||||||
click_entry(GtkWidget *widget, gpointer data)
|
click_entry(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc, *name, *readme, *new_readme, buf[1024];
|
gchar *rc, *name, *readme, *new_readme, buf[1024];
|
||||||
|
@ -365,7 +393,7 @@ click_entry(GtkWidget *widget, gpointer data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
delete_entry(GtkWidget *widget, gpointer data)
|
delete_entry(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc, *name, *readme, *icon, *dir;
|
gchar *rc, *name, *readme, *icon, *dir;
|
||||||
|
|
|
@ -18,6 +18,21 @@ static GtkWidget *current_global_theme = NULL;
|
||||||
static GtkWidget *initial_theme = NULL;
|
static GtkWidget *initial_theme = NULL;
|
||||||
static GtkWidget *last_theme = NULL;
|
static GtkWidget *last_theme = NULL;
|
||||||
|
|
||||||
|
static void
|
||||||
|
click_preview(GtkWidget *widget, gpointer data);
|
||||||
|
static void
|
||||||
|
click_try(GtkWidget *widget, gpointer data);
|
||||||
|
static void
|
||||||
|
click_help(GtkWidget *widget, gpointer data);
|
||||||
|
static void
|
||||||
|
click_ok(GtkWidget *widget, gpointer data);
|
||||||
|
static void
|
||||||
|
click_revert(GtkWidget *widget, gpointer data);
|
||||||
|
static void
|
||||||
|
click_entry(GtkWidget *widget, gpointer data);
|
||||||
|
static void
|
||||||
|
delete_entry(GtkWidget *widget, gpointer data);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
auto_callback (GtkWidget *widget, gpointer data)
|
auto_callback (GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
|
@ -121,6 +136,17 @@ install_theme_callback (GtkWidget *widget, gpointer data)
|
||||||
gtk_widget_show (install_theme_file_sel);
|
gtk_widget_show (install_theme_file_sel);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gint
|
||||||
|
delete_capplet (GtkWidget *widget, GdkEvent *event, gpointer data)
|
||||||
|
{
|
||||||
|
/* We don't want the toplevel window destroyed until
|
||||||
|
* our child exits.
|
||||||
|
*/
|
||||||
|
close(prog_fd);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
GtkWidget *
|
GtkWidget *
|
||||||
make_main(void)
|
make_main(void)
|
||||||
{
|
{
|
||||||
|
@ -211,6 +237,8 @@ make_main(void)
|
||||||
GTK_SIGNAL_FUNC (click_revert), NULL);
|
GTK_SIGNAL_FUNC (click_revert), NULL);
|
||||||
gtk_signal_connect (GTK_OBJECT (capplet_widget), "cancel",
|
gtk_signal_connect (GTK_OBJECT (capplet_widget), "cancel",
|
||||||
GTK_SIGNAL_FUNC (click_revert), NULL);
|
GTK_SIGNAL_FUNC (click_revert), NULL);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (capplet_widget), "delete_event",
|
||||||
|
GTK_SIGNAL_FUNC (delete_capplet), NULL);
|
||||||
gtk_container_add (GTK_CONTAINER (capplet_widget), box);
|
gtk_container_add (GTK_CONTAINER (capplet_widget), box);
|
||||||
|
|
||||||
readme_current = NULL;
|
readme_current = NULL;
|
||||||
|
@ -220,13 +248,13 @@ make_main(void)
|
||||||
return capplet_widget;
|
return capplet_widget;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
click_update(GtkWidget *widget, gpointer data)
|
click_update(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
update_theme_entries(theme_list);
|
update_theme_entries(theme_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
click_preview(GtkWidget *widget, gpointer data)
|
click_preview(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc;
|
gchar *rc;
|
||||||
|
@ -241,7 +269,7 @@ click_preview(GtkWidget *widget, gpointer data)
|
||||||
send_reread();
|
send_reread();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
click_help(GtkWidget *widget, gpointer data)
|
click_help(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *tmp;
|
gchar *tmp;
|
||||||
|
@ -253,7 +281,7 @@ click_help(GtkWidget *widget, gpointer data)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
void
|
static void
|
||||||
click_try(GtkWidget *widget, gpointer data)
|
click_try(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc;
|
gchar *rc;
|
||||||
|
@ -280,7 +308,7 @@ click_try(GtkWidget *widget, gpointer data)
|
||||||
/* system(cmd); */
|
/* system(cmd); */
|
||||||
gdk_error_warnings = 1;
|
gdk_error_warnings = 1;
|
||||||
}
|
}
|
||||||
void
|
static void
|
||||||
click_ok(GtkWidget *widget, gpointer data)
|
click_ok(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
click_try (widget, data);
|
click_try (widget, data);
|
||||||
|
@ -288,7 +316,7 @@ click_ok(GtkWidget *widget, gpointer data)
|
||||||
gnome_config_set_string ("/theme-switcher-capplet/settings/theme", gtk_object_get_data (GTK_OBJECT (current_theme), "name"));
|
gnome_config_set_string ("/theme-switcher-capplet/settings/theme", gtk_object_get_data (GTK_OBJECT (current_theme), "name"));
|
||||||
gnome_config_sync ();
|
gnome_config_sync ();
|
||||||
}
|
}
|
||||||
void
|
static void
|
||||||
click_revert(GtkWidget *widget, gpointer data)
|
click_revert(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc;
|
gchar *rc;
|
||||||
|
@ -317,7 +345,7 @@ click_revert(GtkWidget *widget, gpointer data)
|
||||||
gdk_error_warnings = 1;
|
gdk_error_warnings = 1;
|
||||||
gtk_list_select_child (GTK_LIST (theme_list), initial_theme);
|
gtk_list_select_child (GTK_LIST (theme_list), initial_theme);
|
||||||
}
|
}
|
||||||
void
|
static void
|
||||||
click_entry(GtkWidget *widget, gpointer data)
|
click_entry(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc, *name, *readme, *new_readme, buf[1024];
|
gchar *rc, *name, *readme, *new_readme, buf[1024];
|
||||||
|
@ -365,7 +393,7 @@ click_entry(GtkWidget *widget, gpointer data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
delete_entry(GtkWidget *widget, gpointer data)
|
delete_entry(GtkWidget *widget, gpointer data)
|
||||||
{
|
{
|
||||||
gchar *rc, *name, *readme, *icon, *dir;
|
gchar *rc, *name, *readme, *icon, *dir;
|
||||||
|
|
|
@ -8,12 +8,13 @@ int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
GtkWidget *w;
|
GtkWidget *w;
|
||||||
|
gint child_pid;
|
||||||
|
|
||||||
bindtextdomain (PACKAGE, GNOMELOCALEDIR);
|
bindtextdomain (PACKAGE, GNOMELOCALEDIR);
|
||||||
textdomain (PACKAGE);
|
textdomain (PACKAGE);
|
||||||
|
|
||||||
set_tmp_rc();
|
set_tmp_rc();
|
||||||
do_demo(argc, argv);
|
child_pid = do_demo(argc, argv);
|
||||||
switch (gnome_capplet_init ("theme-switcher-capplet",
|
switch (gnome_capplet_init ("theme-switcher-capplet",
|
||||||
THEME_SWITCHER_VERSION, argc, argv, NULL, 0, NULL)) {
|
THEME_SWITCHER_VERSION, argc, argv, NULL, 0, NULL)) {
|
||||||
case -1:
|
case -1:
|
||||||
|
@ -26,5 +27,11 @@ main(int argc, char **argv)
|
||||||
send_socket();
|
send_socket();
|
||||||
|
|
||||||
gtk_main();
|
gtk_main();
|
||||||
|
/* Pause here until our child exits and the socket can be safely
|
||||||
|
* destroyed
|
||||||
|
*/
|
||||||
|
if (child_pid > 0)
|
||||||
|
waitpid(child_pid, NULL, 0);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue