aboutsummaryrefslogtreecommitdiff
path: root/gcc/text-art
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/text-art')
-rw-r--r--gcc/text-art/widget.cc10
-rw-r--r--gcc/text-art/widget.h11
2 files changed, 18 insertions, 3 deletions
diff --git a/gcc/text-art/widget.cc b/gcc/text-art/widget.cc
index 3c68018..5d3e517 100644
--- a/gcc/text-art/widget.cc
+++ b/gcc/text-art/widget.cc
@@ -200,6 +200,15 @@ test_wrapper_widget ()
}
static void
+test_empty_wrapper_widget ()
+{
+ style_manager sm;
+ wrapper_widget w (nullptr);
+ canvas c (w.to_canvas (sm));
+ ASSERT_CANVAS_STREQ (c, false, "");
+}
+
+static void
test_vbox_1 ()
{
style_manager sm;
@@ -263,6 +272,7 @@ text_art_widget_cc_tests ()
test_test_widget ();
test_text_widget ();
test_wrapper_widget ();
+ test_empty_wrapper_widget ();
test_vbox_1 ();
test_vbox_2 ();
test_canvas_widget ();
diff --git a/gcc/text-art/widget.h b/gcc/text-art/widget.h
index 55655eb..ab7b1d3 100644
--- a/gcc/text-art/widget.h
+++ b/gcc/text-art/widget.h
@@ -146,15 +146,20 @@ class wrapper_widget : public widget
}
canvas::size_t calc_req_size () override
{
- return m_child->get_req_size ();
+ if (m_child)
+ return m_child->get_req_size ();
+ else
+ return canvas::size_t (0,0);
}
void update_child_alloc_rects () override
{
- m_child->set_alloc_rect (get_alloc_rect ());
+ if (m_child)
+ m_child->set_alloc_rect (get_alloc_rect ());
}
void paint_to_canvas (canvas &canvas) override
{
- m_child->paint_to_canvas (canvas);
+ if (m_child)
+ m_child->paint_to_canvas (canvas);
}
private:
std::unique_ptr<widget> m_child;