lib/glimmer/swt/custom/shape.rb in glimmer-dsl-swt-4.18.4.8 vs lib/glimmer/swt/custom/shape.rb in glimmer-dsl-swt-4.18.4.9
- old
+ new
@@ -261,19 +261,23 @@
the_pattern = self.class.pattern(*args)
end
the_pattern
end
- def dispose
- @background_pattern&.dispose
- @background_pattern = nil
- @foreground_pattern&.dispose
- @foreground_pattern = nil
- @image&.dispose
- @image = nil
+ def dispose(dispose_images: true, dispose_patterns: true)
+ if dispose_patterns
+ @background_pattern&.dispose
+ @background_pattern = nil
+ @foreground_pattern&.dispose
+ @foreground_pattern = nil
+ end
+ if dispose_images
+ @image&.dispose
+ @image = nil
+ end
@parent.shapes.delete(self)
end
-
+
def paint(paint_event)
calculate_paint_args!
@properties.each do |property, args|
method_name = attribute_setter(property)
# TODO consider optimization of not setting a background/foreground/font if it didn't change from last shape