summaryrefslogtreecommitdiff
path: root/src/gtkext/gtkextstatusbar.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2010-04-11 16:39:38 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2010-04-11 16:39:38 (GMT)
commit30258fa96ad48eed68924f259ec5464fc4fd8094 (patch)
tree6187f2ddbee31de8bcd1b4b6e930a38f858f922c /src/gtkext/gtkextstatusbar.c
parent929150f18d23d82e8390bd98e31b1edb34bc09f1 (diff)
Provided a faster than GTK display buffer.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@150 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/gtkext/gtkextstatusbar.c')
-rw-r--r--src/gtkext/gtkextstatusbar.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/gtkext/gtkextstatusbar.c b/src/gtkext/gtkextstatusbar.c
index 79beda2..a177d18 100644
--- a/src/gtkext/gtkextstatusbar.c
+++ b/src/gtkext/gtkextstatusbar.c
@@ -174,20 +174,21 @@ void gtk_extended_status_bar_update_activity(GtkExtStatusBar *bar, guint id, gdo
if (bar->msg_count == 0) return;
- gdk_threads_enter();
-
if (id == bar->msg_id[bar->msg_count - 1] && bar->is_progressive[bar->msg_count - 1])
{
+ if (value != 1.0 && value - gtk_progress_bar_get_fraction(bar->progress) < 0.01)
+ return;
+
g_snprintf(percent, 5, "%.0f%%", value * 100);
+ gdk_threads_enter();
+
gtk_progress_bar_set_fraction(bar->progress, value);
gtk_progress_bar_set_text(bar->progress, percent);
- }
+ gdk_threads_leave();
- gdk_flush ();
-
- gdk_threads_leave();
+ }
}