move history bitmap thumbnail into the page information structure

This commit is contained in:
Vincent Sanders 2017-09-10 10:30:27 +01:00
parent 02a8b5bca0
commit ec94d5f812
4 changed files with 24 additions and 17 deletions

View File

@ -326,19 +326,21 @@ nserror browser_window_history_add(struct browser_window *bw,
} }
entry->page.url = nsurl_ref(nsurl); entry->page.url = nsurl_ref(nsurl);
entry->page.frag_id = frag_id ? lwc_string_ref(frag_id) : 0; entry->page.frag_id = frag_id ? lwc_string_ref(frag_id) : NULL;
entry->page.title = title; entry->page.title = title;
entry->page.bitmap = NULL;
entry->back = history->current; entry->back = history->current;
entry->next = 0; entry->next = 0;
entry->forward = entry->forward_pref = entry->forward_last = 0; entry->forward = entry->forward_pref = entry->forward_last = 0;
entry->children = 0; entry->children = 0;
entry->bitmap = 0;
if (history->current) { if (history->current) {
if (history->current->forward_last) if (history->current->forward_last) {
history->current->forward_last->next = entry; history->current->forward_last->next = entry;
else } else {
history->current->forward = entry; history->current->forward = entry;
}
history->current->forward_pref = entry; history->current->forward_pref = entry;
history->current->forward_last = entry; history->current->forward_last = entry;
history->current->children++; history->current->children++;
@ -373,7 +375,7 @@ nserror browser_window_history_add(struct browser_window *bw,
} }
} }
} }
entry->bitmap = bitmap; entry->page.bitmap = bitmap;
browser_window_history__layout(history); browser_window_history__layout(history);
@ -392,7 +394,9 @@ nserror browser_window_history_update(struct browser_window *bw,
history = bw->history; history = bw->history;
if (!history || !history->current || !history->current->bitmap) { if (!history ||
!history->current ||
!history->current->page.bitmap) {
return NSERROR_INVALID; return NSERROR_INVALID;
} }
@ -407,7 +411,7 @@ nserror browser_window_history_update(struct browser_window *bw,
free(history->current->page.title); free(history->current->page.title);
history->current->page.title = title; history->current->page.title = title;
guit->bitmap->render(history->current->bitmap, content); guit->bitmap->render(history->current->page.bitmap, content);
return NSERROR_OK; return NSERROR_OK;
} }

View File

@ -45,6 +45,7 @@ struct history_page {
struct nsurl *url; /**< Page URL, never NULL. */ struct nsurl *url; /**< Page URL, never NULL. */
lwc_string *frag_id; /** Fragment identifier, or NULL. */ lwc_string *frag_id; /** Fragment identifier, or NULL. */
char *title; /**< Page title, never NULL. */ char *title; /**< Page title, never NULL. */
struct bitmap *bitmap; /**< Thumbnail bitmap, or NULL. */
}; };
/** /**
@ -61,7 +62,6 @@ struct history_entry {
unsigned int children; /**< Number of children. */ unsigned int children; /**< Number of children. */
int x; /**< Position of node. */ int x; /**< Position of node. */
int y; /**< Position of node. */ int y; /**< Position of node. */
struct bitmap *bitmap; /**< Thumbnail bitmap, or 0. */
}; };
/** /**

View File

@ -144,9 +144,9 @@ redraw_entry(struct history *history,
} }
/* Only attempt to plot bitmap if it is present */ /* Only attempt to plot bitmap if it is present */
if (entry->bitmap != NULL) { if (entry->page.bitmap != NULL) {
res = ctx->plot->bitmap(ctx, res = ctx->plot->bitmap(ctx,
entry->bitmap, entry->page.bitmap,
entry->x + x, entry->x + x,
entry->y + y, entry->y + y,
WIDTH, HEIGHT, WIDTH, HEIGHT,

View File

@ -195,10 +195,12 @@ static bool save_complete_save_buffer(save_complete_ctx *ctx,
* \param osize updated with the size of the result. * \param osize updated with the size of the result.
* \return converted source, or NULL on out of memory. * \return converted source, or NULL on out of memory.
*/ */
static char *
static char *save_complete_rewrite_stylesheet_urls(save_complete_ctx *ctx, save_complete_rewrite_stylesheet_urls(save_complete_ctx *ctx,
const char *source, unsigned long size, const nsurl *base, const char *source,
unsigned long *osize) unsigned long size,
const nsurl *base,
unsigned long *osize)
{ {
char *rewritten; char *rewritten;
unsigned long offset = 0; unsigned long offset = 0;
@ -207,8 +209,9 @@ static char *save_complete_rewrite_stylesheet_urls(save_complete_ctx *ctx,
/* count number occurrences of @import to (over)estimate result size */ /* count number occurrences of @import to (over)estimate result size */
/* can't use strstr because source is not 0-terminated string */ /* can't use strstr because source is not 0-terminated string */
for (offset = 0; SLEN("@import") < size && for (offset = 0;
offset <= size - SLEN("@import"); offset++) { (SLEN("@import") < size) && (offset <= (size - SLEN("@import")));
offset++) {
if (source[offset] == '@' && if (source[offset] == '@' &&
ascii_to_lower(source[offset + 1]) == 'i' && ascii_to_lower(source[offset + 1]) == 'i' &&
ascii_to_lower(source[offset + 2]) == 'm' && ascii_to_lower(source[offset + 2]) == 'm' &&