@@ -82,6 +82,8 @@ export abstract class BarLineChartBase<U extends Entry, D extends IBarLineScatte
82
82
83
83
protected mClipValuesToContent = false ;
84
84
85
+ protected mClipDataToContent = false ;
86
+
85
87
protected mDrawHighlight = true ;
86
88
87
89
/**
@@ -209,9 +211,13 @@ export abstract class BarLineChartBase<U extends Entry, D extends IBarLineScatte
209
211
if ( rightLimitEnabled && this . mAxisRight . isDrawLimitLinesBehindDataEnabled ( ) ) this . mAxisRendererRight . renderLimitLines ( canvas ) ;
210
212
211
213
// make sure the data cannot be drawn outside the content-rect
212
- let clipRestoreCount = canvas . save ( ) ;
213
- canvas . clipRect ( this . mViewPortHandler . getContentRect ( ) ) ;
214
- this . mRenderer . drawData ( canvas ) ;
214
+ if ( this . isClipDataToContentEnabled ( ) ) {
215
+ canvas . save ( ) ;
216
+ canvas . clipRect ( this . mViewPortHandler . getContentRect ( ) ) ;
217
+ this . mRenderer . drawData ( canvas ) ;
218
+ } else {
219
+ this . mRenderer . drawData ( canvas ) ;
220
+ }
215
221
216
222
if ( ! this . mXAxis . isDrawGridLinesBehindDataEnabled ( ) ) this . mXAxisRenderer . renderGridLines ( canvas ) ;
217
223
@@ -225,7 +231,9 @@ export abstract class BarLineChartBase<U extends Entry, D extends IBarLineScatte
225
231
}
226
232
227
233
// Removes clipping rectangle
228
- canvas . restoreToCount ( clipRestoreCount ) ;
234
+ if ( this . isClipDataToContentEnabled ( ) ) {
235
+ canvas . restore ( ) ;
236
+ }
229
237
230
238
this . mRenderer . drawExtras ( canvas ) ;
231
239
@@ -240,12 +248,11 @@ export abstract class BarLineChartBase<U extends Entry, D extends IBarLineScatte
240
248
this . mAxisRendererRight . renderAxisLabels ( canvas ) ;
241
249
242
250
if ( this . isClipValuesToContentEnabled ( ) ) {
243
- clipRestoreCount = canvas . save ( ) ;
251
+ canvas . save ( ) ;
244
252
canvas . clipRect ( this . mViewPortHandler . getContentRect ( ) ) ;
245
253
246
254
this . mRenderer . drawValues ( canvas ) ;
247
255
248
- // canvas.restoreToCount(clipRestoreCount);
249
256
canvas . restore ( ) ;
250
257
} else {
251
258
this . mRenderer . drawValues ( canvas ) ;
@@ -1207,6 +1214,26 @@ export abstract class BarLineChartBase<U extends Entry, D extends IBarLineScatte
1207
1214
return this . mClipValuesToContent ;
1208
1215
}
1209
1216
1217
+ /**
1218
+ * When enabled, the data will be clipped to contentRect,
1219
+ * otherwise they can bleed outside the content rect.
1220
+ *
1221
+ * @param enabled
1222
+ */
1223
+ public setClipDataToContent ( enabled ) {
1224
+ this . mClipDataToContent = enabled ;
1225
+ }
1226
+
1227
+ /**
1228
+ * When enabled, the data will be clipped to contentRect,
1229
+ * otherwise they can bleed outside the content rect.
1230
+ *
1231
+ * @return
1232
+ */
1233
+ public isClipDataToContentEnabled ( ) {
1234
+ return this . mClipDataToContent ;
1235
+ }
1236
+
1210
1237
public setDrawHighlight ( enabled ) {
1211
1238
this . mDrawHighlight = enabled ;
1212
1239
}
0 commit comments