haiku/headers/os/interface
Adrien Destugues 6d9c0146a5 BGradient: fix assignment operator, add copy constructor
The BGradient class is a bit strange as it can store any gradient on its
own, butonly the subclasses allow to set some of the fields.

In the asignment operator, the non-base data (which is in an union) was
not copied over.

More importantly, the missing copy constructor led to the default
implementation being used, and BList (used for the color stops) was
being copied using its default copy constructor, resulting in the two
BGradient (original and copy) poinitng to the same stops data. Heap
corruption resulted whenever one of them was deleted.

Having a working copy ocnstructor fixes this. The alternative is making
the copy constructor private or protected to make sure gradients are not
copied, since normally you'd copy only the subclasses, preserving the
C++ type. However there is nothing enforcing that, and manipulating a
BGradient copied from a subclass works just fine.

Change-Id: I28e733eb8a2970b76ae623eabb75ef8435f508af
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3144
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-08-11 20:46:34 +00:00
..
AbstractLayout.h More whitespace cleanup all over the place. 2015-04-10 15:05:14 +02:00
AbstractLayoutItem.h
AffineTransform.h BAffineTransform: Remove "register" storage class. 2019-02-21 14:03:05 -05:00
Alert.h BAlert: use layout API, allow any number of buttons. 2015-07-30 19:50:03 +02:00
Alignment.h
Bitmap.h Package daemon notifications 2017-07-31 19:09:38 +02:00
Box.h Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
Button.h Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
CardLayout.h
CardView.h Interface Kit: Add BCardView 2015-12-26 20:13:22 -05:00
ChannelControl.h Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
ChannelSlider.h Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
CheckBox.h Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
ColorControl.h BColorControl: Remove fOffscreenView pointer 2016-03-12 19:14:26 -08:00
Control.h Style fixes to IK, focus on docs 2014-06-13 17:27:01 -04:00
ControlLook.h IK: Update scroll bars for alternative control look 2020-04-11 16:57:54 +00:00
Deskbar.h Deskbar: Resizable tray 2018-11-04 19:00:49 +00:00
Dragger.h Fix clang warning "mismatched-tags" 2020-03-23 01:30:23 +00:00
Font.h Implementation of BFont::Blocks 2017-05-08 22:17:53 +02:00
Gradient.h BGradient: fix assignment operator, add copy constructor 2020-08-11 20:46:34 +00:00
GradientConic.h
GradientDiamond.h
GradientLinear.h
GradientRadial.h
GradientRadialFocus.h
GraphicsDefs.h app_server: Implement more composition modes 2020-06-29 14:07:42 +00:00
GridLayout.h
GridLayoutBuilder.h
GridView.h
GroupLayout.h More whitespace cleanup all over the place. 2015-04-10 15:05:14 +02:00
GroupLayoutBuilder.h
GroupView.h
IconUtils.h
Input.h
InterfaceDefs.h Nuke COMPILE_FOR_R5. 2017-11-15 17:52:27 +01:00
Layout.h
LayoutBuilder.h Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
LayoutContext.h
LayoutItem.h BLayoutItem: Add RemoveSelf() convenience method. 2015-04-15 00:34:05 +02:00
LayoutUtils.h Fix button label position, try number 2 2014-04-08 14:10:10 -04:00
ListItem.h
ListView.h BListView: do not spawn a thread on every mouse click. 2020-04-04 11:50:07 +02:00
Menu.h BMenu: speed up deleting items 2020-07-04 16:49:55 +00:00
MenuBar.h BMenuBar & Deskbar: Make the hack to call ShowMenuBar a lot less ugly. 2019-06-17 11:49:48 +00:00
MenuField.h Remove MouseDownThread and its usages 2020-05-07 22:08:23 +00:00
MenuItem.h Visually align shortcuts in menus 2020-02-04 23:06:54 +00:00
OptionControl.h Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
OptionPopUp.h Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
OutlineListView.h Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
Picture.h BPicture: Style fixes related to documentation. 2014-05-19 20:13:38 -04:00
PictureButton.h Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
Point.h Various whitespace cleanup only. 2015-09-05 16:09:33 +02:00
Polygon.h BPolygon: Style fixes for documentation. 2014-05-21 16:12:47 -04:00
PopUpMenu.h BPopUpMenu style fixes for documentation, no functional change intended 2013-11-11 19:27:45 -05:00
PrintJob.h PrintJob: make struct print_file_header packed. 2017-07-31 17:11:53 +02:00
RadioButton.h Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
Rect.h BRect: Style fixes for documentation 2014-05-30 19:31:10 -04:00
Region.h BRegion: add ScaleBy(BSize) and user documentation. 2014-06-19 19:23:31 +02:00
Screen.h Style fix: parameters should have a name. 2017-11-21 12:19:56 +01:00
ScrollBar.h BScrollBar: Remove DISABLE_ON_WINDOW_DEACTIVATION constant. 2020-07-05 18:37:48 -04:00
ScrollView.h BScrollView: Ask the BScrollBars what their preferred sizes are. 2020-07-05 18:37:48 -04:00
SeparatorItem.h BSeparatorItem: Style fix, rename archive to data 2014-03-04 14:28:20 -05:00
SeparatorView.h
Shape.h BShape: Rename these params back in header. 2014-07-14 19:15:13 -04:00
Shelf.h Fix clang warning "mismatched-tags" 2020-03-23 01:30:23 +00:00
Size.h
Slider.h Slider: Style fixes 2016-03-22 12:00:36 -07:00
SpaceLayoutItem.h
SplitLayoutBuilder.h
SplitView.h Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
StatusBar.h Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
StringItem.h
StringView.h BStringView: add support for multiline strings 2018-11-03 16:44:10 +00:00
TabView.h BTabView: Change layout constructor to default to B_WIDTH_FROM_WIDEST. 2019-01-24 18:52:39 +00:00
TextControl.h Set*UIColor, etc. 2016-01-04 06:48:22 -05:00
TextView.h IK: align BTextView text rect/fix alignment 2020-08-06 11:51:15 +00:00
TwoDimensionalLayout.h
UnicodeBlockObjects.h Implementation of BFont::Blocks 2017-05-08 22:17:53 +02:00
View.h Actually handle more than 3 mouse buttons 2020-04-18 18:20:37 +00:00
Window.h Revert "BWindow: CenterOnScreen a bit above center" 2017-01-01 12:25:05 -08:00