Issue #562 Part 1: Transfix the grid

This commit is contained in:
wolfbeast 2018-06-28 15:47:44 +02:00 • committed by Roy Tam
commit 2b8a811849
2 changed files with 47 additions and 31 deletions

View file

@ -124,17 +124,27 @@ var gGrid = {
* Renders the grid, including cells and sites. * Renders the grid, including cells and sites.
*/ */
_refreshGrid() { _refreshGrid() {
let row = document.createElementNS(HTML_NAMESPACE, "div");
row.classList.add("newtab-row");
let cell = document.createElementNS(HTML_NAMESPACE, "div"); let cell = document.createElementNS(HTML_NAMESPACE, "div");
cell.classList.add("newtab-cell"); cell.classList.add("newtab-cell");
// Creates all the cells up to the maximum // Clear the grid
let fragment = document.createDocumentFragment(); this._node.innerHTML = "";
for (let i = 0; i < gGridPrefs.gridColumns * gGridPrefs.gridRows; i++) {
fragment.appendChild(cell.cloneNode(true)); // Creates the structure of one row
for (let i = 0; i < gGridPrefs.gridColumns; i++) {
row.appendChild(cell.cloneNode(true));
} }
// Create cells. // Creates the grid
let cells = Array.from(fragment.childNodes, (cell) => new Cell(this, cell)); for (let j = 0; j < gGridPrefs.gridRows; j++) {
this._node.appendChild(row.cloneNode(true));
}
// Create cell array.
let cellElements = this.node.querySelectorAll(".newtab-cell");
let cells = Array.from(cellElements, (cell) => new Cell(this, cell));
// Fetch links. // Fetch links.
let links = gLinks.getLinks(); let links = gLinks.getLinks();
@ -152,10 +162,6 @@ var gGrid = {
} }
this._cells = cells; this._cells = cells;
while (this._gridDefaultContent.nextSibling) {
this._gridDefaultContent.nextSibling.remove();
}
this._node.appendChild(fragment);
}, },
/** /**
@ -263,10 +269,10 @@ var gGrid = {
// what being computed above. This, in turn, may cause scrollbar shown // what being computed above. This, in turn, may cause scrollbar shown
// for directory tiles, and introduce jitter when grid width is aligned // for directory tiles, and introduce jitter when grid width is aligned
// exactly on the column boundary // exactly on the column boundary
this._node.style.width = gridColumns * this._cellWidth + "px"; //this._node.style.width = gridColumns * this._cellWidth + "px";
this._node.style.maxWidth = gGridPrefs.gridColumns * this._cellWidth + //this._node.style.maxWidth = gGridPrefs.gridColumns * this._cellWidth +
GRID_WIDTH_EXTRA + "px"; // GRID_WIDTH_EXTRA + "px";
this._node.style.height = this._computeHeight() + "px"; //this._node.style.height = this._computeHeight() + "px";
this._node.style.maxHeight = this._computeHeight(gridRows) + "px"; //this._node.style.maxHeight = this._computeHeight(gridRows) + "px";
} }
}; };

View file

@ -69,32 +69,37 @@ input[type=button] {
#newtab-horizontal-margin { #newtab-horizontal-margin {
display: -moz-box; display: -moz-box;
-moz-box-flex: 1; -moz-box-flex: 5;
}
#newtab-margin-top,
#newtab-margin-bottom {
display: -moz-box;
position: relative;
} }
#newtab-margin-top { #newtab-margin-top {
min-height: 10px;
max-height: 30px;
display: -moz-box;
-moz-box-flex: 1; -moz-box-flex: 1;
-moz-box-align: center;
-moz-box-pack: center;
} }
#newtab-margin-bottom { #newtab-margin-bottom {
-moz-box-flex: 2; min-height: 40px;
max-height: 80px;
-moz-box-flex: 1;
} }
.newtab-side-margin { .newtab-side-margin {
min-width: 10px; min-width: 40px;
max-width: 300px;
-moz-box-flex: 1; -moz-box-flex: 1;
} }
/* GRID */ /* GRID */
#newtab-grid { #newtab-grid {
display: -moz-box;
-moz-box-flex: 5; -moz-box-flex: 5;
overflow: hidden; -moz-box-orient: vertical;
min-width: 600px;
min-height: 400px;
transition: 300ms ease-out; transition: 300ms ease-out;
transition-property: opacity; transition-property: opacity;
} }
@ -108,18 +113,23 @@ input[type=button] {
pointer-events: none; pointer-events: none;
} }
/* ROWS */
.newtab-row {
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-direction: normal;
-moz-box-flex: 1;
}
/* /*
* If you change the sizes here, make sure you * Thumbnail image sizes are determined in the preferences:
* change the preferences:
* toolkit.pageThumbs.minWidth * toolkit.pageThumbs.minWidth
* toolkit.pageThumbs.minHeight * toolkit.pageThumbs.minHeight
*/ */
/* CELLS */ /* CELLS */
.newtab-cell { .newtab-cell {
display: -moz-box; display: -moz-box;
height: 180px; -moz-box-flex: 1;
margin: 15px 10px 30px;
width: 250px;
} }
/* SITES */ /* SITES */
@ -211,7 +221,7 @@ input[type=button] {
display: -moz-box; display: -moz-box;
position: relative; position: relative;
-moz-box-pack: center; -moz-box-pack: center;
margin: 40px 0 15px; margin: 10px 0 15px;
} }
#searchContainer[page-disabled] { #searchContainer[page-disabled] {