aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--embed/downloader-view.c13
-rw-r--r--embed/mozilla/MozDownload.cpp10
3 files changed, 28 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 354772849..3f926dc44 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-09-18 Christian Persch <chpe@cvs.gnome.org>
+
+ * embed/downloader-view.c: (progress_cell_data_func):
+ * embed/mozilla/MozDownload.cpp:
+ * lib/ephy-gui.c: (ephy_gui_menu_position_tree_selection):
+
+ Fix download progress indicator in downloader view.
+
2004-09-18 Marco Pesenti Gritti <marco@gnome.org>
reviewed by: Christian Persch <chpe@cvs.gnome.org>
diff --git a/embed/downloader-view.c b/embed/downloader-view.c
index 2029a701c..32975231c 100644
--- a/embed/downloader-view.c
+++ b/embed/downloader-view.c
@@ -522,6 +522,7 @@ progress_cell_data_func (GtkTreeViewColumn *col,
gpointer user_data)
{
EphyDownloadState state;
+ const char *text = NULL;
int percent;
gtk_tree_model_get (model, iter,
@@ -532,18 +533,24 @@ progress_cell_data_func (GtkTreeViewColumn *col,
switch (state)
{
case EPHY_DOWNLOAD_INITIALISING:
- g_object_set (renderer, "text", Q_("download status|Unknown"), NULL);
+ text = Q_("download status|Unknown");
break;
case EPHY_DOWNLOAD_FAILED:
- g_object_set (renderer, "text", Q_("download status|Failed"), NULL);
+ text = Q_("download status|Failed");
break;
case EPHY_DOWNLOAD_DOWNLOADING:
case EPHY_DOWNLOAD_PAUSED:
- g_object_set (renderer, "text", NULL, "value", percent, NULL);
+ if (percent == -1)
+ {
+ text = Q_("download status|Unknown");
+ percent = 0;
+ }
break;
default:
g_return_if_reached ();
}
+
+ g_object_set (renderer, "text", text, "value", percent, NULL);
}
static void
diff --git a/embed/mozilla/MozDownload.cpp b/embed/mozilla/MozDownload.cpp
index eec039641..fdb8e3b75 100644
--- a/embed/mozilla/MozDownload.cpp
+++ b/embed/mozilla/MozDownload.cpp
@@ -298,6 +298,16 @@ MozDownload::OnStateChange (nsIWebProgress *aWebProgress, nsIRequest *aRequest,
if (NS_FAILED(aStatus) && NS_SUCCEEDED(mStatus))
mStatus = aStatus;
+ if (aStateFlags & STATE_START)
+ {
+ mDownloadState = EPHY_DOWNLOAD_DOWNLOADING;
+
+ if (mEphyDownload)
+ {
+ g_signal_emit_by_name (mEphyDownload, "changed");
+ }
+ }
+
/* We will get this even in the event of a cancel */
if (aStateFlags & STATE_STOP)
{