summaryrefslogtreecommitdiff
path: root/desktop/tree.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2011-06-04 20:22:24 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2011-06-04 20:22:24 +0000
commit24d0a07f8f7b10b20a73fc3bbfd01a40d94e8b9b (patch)
tree4c2cc4cad82717996e216fe5666b6fe7300b9a05 /desktop/tree.c
parenta79ef8cffb6592da1208680315027d0eff8c4a94 (diff)
downloadnetsurf-24d0a07f8f7b10b20a73fc3bbfd01a40d94e8b9b.tar.gz
netsurf-24d0a07f8f7b10b20a73fc3bbfd01a40d94e8b9b.tar.bz2
Extra logging to track the source of node size calculations
A couple of minor changes to prevent unnecessary recalculation svn path=/trunk/netsurf/; revision=12459
Diffstat (limited to 'desktop/tree.c')
-rw-r--r--desktop/tree.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/desktop/tree.c b/desktop/tree.c
index 36b61bab9..017bc7022 100644
--- a/desktop/tree.c
+++ b/desktop/tree.c
@@ -42,6 +42,8 @@
#include "utils/utils.h"
#include "utils/url.h"
+#define TREE_NOISY_DEBUG 1
+
#define MAXIMUM_URL_LENGTH 1024
#define TREE_TEXT_SIZE_PT 11
@@ -473,8 +475,12 @@ static void tree_recalculate_node_sizes(struct tree *tree, struct node *node,
if (node->expanded) {
for (element = &node->data; element != NULL;
element = element->next) {
- if (recalculate_sizes)
+ if (recalculate_sizes) {
+ #ifdef TREE_NOISY_DEBUG
+ if(element->text) LOG(("%s", element->text));
+ #endif
tree_recalculate_node_element(tree, element);
+ }
node->box.width = (node->box.width > element->box.x +
element->box.width - node->box.x) ?
node->box.width :
@@ -485,10 +491,13 @@ static void tree_recalculate_node_sizes(struct tree *tree, struct node *node,
} else {
if (recalculate_sizes)
for (element = &node->data; element != NULL;
- element = element->next)
+ element = element->next) {
+ #ifdef TREE_NOISY_DEBUG
+ if(element->text) LOG(("%s", element->text));
+ #endif
tree_recalculate_node_element(tree, element);
- else
- tree_recalculate_node_element(tree, &node->data);
+ }
+
node->box.width = node->data.box.width;
node->box.height = node->data.box.height;
}
@@ -823,6 +832,9 @@ static void tree_handle_node_element_changed(struct tree *tree,
width = element->box.width;
height = element->box.height;
+ #ifdef TREE_NOISY_DEBUG
+ if(element->text) LOG(("%s", element->text));
+ #endif
tree_recalculate_node_element(tree, element);
if (element->box.height != height) {
@@ -1454,6 +1466,11 @@ void tree_update_node_element(struct tree *tree, struct node_element *element,
if (response != NODE_CALLBACK_HANDLED)
free(element->bitmap);
}
+ else {
+ /* Increase the box width to accomodate the new icon */
+ element->box.width += NODE_INSTEP;
+ }
+
element->bitmap = bitmap;
}