aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2005-01-09 20:21:34 +0800
committerChristian Persch <chpe@src.gnome.org>2005-01-09 20:21:34 +0800
commitd5c17ea5ab31405cab0ebe3ca6e4d9e52d4d5e47 (patch)
treecf816b39999b419179ffbec26271cd3d5b414c71 /src
parent7730057ced6ecc87123ff621593672c80e72d2db (diff)
downloadgsoc2013-epiphany-d5c17ea5ab31405cab0ebe3ca6e4d9e52d4d5e47.tar
gsoc2013-epiphany-d5c17ea5ab31405cab0ebe3ca6e4d9e52d4d5e47.tar.gz
gsoc2013-epiphany-d5c17ea5ab31405cab0ebe3ca6e4d9e52d4d5e47.tar.bz2
gsoc2013-epiphany-d5c17ea5ab31405cab0ebe3ca6e4d9e52d4d5e47.tar.lz
gsoc2013-epiphany-d5c17ea5ab31405cab0ebe3ca6e4d9e52d4d5e47.tar.xz
gsoc2013-epiphany-d5c17ea5ab31405cab0ebe3ca6e4d9e52d4d5e47.tar.zst
gsoc2013-epiphany-d5c17ea5ab31405cab0ebe3ca6e4d9e52d4d5e47.zip
Don't store more than 5 hidden popups. Fixes bug #160863 (merged from
2005-01-09 Christian Persch <chpe@cvs.gnome.org> * src/ephy-tab.c: (popups_manager_add): Don't store more than 5 hidden popups. Fixes bug #160863 (merged from HEAD; patch by Adam Hoopers).
Diffstat (limited to 'src')
-rw-r--r--src/ephy-tab.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/ephy-tab.c b/src/ephy-tab.c
index 032e8803a..667db88a4 100644
--- a/src/ephy-tab.c
+++ b/src/ephy-tab.c
@@ -65,6 +65,8 @@
#define CONF_LOCKDOWN_DISABLE_JAVASCRIPT_CHROME "/apps/epiphany/lockdown/disable_javascript_chrome"
+#define MAX_HIDDEN_POPUPS 5
+
struct _EphyTabPrivate
{
char *status_message;
@@ -493,7 +495,25 @@ popups_manager_add (EphyTab *tab,
tab->priv->hidden_popups = g_slist_prepend
(tab->priv->hidden_popups, popup);
- g_object_notify (G_OBJECT (tab), "hidden-popup-count");
+ if (popup_blocker_n_hidden (tab) > MAX_HIDDEN_POPUPS) /* bug #160863 */
+ {
+ /* Remove the oldest popup */
+ GSList *l = tab->priv->hidden_popups;
+
+ while (l->next->next != NULL)
+ {
+ l = l->next;
+ }
+
+ popup = (PopupInfo *) l->next->data;
+ popups_manager_free_info (popup);
+
+ l->next = NULL;
+ }
+ else
+ {
+ g_object_notify (G_OBJECT (tab), "hidden-popup-count");
+ }
}
static gboolean