mirror of
https://github.com/netsurf-browser/netsurf
synced 2025-02-24 02:14:11 +03:00
Reset entry url's urldb visit data when user deletes entry from global history.
This commit is contained in:
parent
ec9608c4de
commit
28a04f6da7
@ -61,6 +61,8 @@ struct global_history_ctx {
|
|||||||
struct global_history_ctx gh_ctx;
|
struct global_history_ctx gh_ctx;
|
||||||
|
|
||||||
struct global_history_entry {
|
struct global_history_entry {
|
||||||
|
bool user_delete;
|
||||||
|
|
||||||
int slot;
|
int slot;
|
||||||
nsurl *url;
|
nsurl *url;
|
||||||
time_t t;
|
time_t t;
|
||||||
@ -349,6 +351,7 @@ static nserror global_history_add_entry_internal(nsurl *url, int slot,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
e->user_delete = false;
|
||||||
e->slot = slot;
|
e->slot = slot;
|
||||||
e->url = nsurl_ref(url);
|
e->url = nsurl_ref(url);
|
||||||
e->t = data->last_visit;
|
e->t = data->last_visit;
|
||||||
@ -433,11 +436,18 @@ static void global_history_delete_entry_internal(
|
|||||||
e->next->prev = e->prev;
|
e->next->prev = e->prev;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Destroy */
|
if (e->user_delete) {
|
||||||
|
/* User requested delete, so delete from urldb too. */
|
||||||
|
urldb_reset_url_visit_data(e->url);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Destroy fields */
|
||||||
free((void *)e->data[0].value); /* Eww */
|
free((void *)e->data[0].value); /* Eww */
|
||||||
free((void *)e->data[2].value); /* Eww */
|
free((void *)e->data[2].value); /* Eww */
|
||||||
free((void *)e->data[3].value); /* Eww */
|
free((void *)e->data[3].value); /* Eww */
|
||||||
nsurl_unref(e->url);
|
nsurl_unref(e->url);
|
||||||
|
|
||||||
|
/* Destroy entry */
|
||||||
free(e);
|
free(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -477,7 +487,7 @@ static bool global_history_add_entry(nsurl *url,
|
|||||||
/* See if there's already an entry for this URL */
|
/* See if there's already an entry for this URL */
|
||||||
e = global_history_find(url);
|
e = global_history_find(url);
|
||||||
if (e != NULL) {
|
if (e != NULL) {
|
||||||
/* Existing entry. Delete it. */
|
/* Existing entry. */
|
||||||
treeview_delete_node(gh_ctx.tree, e->entry);
|
treeview_delete_node(gh_ctx.tree, e->entry);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -643,6 +653,7 @@ static nserror global_history_tree_node_entry_cb(
|
|||||||
switch (msg.msg) {
|
switch (msg.msg) {
|
||||||
case TREE_MSG_NODE_DELETE:
|
case TREE_MSG_NODE_DELETE:
|
||||||
e->entry = NULL;
|
e->entry = NULL;
|
||||||
|
e->user_delete = msg.data.delete.user;
|
||||||
global_history_delete_entry_internal(e);
|
global_history_delete_entry_internal(e);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user