summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Michael Brummer <jan.brummer@tabos.org>2020-09-04 19:27:35 +0200
committerJan-Michael Brummer <jan.brummer@tabos.org>2020-09-25 20:21:51 +0200
commit19bef4c258218ab085599934db94808b6b65ca05 (patch)
treed4a2b440241ead0f2de601eb401c733c8cfadf6a
parentc299c9b97415663475b181455db6fae57f7f1664 (diff)
downloadepiphany-19bef4c258218ab085599934db94808b6b65ca05.tar.gz
overview: Ensure there are always 9 items on overview
Fixes: https://gitlab.gnome.org/GNOME/epiphany/-/issues/1326
-rw-r--r--embed/ephy-about-handler.c8
-rw-r--r--embed/web-process-extension/resources/js/overview.js30
2 files changed, 30 insertions, 8 deletions
diff --git a/embed/ephy-about-handler.c b/embed/ephy-about-handler.c
index 597a1654e..61deac0a8 100644
--- a/embed/ephy-about-handler.c
+++ b/embed/ephy-about-handler.c
@@ -429,14 +429,6 @@ history_service_query_urls_cb (EphyHistoryService *history,
thumbnail_style ? thumbnail_style : "", url->title);
}
- for (guint idx = list_length; idx < 9; idx++) {
- g_string_append_printf (data_str,
- "<i class=\"overview-item\">"
- " <span class=\"overview-thumbnail\"></span>"
- " <span class=\"overview-title\"></span>"
- "</i>");
- }
-
data_str = g_string_append (data_str,
" </div>\n"
" </div>\n"
diff --git a/embed/web-process-extension/resources/js/overview.js b/embed/web-process-extension/resources/js/overview.js
index ad9e9c8fc..e898bd700 100644
--- a/embed/web-process-extension/resources/js/overview.js
+++ b/embed/web-process-extension/resources/js/overview.js
@@ -62,6 +62,7 @@ Ephy.Overview = class Overview
for (let titleChange of this._pendingTitleChanges)
this._onTitleChanged(titleChange.url, titleChange.title);
this._pendingTitleChanges = [];
+ this._addPlaceholders();
}
_onKeyPress(event)
@@ -76,6 +77,33 @@ Ephy.Overview = class Overview
}
}
+ _addPlaceholders() {
+ let parentNode = document.getElementById('most-visited-grid');
+ let anchors = document.getElementsByTagName('a');
+
+ for (let i = anchors.length; i < 9; i++) {
+ let anchor = document.createElement('a');
+ anchor.className = 'overview-item';
+ let span_thumbnail = document.createElement('span');
+ span_thumbnail.className = 'overview-thumbnail';
+ anchor.appendChild(span_thumbnail);
+ let span_title = document.createElement('span');
+ span_title.className = 'overview-title';
+ anchor.appendChild(span_title);
+
+ parentNode.appendChild(anchor);
+ }
+ }
+
+ _removePlaceholders() {
+ let anchors = document.getElementsByTagName('a')
+
+ for (let anchor of anchors) {
+ if (anchor.href == '')
+ document.removeChild(anchor);
+ }
+ }
+
_removeItem(item)
{
item.classList.add('overview-removed');
@@ -88,6 +116,7 @@ Ephy.Overview = class Overview
break;
}
}
+ this._addPlaceholders();
window.webkit.messageHandlers.overview.postMessage(item.href);
}, 500); // This value needs to be synced with the one in about.css
}
@@ -102,6 +131,7 @@ Ephy.Overview = class Overview
overview.classList.remove('overview-empty');
}
+ this._removePlaceholders();
for (let i = 0; i < urls.length; i++) {
let url = urls[i];