diff --git a/examples/minimalMilkdrop/index.html b/examples/minimalMilkdrop/index.html
index c2112c44..e7d0d865 100755
--- a/examples/minimalMilkdrop/index.html
+++ b/examples/minimalMilkdrop/index.html
@@ -75,6 +75,7 @@
return { name, butterchurnPresetObject: preset };
});
},
+ butterchurnOpen: true,
},
windowLayout: {
main: { position: { top: 0, left: 0 } },
diff --git a/packages/webamp/demo/js/butterchurnOptions.ts b/packages/webamp/demo/js/butterchurnOptions.ts
index db2966b2..47473759 100644
--- a/packages/webamp/demo/js/butterchurnOptions.ts
+++ b/packages/webamp/demo/js/butterchurnOptions.ts
@@ -99,5 +99,6 @@ export function getButterchurnOptions(
return { name, butterchurnPresetObject: preset as Object };
});
},
+ butterchurnOpen: !startWithMilkdropHidden,
};
}
diff --git a/packages/webamp/demo/js/eventLogger.ts b/packages/webamp/demo/js/eventLogger.ts
index 65d2c047..cc590e7a 100644
--- a/packages/webamp/demo/js/eventLogger.ts
+++ b/packages/webamp/demo/js/eventLogger.ts
@@ -59,6 +59,8 @@ function logEventFromAction(action: Action): GoogleAnalyticsEvent | null {
return { category: "Playlist", action: "ReverseList" };
case "RANDOMIZE_LIST":
return { category: "Playlist", action: "RandomizeList" };
+ case "ENABLE_MILKDROP":
+ return { category: "Windows", action: "EnableMilkdrop" };
case "TOGGLE_WINDOW_SHADE_MODE":
return {
category: "Windows",
diff --git a/packages/webamp/js/actionTypes.ts b/packages/webamp/js/actionTypes.ts
index 0f3a8ee6..a0fca6f3 100644
--- a/packages/webamp/js/actionTypes.ts
+++ b/packages/webamp/js/actionTypes.ts
@@ -72,6 +72,7 @@ export const LOAD_SERIALIZED_STATE = "LOAD_SERIALIZED_STATE";
export const RESET_WINDOW_SIZES = "RESET_WINDOW_SIZES";
export const BROWSER_WINDOW_SIZE_CHANGED = "BROWSER_WINDOW_SIZE_CHANGED";
export const LOAD_DEFAULT_SKIN = "LOAD_DEFAULT_SKIN";
+export const ENABLE_MILKDROP = "ENABLE_MILKDROP";
export const SET_MILKDROP_DESKTOP = "SET_MILKDROP_DESKTOP";
export const SET_VISUALIZER_STYLE = "SET_VISUALIZER_STYLE";
export const GOT_BUTTERCHURN_PRESETS = "GOT_BUTTERCHURN_PRESETS";
diff --git a/packages/webamp/js/reducers/windows.ts b/packages/webamp/js/reducers/windows.ts
index 16fe35f9..faaae023 100644
--- a/packages/webamp/js/reducers/windows.ts
+++ b/packages/webamp/js/reducers/windows.ts
@@ -10,6 +10,7 @@ import {
LOAD_SERIALIZED_STATE,
BROWSER_WINDOW_SIZE_CHANGED,
RESET_WINDOW_SIZES,
+ ENABLE_MILKDROP,
} from "../actionTypes";
import * as Utils from "../utils";
import { WindowsSerializedStateV1 } from "../serializedStates/v1Types";
@@ -82,7 +83,7 @@ const defaultWindowsState: WindowsState = {
[WINDOWS.MILKDROP]: {
title: "Milkdrop",
size: [0, 0],
- open: true,
+ open: false,
shade: false,
canResize: true,
canShade: false,
@@ -104,6 +105,17 @@ const windows = (
action: Action
): WindowsState => {
switch (action.type) {
+ case ENABLE_MILKDROP:
+ return {
+ ...state,
+ genWindows: {
+ ...state.genWindows,
+ [WINDOWS.MILKDROP]: {
+ ...state.genWindows[WINDOWS.MILKDROP],
+ open: action.open,
+ },
+ },
+ };
case SET_FOCUSED_WINDOW:
let windowOrder = state.windowOrder;
if (action.window != null) {
diff --git a/packages/webamp/js/types.ts b/packages/webamp/js/types.ts
index aa4f7747..e0d41fa9 100644
--- a/packages/webamp/js/types.ts
+++ b/packages/webamp/js/types.ts
@@ -193,6 +193,7 @@ export interface ButterchurnOptions {
convertPreset(file: string, endpoint: string): Promise