make inclusion/exclusion of hidden children optional in Item::add_child_bounding_boxes
authorPaul Davis <paul@linuxaudiosystems.com>
Sun, 25 Sep 2016 19:44:27 +0000 (14:44 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 27 Sep 2016 19:59:32 +0000 (14:59 -0500)
libs/canvas/canvas/item.h
libs/canvas/item.cc

index 2d28fcdf2af4f593b54f9b3321bfae2fe595e58e..dc29e75677063230e6520a8ebb3e9a1d51405c16 100644 (file)
@@ -295,7 +295,7 @@ protected:
        /* our items, from lowest to highest in the stack */
        std::list<Item*> _items;
 
-       void add_child_bounding_boxes() const;
+       void add_child_bounding_boxes (bool include_hidden = false) const;
        void render_children (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const;
 
        Duple scroll_offset() const;
index 711743d9f1f759240f9a15f03404f4abed1f21b6..e2cdc698bb69dd92e7747940118c0ddff1d51dd3 100644 (file)
@@ -817,7 +817,7 @@ Item::render_children (Rect const & area, Cairo::RefPtr<Cairo::Context> context)
 }
 
 void
-Item::add_child_bounding_boxes() const
+Item::add_child_bounding_boxes (bool include_hidden) const
 {
        boost::optional<Rect> self;
        Rect bbox;
@@ -830,7 +830,7 @@ Item::add_child_bounding_boxes() const
 
        for (list<Item*>::const_iterator i = _items.begin(); i != _items.end(); ++i) {
 
-               if (!(*i)->visible()) {
+               if (!(*i)->visible() && !include_hidden) {
                        continue;
                }