You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
GskCanavas: draw default content when custom View calls super.onDraw()
This commit is contained in:
@@ -5,7 +5,7 @@ package android.graphics;
|
||||
* - implements Canvas for onscreen rendering inside GTKs snapshot function
|
||||
*/
|
||||
public class GskCanvas extends Canvas {
|
||||
private long snapshot;
|
||||
public long snapshot;
|
||||
private int save_count = 0;
|
||||
|
||||
public GskCanvas(long snapshot) {
|
||||
|
||||
@@ -17,6 +17,7 @@ import android.content.res.Resources.Theme;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.ColorFilter;
|
||||
import android.graphics.GskCanvas;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.PorterDuffColorFilter;
|
||||
import android.graphics.Rect;
|
||||
@@ -74,7 +75,10 @@ public class Drawable {
|
||||
return mBounds;
|
||||
}
|
||||
|
||||
public void draw(Canvas canvas) {}
|
||||
public void draw(Canvas canvas) {
|
||||
if (canvas instanceof GskCanvas)
|
||||
native_draw(paintable, ((GskCanvas)canvas).snapshot, mBounds.width(), mBounds.height());
|
||||
}
|
||||
|
||||
public boolean setState(int[] stateSet) {
|
||||
if (!Arrays.equals(this.mStateSet, stateSet)) {
|
||||
@@ -261,4 +265,5 @@ public class Drawable {
|
||||
protected static native long native_paintable_from_path(String path);
|
||||
protected native long native_constructor();
|
||||
protected native void native_invalidate(long paintable);
|
||||
protected native void native_draw(long paintable, long snapshot, int width, int height);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import android.content.res.ColorStateList;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.GskCanvas;
|
||||
import android.graphics.Matrix;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Rect;
|
||||
@@ -899,7 +900,11 @@ public class View implements Drawable.Callback {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void onDraw(Canvas canvas) {}
|
||||
protected native void native_onDraw(long widget, long snapshot);
|
||||
public void onDraw(Canvas canvas) {
|
||||
if (canvas instanceof GskCanvas)
|
||||
native_onDraw(widget, ((GskCanvas)canvas).snapshot);
|
||||
}
|
||||
public void draw(Canvas canvas) {
|
||||
onDraw(canvas);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user