[Goodies-commits] r2965 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Tue Aug 7 18:58:12 CEST 2007
Author: stephan
Date: 2007-08-07 16:58:11 +0000 (Tue, 07 Aug 2007)
New Revision: 2965
Modified:
ristretto/trunk/src/main.c
ristretto/trunk/src/navigator.c
ristretto/trunk/src/navigator.h
ristretto/trunk/src/thumbnail_viewer.c
Log:
fix rendering issue samuel reported (quick-fix)
Modified: ristretto/trunk/src/main.c
===================================================================
--- ristretto/trunk/src/main.c 2007-08-07 16:28:18 UTC (rev 2964)
+++ ristretto/trunk/src/main.c 2007-08-07 16:58:11 UTC (rev 2965)
@@ -38,6 +38,8 @@
static void
cb_rstto_fullscreen(GtkWidget *, GdkEventWindowState *event, RsttoPictureViewer *viewer);
+static void
+cb_rstto_toggle_play(GtkToolItem *item, RsttoNavigator *navigator);
static void
cb_rstto_previous(GtkToolItem *item, RsttoNavigator *);
@@ -133,10 +135,12 @@
gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_edit), menu_edit);
GtkWidget *menu_item_view = gtk_menu_item_new_with_mnemonic(_("_View"));
+ GtkWidget *menu_item_play = gtk_image_menu_item_new_from_stock(GTK_STOCK_MEDIA_PLAY, NULL);
GtkWidget *menu_item_view_fs = gtk_image_menu_item_new_from_stock(GTK_STOCK_FULLSCREEN, NULL);
GtkWidget *menu_view = gtk_menu_new();
gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_view), menu_view);
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu_view), menu_item_play);
gtk_menu_shell_append(GTK_MENU_SHELL(menu_view), menu_item_view_fs);
GtkWidget *menu_item_help = gtk_menu_item_new_with_mnemonic(_("_Help"));
@@ -209,6 +213,7 @@
g_signal_connect(G_OBJECT(menu_item_open_dir), "activate", G_CALLBACK(cb_rstto_open_dir), navigator);
g_signal_connect(G_OBJECT(menu_item_help_about), "activate", G_CALLBACK(cb_rstto_help_about), window);
+ g_signal_connect(G_OBJECT(menu_item_play), "activate", G_CALLBACK(cb_rstto_toggle_play), navigator);
g_signal_connect(G_OBJECT(menu_item_view_fs), "activate", G_CALLBACK(cb_rstto_toggle_fullscreen), window);
g_signal_connect(G_OBJECT(window), "window-state-event", G_CALLBACK(cb_rstto_fullscreen), viewer);
@@ -393,6 +398,12 @@
}
static void
+cb_rstto_toggle_play(GtkToolItem *item, RsttoNavigator *navigator)
+{
+ rstto_navigator_set_running(navigator, TRUE);
+}
+
+static void
cb_rstto_toggle_fullscreen(GtkToolItem *item, GtkWindow *window)
{
if(window_fullscreen)
Modified: ristretto/trunk/src/navigator.c
===================================================================
--- ristretto/trunk/src/navigator.c 2007-08-07 16:28:18 UTC (rev 2964)
+++ ristretto/trunk/src/navigator.c 2007-08-07 16:58:11 UTC (rev 2965)
@@ -31,6 +31,9 @@
static void
rstto_navigator_dispose(GObject *object);
+static gboolean
+cb_rstto_navigator_running(RsttoNavigator *navigator);
+
static GObjectClass *parent_class = NULL;
enum
@@ -286,6 +289,21 @@
}
}
+void
+rstto_navigator_set_running (RsttoNavigator *navigator, gboolean running)
+{
+ if(!navigator->running)
+ {
+ navigator->running = running;
+ if(!navigator->id)
+ navigator->id = g_timeout_add(5000, (GSourceFunc)cb_rstto_navigator_running, navigator);
+ }
+ else
+ {
+ navigator->running = running;
+ }
+}
+
RsttoNavigatorEntry *
rstto_navigator_get_file (RsttoNavigator *navigator)
{
@@ -307,6 +325,30 @@
return g_list_nth_data(navigator->file_list, n);
}
+void
+rstto_navigator_set_file (RsttoNavigator *navigator, gint n)
+{
+ navigator->file_iter = g_list_nth(navigator->file_list, n);
+ if(navigator->file_iter)
+ {
+ ThunarVfsInfo *info = rstto_navigator_entry_get_info(((RsttoNavigatorEntry *)navigator->file_iter->data));
+ gchar *filename = thunar_vfs_path_dup_string(info->path);
+ GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(filename , NULL);
+ if(!pixbuf)
+ {
+ pixbuf = gtk_icon_theme_load_icon(navigator->icon_theme, GTK_STOCK_MISSING_IMAGE, 48, 0, NULL);
+ rstto_picture_viewer_set_scale(navigator->viewer, 1);
+ }
+
+ rstto_picture_viewer_set_pixbuf(navigator->viewer, pixbuf);
+ if(pixbuf)
+ gdk_pixbuf_unref(pixbuf);
+
+ g_free(filename);
+ g_signal_emit(G_OBJECT(navigator), rstto_navigator_signals[RSTTO_NAVIGATOR_SIGNAL_FILE_CHANGED], 0, NULL);
+ }
+}
+
RsttoNavigatorEntry *
_rstto_navigator_entry_new (ThunarVfsInfo *info)
{
@@ -345,26 +387,14 @@
g_free(nav_entry);
}
-void
-rstto_navigator_set_file (RsttoNavigator *navigator, gint n)
+static gboolean
+cb_rstto_navigator_running(RsttoNavigator *navigator)
{
- navigator->file_iter = g_list_nth(navigator->file_list, n);
- if(navigator->file_iter)
+ if(navigator->running)
{
- ThunarVfsInfo *info = rstto_navigator_entry_get_info(((RsttoNavigatorEntry *)navigator->file_iter->data));
- gchar *filename = thunar_vfs_path_dup_string(info->path);
- GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(filename , NULL);
- if(!pixbuf)
- {
- pixbuf = gtk_icon_theme_load_icon(navigator->icon_theme, GTK_STOCK_MISSING_IMAGE, 48, 0, NULL);
- rstto_picture_viewer_set_scale(navigator->viewer, 1);
- }
-
- rstto_picture_viewer_set_pixbuf(navigator->viewer, pixbuf);
- if(pixbuf)
- gdk_pixbuf_unref(pixbuf);
-
- g_free(filename);
- g_signal_emit(G_OBJECT(navigator), rstto_navigator_signals[RSTTO_NAVIGATOR_SIGNAL_FILE_CHANGED], 0, NULL);
+ rstto_navigator_forward(navigator);
}
+ else
+ navigator->id = 0;
+ return navigator->running;
}
Modified: ristretto/trunk/src/navigator.h
===================================================================
--- ristretto/trunk/src/navigator.h 2007-08-07 16:28:18 UTC (rev 2964)
+++ ristretto/trunk/src/navigator.h 2007-08-07 16:58:11 UTC (rev 2965)
@@ -51,6 +51,8 @@
ThunarVfsPath *path;
GList *file_list;
GList *file_iter;
+ gboolean running;
+ gint id;
};
typedef struct _RsttoNavigatorClass RsttoNavigatorClass;
@@ -65,10 +67,12 @@
rstto_navigator_new (RsttoPictureViewer *viewer);
void rstto_navigator_set_path (RsttoNavigator *navigator,
- ThunarVfsPath *path,
- gboolean index_path);
+ ThunarVfsPath *path,
+ gboolean index_path);
void rstto_navigator_forward (RsttoNavigator *navigator);
void rstto_navigator_back (RsttoNavigator *navigator);
+void rstto_navigator_set_running (RsttoNavigator *navigator,
+ gboolean running);
RsttoNavigatorEntry *
rstto_navigator_get_file (RsttoNavigator *navigator);
Modified: ristretto/trunk/src/thumbnail_viewer.c
===================================================================
--- ristretto/trunk/src/thumbnail_viewer.c 2007-08-07 16:28:18 UTC (rev 2964)
+++ ristretto/trunk/src/thumbnail_viewer.c 2007-08-07 16:58:11 UTC (rev 2965)
@@ -234,6 +234,8 @@
switch (viewer->priv->orientation)
{
case GTK_ORIENTATION_HORIZONTAL:
+ /* FIXME: use gdk_window_clear_area instead */
+ gdk_window_clear(widget->window);
for(i = 0; i < rstto_navigator_get_n_files(viewer->priv->navigator); ++i)
{
RsttoNavigatorEntry *entry = rstto_navigator_get_nth_file(viewer->priv->navigator, i);
@@ -275,14 +277,6 @@
GDK_RGB_DITHER_NORMAL,
0, 0);
}
- if(widget->allocation.width - (viewer->priv->dimension * (i+1)) - viewer->priv->offset - 16 > 0)
- {
- gdk_window_clear_area(widget->window,
- (viewer->priv->dimension * (i+1)) - viewer->priv->offset,
- 0,
- widget->allocation.width - (viewer->priv->dimension * (i+1)) - viewer->priv->offset - 16,
- viewer->priv->dimension);
- }
gtk_paint_box(widget->style,
widget->window,
@@ -317,6 +311,8 @@
break;
case GTK_ORIENTATION_VERTICAL:
+ /* FIXME: use gdk_window_clear_area instead */
+ gdk_window_clear(widget->window);
for(i = 0; i < rstto_navigator_get_n_files(viewer->priv->navigator); ++i)
{
RsttoNavigatorEntry *entry = rstto_navigator_get_nth_file(viewer->priv->navigator, i);
@@ -356,15 +352,6 @@
0, 0);
}
- if(widget->allocation.height - (viewer->priv->dimension * (i+1)) - viewer->priv->offset - 16 > 0)
- {
- gdk_window_clear_area(widget->window,
- 0,
- (viewer->priv->dimension * (i+1)) - viewer->priv->offset,
- viewer->priv->dimension,
- widget->allocation.height - (viewer->priv->dimension * (i+1)) - viewer->priv->offset - 16);
- }
-
gtk_paint_box(widget->style,
widget->window,
GTK_STATE_NORMAL,
More information about the Goodies-commits
mailing list