Window: fix some regressions caused by decorView

The window background is now set on the decorView and also
window.set_widget_as_root() must now be called manually.
This commit is contained in:
Julian Winkler
2024-12-11 21:42:22 +01:00
committed by Mis012
parent db1e9458de
commit b9272aa150
2 changed files with 4 additions and 10 deletions

View File

@@ -172,8 +172,7 @@ public class Activity extends ContextThemeWrapper implements Window.Callback {
protected void onStart() { protected void onStart() {
Slog.i(TAG, "- onStart - yay!"); Slog.i(TAG, "- onStart - yay!");
if (window.contentView != null) window.set_widget_as_root(window.native_window, window.getDecorView().widget);
window.setContentView(window.contentView);
window.setTitle(title); window.setTitle(title);
for (Fragment fragment : fragments) { for (Fragment fragment : fragments) {
@@ -284,9 +283,7 @@ public class Activity extends ContextThemeWrapper implements Window.Callback {
public <T extends android.view.View> T findViewById(int id) { public <T extends android.view.View> T findViewById(int id) {
System.out.printf(TAG, "- findViewById - asked for view with id: %x\n", id); System.out.printf(TAG, "- findViewById - asked for view with id: %x\n", id);
View view = null; View view = window.findViewById(id);
if (window.contentView != null)
view = window.contentView.findViewById(id);
Slog.i(TAG, "- findViewById - found this: " + view); Slog.i(TAG, "- findViewById - found this: " + view);
return (T)view; return (T)view;

View File

@@ -26,7 +26,6 @@ public class Window {
} }
public long native_window; public long native_window;
public View contentView;
private ViewGroup decorView; private ViewGroup decorView;
private Window.Callback callback; private Window.Callback callback;
@@ -63,7 +62,7 @@ public class Window {
return decorView; return decorView;
} }
private native void set_widget_as_root(long native_window, long widget); public native void set_widget_as_root(long native_window, long widget);
private native void set_title(long native_window, String title); private native void set_title(long native_window, String title);
public native void take_input_queue(long native_window, InputQueue.Callback callback, InputQueue queue); public native void take_input_queue(long native_window, InputQueue.Callback callback, InputQueue queue);
@@ -89,9 +88,7 @@ public class Window {
} }
public void setBackgroundDrawable(Drawable drawable) { public void setBackgroundDrawable(Drawable drawable) {
/* TODO: should this be *under* the contentView background? */ decorView.setBackgroundDrawable(drawable);
if (contentView != null)
contentView.setBackgroundDrawable(drawable);
} }
public void setAttributes(WindowManager.LayoutParams params) {} public void setAttributes(WindowManager.LayoutParams params) {}