summaryrefslogtreecommitdiff
path: root/libs/canvas/item.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2014-06-19 00:06:32 +1000
committernick_m <mainsbridge@gmail.com>2014-06-19 00:06:32 +1000
commit0bd17ed2e462578fee592a242b6d70c005d9e819 (patch)
tree6c985d4bc633465ccbc2f9ea537c0e8b8bb30e8b /libs/canvas/item.cc
parent47efeb9f21c936cf2767ea3099e3fe711ff80334 (diff)
Canvas tweaks.
* Only queue a draw for changed items that are set visible and in-window.
Diffstat (limited to 'libs/canvas/item.cc')
-rw-r--r--libs/canvas/item.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/libs/canvas/item.cc b/libs/canvas/item.cc
index ce15782b9e..90bf0972f0 100644
--- a/libs/canvas/item.cc
+++ b/libs/canvas/item.cc
@@ -545,10 +545,12 @@ Item::begin_change ()
void
Item::end_change ()
{
- _canvas->item_changed (this, _pre_change_bounding_box);
+ if (_visible) {
+ _canvas->item_changed (this, _pre_change_bounding_box);
- if (_parent) {
- _parent->child_changed ();
+ if (_parent) {
+ _parent->child_changed ();
+ }
}
}
@@ -560,7 +562,9 @@ Item::begin_visual_change ()
void
Item::end_visual_change ()
{
- _canvas->item_visual_property_changed (this);
+ if (_visible) {
+ _canvas->item_visual_property_changed (this);
+ }
}
void