[Goodies-commits] r3495 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Fri Nov 2 23:11:27 CET 2007
Author: stephan
Date: 2007-11-02 22:11:27 +0000 (Fri, 02 Nov 2007)
New Revision: 3495
Modified:
ristretto/trunk/src/main_window.c
ristretto/trunk/src/navigator.c
Log:
Fix segfault
add preload to preferences dialog
Modified: ristretto/trunk/src/main_window.c
===================================================================
--- ristretto/trunk/src/main_window.c 2007-11-02 18:06:34 UTC (rev 3494)
+++ ristretto/trunk/src/main_window.c 2007-11-02 22:11:27 UTC (rev 3495)
@@ -1018,19 +1018,31 @@
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), main_vbox, main_lbl);
GtkWidget *slideshow_frame = gtk_frame_new(N_("Slideshow:"));
+ GtkWidget *preload_frame = gtk_frame_new(N_("Preload:"));
GtkWidget *slideshow_vbox = gtk_vbox_new(FALSE, 0);
GtkWidget *slideshow_lbl = gtk_label_new(NULL);
GtkWidget *slideshow_hscale = gtk_hscale_new_with_range(1, 60, 1);
+
+ GtkWidget *preload_vbox = gtk_vbox_new(FALSE, 0);
+ GtkWidget *preload_lbl = gtk_label_new(NULL);
+ GtkWidget *preload_check = gtk_check_button_new_with_mnemonic(N_("_Preload images"));
gtk_range_set_value(GTK_RANGE(slideshow_hscale), window->priv->settings.slideshow_timeout / 1000);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(preload_check), window->priv->navigator->preload);
+
gtk_box_pack_start(GTK_BOX(slideshow_vbox), slideshow_lbl, FALSE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(slideshow_vbox), slideshow_hscale, FALSE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(preload_vbox), preload_lbl, FALSE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(preload_vbox), preload_check, FALSE, TRUE, 0);
+
gtk_container_add(GTK_CONTAINER(slideshow_frame), slideshow_vbox);
+ gtk_container_add(GTK_CONTAINER(preload_frame), preload_vbox);
gtk_box_pack_start(GTK_BOX(main_vbox), slideshow_frame, FALSE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(main_vbox), preload_frame, FALSE, TRUE, 0);
gtk_widget_show_all(notebook);
@@ -1040,6 +1052,7 @@
{
case GTK_RESPONSE_OK:
rstto_main_window_set_slideshow_timeout(window, gtk_range_get_value(GTK_RANGE(slideshow_hscale)) * 1000);
+ window->priv->navigator->preload = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(preload_check));
default:
break;
}
Modified: ristretto/trunk/src/navigator.c
===================================================================
--- ristretto/trunk/src/navigator.c 2007-11-02 18:06:34 UTC (rev 3494)
+++ ristretto/trunk/src/navigator.c 2007-11-02 22:11:27 UTC (rev 3495)
@@ -131,7 +131,7 @@
navigator->old_position = -1;
navigator->timeout = 5000;
navigator->monitor = thunar_vfs_monitor_get_default();
- navigator->max_history = 1;
+ navigator->max_history = 0;
navigator->preload = FALSE;
navigator->factory = thunar_vfs_thumb_factory_new(THUNAR_VFS_THUMB_SIZE_NORMAL);
@@ -411,9 +411,17 @@
navigator->id = g_timeout_add(navigator->timeout, (GSourceFunc)cb_rstto_navigator_running, navigator);
if (navigator->preload)
{
- RsttoNavigatorEntry *next_entry = g_list_next(navigator->file_iter)->data;
-
- rstto_navigator_entry_load_image(next_entry, FALSE);
+ GList *next = g_list_next(navigator->file_iter);
+ if (next == NULL)
+ {
+ next = navigator->file_list;
+ }
+ if (next != NULL)
+ {
+ RsttoNavigatorEntry *next_entry = next->data;
+
+ rstto_navigator_entry_load_image(next_entry, FALSE);
+ }
}
}
}
@@ -586,9 +594,17 @@
if (navigator->preload)
{
- RsttoNavigatorEntry *next_entry = g_list_next(navigator->file_iter)->data;
-
- rstto_navigator_entry_load_image(next_entry, FALSE);
+ GList *next = g_list_next(navigator->file_iter);
+ if (next == NULL)
+ {
+ next = navigator->file_list;
+ }
+ if (next != NULL)
+ {
+ RsttoNavigatorEntry *next_entry = next->data;
+
+ rstto_navigator_entry_load_image(next_entry, FALSE);
+ }
}
}
else
More information about the Goodies-commits
mailing list