From 5d0fe72f8bce85cc2870c7dcea644499a5a808f1 Mon Sep 17 00:00:00 2001 From: Paul Kaplan <pkaplan@media.mit.edu> Date: Wed, 16 May 2018 11:09:48 -0400 Subject: [PATCH] Make monitors position correctly in fullscreen --- src/components/monitor-list/monitor-list.css | 7 ++- src/components/monitor-list/monitor-list.jsx | 50 +++++++++++-------- .../monitor/list-monitor-scroller.jsx | 2 +- src/components/monitor/monitor.css | 1 + 4 files changed, 36 insertions(+), 24 deletions(-) diff --git a/src/components/monitor-list/monitor-list.css b/src/components/monitor-list/monitor-list.css index c5fad0b64..272fb28a6 100644 --- a/src/components/monitor-list/monitor-list.css +++ b/src/components/monitor-list/monitor-list.css @@ -1,7 +1,10 @@ .monitor-list { - width: 100%; - height: 100%; + /* Width/height are set by the component, margin: auto centers in fullscreen */ + margin: auto; pointer-events: none; +} + +.monitor-list-scaler { /* Scaling for monitors should happen from the top left */ transform-origin: left top; } diff --git a/src/components/monitor-list/monitor-list.jsx b/src/components/monitor-list/monitor-list.jsx index d229b3b29..e9caf7dd6 100644 --- a/src/components/monitor-list/monitor-list.jsx +++ b/src/components/monitor-list/monitor-list.jsx @@ -18,29 +18,37 @@ const MonitorList = props => ( // Use static `monitor-overlay` class for bounds of draggables className={classNames(styles.monitorList, 'monitor-overlay')} style={{ - transform: stageSizeToTransform(props.stageSize) + width: props.stageSize.width, + height: props.stageSize.height }} > - {props.monitors.valueSeq().filter(m => m.visible) - .map(monitorData => ( - <Monitor - height={monitorData.height} - id={monitorData.id} - key={monitorData.id} - max={monitorData.sliderMax} - min={monitorData.sliderMin} - mode={monitorData.mode} - opcode={monitorData.opcode} - params={monitorData.params} - spriteName={monitorData.spriteName} - targetId={monitorData.targetId} - value={monitorData.value} - width={monitorData.width} - x={monitorData.x} - y={monitorData.y} - onDragEnd={props.onMonitorChange} - /> - ))} + <Box + className={styles.monitorListScaler} + style={{ + transform: stageSizeToTransform(props.stageSize) + }} + > + {props.monitors.valueSeq().filter(m => m.visible) + .map(monitorData => ( + <Monitor + height={monitorData.height} + id={monitorData.id} + key={monitorData.id} + max={monitorData.sliderMax} + min={monitorData.sliderMin} + mode={monitorData.mode} + opcode={monitorData.opcode} + params={monitorData.params} + spriteName={monitorData.spriteName} + targetId={monitorData.targetId} + value={monitorData.value} + width={monitorData.width} + x={monitorData.x} + y={monitorData.y} + onDragEnd={props.onMonitorChange} + /> + ))} + </Box> </Box> ); diff --git a/src/components/monitor/list-monitor-scroller.jsx b/src/components/monitor/list-monitor-scroller.jsx index fd6da9bab..9fdf38ffd 100644 --- a/src/components/monitor/list-monitor-scroller.jsx +++ b/src/components/monitor/list-monitor-scroller.jsx @@ -20,7 +20,7 @@ class ListMonitorScroller extends React.Component { } noRowsRenderer () { return ( - <div className={styles.listEmpty}> + <div className={classNames(styles.listRow, styles.listEmpty)}> {'(empty)' /* TODO waiting for design before translation */} </div> ); diff --git a/src/components/monitor/monitor.css b/src/components/monitor/monitor.css index 885679979..40db37cd1 100644 --- a/src/components/monitor/monitor.css +++ b/src/components/monitor/monitor.css @@ -138,6 +138,7 @@ .value-inner { padding: 3px 5px; min-height: 22px; + overflow: hidden; /* Don't let long values escape container */ } .list-input { -- GitLab