Commit 51a07ade2897953111fc11daebd74567799fe66a

Philipp Wiesemann 2014-09-25T20:56:27

Fixed broken layout for buttons with configured color in messagebox on Android.

diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java
index 950cd43..c3e0a87 100644
--- a/android-project/src/org/libsdl/app/SDLActivity.java
+++ b/android-project/src/org/libsdl/app/SDLActivity.java
@@ -24,6 +24,7 @@ import android.os.*;
 import android.util.Log;
 import android.util.SparseArray;
 import android.graphics.*;
+import android.graphics.drawable.Drawable;
 import android.media.*;
 import android.hardware.*;
 
@@ -748,7 +749,14 @@ public class SDLActivity extends Activity {
                 // TODO set color for border of messagebox button
             }
             if (buttonBackgroundColor != Color.TRANSPARENT) {
-                button.setBackgroundColor(buttonBackgroundColor);
+                Drawable drawable = button.getBackground();
+                if (drawable == null) {
+                    // setting the color this way removes the style
+                    button.setBackgroundColor(buttonBackgroundColor);
+                } else {
+                    // setting the color this way keeps the style (gradient, padding, etc.)
+                    drawable.setColorFilter(buttonBackgroundColor, PorterDuff.Mode.MULTIPLY);
+                }
             }
             if (buttonSelectedColor != Color.TRANSPARENT) {
                 // TODO set color for selected messagebox button