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