summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPatrick McDermott <pj@pehjota.net>2017-09-28 11:55:43 (EDT)
committer Patrick McDermott <pj@pehjota.net>2017-09-28 11:55:43 (EDT)
commita4621ae605a2ccefdb8e0b2d51178f6802cd8794 (patch)
treeb18a0832a7513ef48ed15c3621ce65267e64f986 /src
parent0c60920ff375396856fc4091240669cb3cbbc004 (diff)
downloadmarquee-a4621ae605a2ccefdb8e0b2d51178f6802cd8794.zip
marquee-a4621ae605a2ccefdb8e0b2d51178f6802cd8794.tar.gz
marquee-a4621ae605a2ccefdb8e0b2d51178f6802cd8794.tar.bz2
MqTab: Propagate root pointer through tree
Diffstat (limited to 'src')
-rw-r--r--src/tab.c3
-rw-r--r--src/tab.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/src/tab.c b/src/tab.c
index 8ba6f0c..a38f5c4 100644
--- a/src/tab.c
+++ b/src/tab.c
@@ -75,6 +75,7 @@ update_tree_sizes(MqTab *node, guint step)
static void
append_child(MqTab *new_node, MqTab *parent)
{
+ new_node->root = parent->root;
new_node->parent = parent;
new_node->next = NULL;
new_node->prev = parent->last_child; /* May be NULL */
@@ -95,6 +96,7 @@ append_child(MqTab *new_node, MqTab *parent)
static void
append_sibling(MqTab *new_node, MqTab *prev_sibling)
{
+ new_node->root = prev_sibling->root;
new_node->parent = prev_sibling->parent;
new_node->prev = prev_sibling;
new_node->next = prev_sibling->next; /* May be NULL */
@@ -406,6 +408,7 @@ mq_tab_new_root(MqWindow *window)
MqTab *tab;
tab = malloc(sizeof(*tab));
+ tab->root = tab;
tab->parent = NULL;
tab->prev = NULL;
tab->next = NULL;
diff --git a/src/tab.h b/src/tab.h
index 7e3c379..1258dd1 100644
--- a/src/tab.h
+++ b/src/tab.h
@@ -32,6 +32,7 @@ typedef struct MqTab MqTab;
#include "tab-body.h"
struct MqTab {
+ MqTab *root;
MqTab *parent;
MqTab *prev;
MqTab *next;