diff options
Diffstat (limited to 'embed')
-rw-r--r-- | embed/downloader-view.c | 13 | ||||
-rw-r--r-- | embed/mozilla/MozDownload.cpp | 10 |
2 files changed, 20 insertions, 3 deletions
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) { |