Clear downloads when the transferbar is full
Fixes: https://bugs.launchpad.net/midori/+bug/851452
This commit is contained in:
parent
a8bf171c62
commit
eb45219936
2 changed files with 34 additions and 0 deletions
|
@ -235,6 +235,9 @@ _midori_browser_update_notebook (MidoriBrowser* browser);
|
||||||
void
|
void
|
||||||
midori_transferbar_add_download_item (MidoriTransferbar* transferbar,
|
midori_transferbar_add_download_item (MidoriTransferbar* transferbar,
|
||||||
WebKitDownload* download);
|
WebKitDownload* download);
|
||||||
|
void
|
||||||
|
midori_transferbar_check_size (GtkWidget* statusbar,
|
||||||
|
MidoriTransferbar* transferbar);
|
||||||
|
|
||||||
#define _action_by_name(brwsr, nme) \
|
#define _action_by_name(brwsr, nme) \
|
||||||
gtk_action_group_get_action (brwsr->action_group, nme)
|
gtk_action_group_get_action (brwsr->action_group, nme)
|
||||||
|
@ -984,6 +987,8 @@ midori_browser_prepare_download (MidoriBrowser* browser,
|
||||||
webkit_download_set_destination_uri (download, uri);
|
webkit_download_set_destination_uri (download, uri);
|
||||||
g_signal_emit (browser, signals[ADD_DOWNLOAD], 0, download);
|
g_signal_emit (browser, signals[ADD_DOWNLOAD], 0, download);
|
||||||
midori_transferbar_add_download_item (MIDORI_TRANSFERBAR (browser->transferbar), download);
|
midori_transferbar_add_download_item (MIDORI_TRANSFERBAR (browser->transferbar), download);
|
||||||
|
midori_transferbar_check_size (browser->statusbar,
|
||||||
|
MIDORI_TRANSFERBAR (browser->transferbar));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -227,6 +227,35 @@ midori_transferbar_download_button_clicked_cb (GtkWidget* button,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
midori_transferbar_check_size (GtkWidget* statusbar,
|
||||||
|
MidoriTransferbar* transferbar)
|
||||||
|
{
|
||||||
|
GtkWidget* window;
|
||||||
|
GtkRequisition req;
|
||||||
|
gint reqwidth, winwidth;
|
||||||
|
gtk_widget_size_request (statusbar, &req);
|
||||||
|
reqwidth = req.width;
|
||||||
|
window = gtk_widget_get_toplevel (GTK_WIDGET(transferbar));
|
||||||
|
gtk_window_get_size (GTK_WINDOW(window), &winwidth, NULL);
|
||||||
|
|
||||||
|
if (reqwidth > winwidth)
|
||||||
|
{
|
||||||
|
GList* list;
|
||||||
|
for (list = transferbar->infos; list != NULL; list = g_list_next (list))
|
||||||
|
{
|
||||||
|
TransferInfo* info = list->data;
|
||||||
|
WebKitDownloadStatus status = webkit_download_get_status (info->download);
|
||||||
|
if (status == WEBKIT_DOWNLOAD_STATUS_ERROR
|
||||||
|
|| status == WEBKIT_DOWNLOAD_STATUS_CANCELLED
|
||||||
|
|| status == WEBKIT_DOWNLOAD_STATUS_FINISHED)
|
||||||
|
{
|
||||||
|
gtk_widget_destroy (info->button);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
midori_transferbar_add_download_item (MidoriTransferbar* transferbar,
|
midori_transferbar_add_download_item (MidoriTransferbar* transferbar,
|
||||||
WebKitDownload* download)
|
WebKitDownload* download)
|
||||||
|
|
Loading…
Reference in a new issue