View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0017110 | MMW 5 | Other | public | 2020-11-18 20:53 | 2020-11-21 21:49 |
Reporter | drakinite | Assigned To | |||
Priority | high | Severity | tweak | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | Windows | OS | - | OS Version | 10 |
Fixed in Version | 5.0 | ||||
Summary | 0017110: Fix for dlgTrackInfo artwork thumbnail sizing + positioning | ||||
Description | Track info dialogs have an incorrect size (Set based on raw pixel values, ignoring the size of the dialog itself), causing mismatching borders. Detailed explanation here: https://www.mediamonkey.com/forum/viewtopic.php?p=474820#p474820 | ||||
Additional Information | Tweaked files with fix are attached. | ||||
Tags | No tags attached. | ||||
Attached Files | dlgTrackInfo.js (7,920 bytes)
/* '(C) Ventis Media, Licensed under the Ventis Limited Reciprocal License - see: license.txt for details' */ "use strict"; var _widthEm = 30; // in em var _heightEm = 9.5; // in em var _width; // in px var _height; // in px var _opacity; var initOpacity = 100; var opacityStepSize = 1; var opacityStepDuration = 20; var _timeout; var _settingsChangeRegistered = false; var _params; var _hideTimeout; var lastCoverPath; function init(params) { resizeable = false; _params = params || {}; _width = emToPx(_widthEm); _height = emToPx(_heightEm); if (_params.width) _width = resolveToValue(_params.width, _width); if (_params.height) _height = resolveToValue(_params.height, _height); loadFromSettings(); } function loadFromSettings() { var sett = window.settings.get('Options'); var screen = app.utils.getMainMonitorInfo(); var _left = Math.floor((screen.availLeft + Math.floor((sett.InfoPopUp.Horizontal / 100) * (screen.availWidth - _width)))); var _top = Math.floor((screen.availTop + Math.floor((sett.InfoPopUp.Vertical / 100) * (screen.availHeight - _height)))); if (!_width || !_height || isNaN(_left) || isNaN(_top)) { return; } //For users that are concerned with processing/battery power (On my computer, a stepSize of 1 did NOT have significant CPU usage, however) if (sett.InfoPopUp.LessSmooth == true) opacityStepSize = 4; if (sett.InfoPopUp.FadeTime) { //For fade time under 10ms, make it disappear immediately if (sett.InfoPopUp.FadeTime < 10) opacityStepSize = 100; //For fade time under 1 second, increase opacity step size to save processing power else if (sett.InfoPopUp.FadeTime < 1000) { opacityStepSize = (sett.InfoPopUp.LessSmooth == true) ? 10 : 4; } //Calculate stepDuration based on fadeTime and the previously set opacityStepSize opacityStepDuration = Math.floor( sett.InfoPopUp.FadeTime * opacityStepSize * 0.01 ); } //console.log(`_left=${_left} _top=${_top} _width=${_width} _height=${_height}`); _timeout = sett.InfoPopUp.ShowTime; initOpacity = sett.InfoPopUp.Opacity; setBounds(_left, _top, _width, _height); if (!_params.ignoreSettings) { _opacity = sett.InfoPopUp.Opacity; window.opacity = _opacity; } } function showTrackInfo(params) { params = params || _params || {}; if (_hideTimeout) { clearTimeout(_hideTimeout); _hideTimeout = undefined; } _opacity = initOpacity; window.opacity = initOpacity; var thumbSize = 10 * Math.round(emToPx(12) / 10); var unknownAAWidth = 10 * Math.round(emToPx(7) / 10); if (!_settingsChangeRegistered && !params.ignoreSettings) { _settingsChangeRegistered = true; window.localListen(window.settings.observer, 'change', loadFromSettings); } var sd = params.sd || app.player.getFastCurrentTrack(sd); if (!sd) { ODS('*** dlgTrackInfo init - no SD'); //closeWindow(); return false; } var titleEl = qid('title'); var artistEl = qid('artist'); var albumEl = qid('album'); var artworkEl = qid('artwork'); var unknownAAEl = qid('unknownAA'); var ready = false; var applyCover = function (path) { lastCoverPath = path; if (path && (path !== '-')) { artworkEl.src = path; setVisibility(artworkEl, true); setVisibility(unknownAAEl, false); ready = true; } else { setVisibility(artworkEl, false); setVisibility(unknownAAEl, true); } }; titleEl.innerText = sd.title; artistEl.innerText = sd.artist; albumEl.innerText = sd.album; unknownAAEl.style.width = unknownAAWidth + 'px'; //unknownAAEl.style.height = thumbSize + 'px'; //artworkEl.style.width = thumbSize + 'px'; //artworkEl.style.height = thumbSize + 'px'; if (sd.getCachedThumb) { var path = sd.getCachedThumb(thumbSize, thumbSize); if (lastCoverPath !== path) { applyCover(path); } else ready = true; } if (!ready && sd.getThumbAsync) { sd.getThumbAsync(thumbSize, thumbSize, function (path) { if (window._cleanUpCalled) return; if (path && (path !== '-')) applyCover(path); else { // try to found picture for album if (sd.idalbum > 0) { app.getObject('album', { id: sd.idalbum, name: sd.album, artist: sd.albumArtist || sd.artist, canCreateNew: false }).then(function (album) { if (album) album.getThumbAsync(thumbSize, thumbSize, function (path) { applyCover(path); }); }); }; } }); } if (!ready) { setVisibility(artworkEl, false); setVisibility(unknownAAEl, true); } var _hidingcalled = false; var _mouseIn = false; //callSlowHide is now only called once var callSlowHide = function (time) { //clear any already-existing timeouts to slowHide clearTimeout(_hideTimeout); _hidingcalled = true; _hideTimeout = requestTimeout(doSlowHide, time); } var doSlowHide = function () { _hideTimeout = undefined; if (_mouseIn) { return; } _opacity -= opacityStepSize; if (_opacity <= 0) { //_hidingcalled is set to false here instead of at the top _hidingcalled = false; hide(); } else { window.opacity = _opacity; _hideTimeout = requestTimeout(doSlowHide, opacityStepDuration); } } var handleMouseOver = function (evt) { var b = window.bounds.windowRect; if ((evt.screenX > b.left) && (evt.screenX < b.right) && (evt.screenY > b.top) && (evt.screenY < b.bottom)) { var sett = window.settings.get('Options'); _mouseIn = true; _opacity = sett.InfoPopUp.Opacity; window.opacity = _opacity; } else { _mouseIn = false; } }.bind(this); var handleMouseOut = function (evt) { var b = window.bounds.windowRect; if ((evt.screenX > b.left) && (evt.screenX < b.right) && (evt.screenY > b.top) && (evt.screenY < b.bottom)) { _mouseIn = true; } else { _mouseIn = false; if (!_hidingcalled) callSlowHide(_timeout); } }.bind(this); var handleMouseClick = function () { //set opacity to 0 to end the doSlowHide loop _opacity = 0; hide(); }.bind(this); if (!params.disableAutoHide) { window.localListen(document.body, 'mouseover', handleMouseOver); window.localListen(document.body, 'mouseout', handleMouseOut); window.localListen(document.body, 'click', handleMouseClick); //Added check for hidingcalled if (!_hidingcalled) callSlowHide(_timeout); } if (!visible) { show(); } }; function setPos(x, y) { //ODS('--- set pos ' + x + ', ' + y); var screen = app.utils.getMainMonitorInfo(); window.bounds.left = screen.availLeft + Math.floor((x / 100) * (screen.availWidth - _width)); window.bounds.top = screen.availTop + Math.floor((y / 100) * (screen.availHeight - _height)); } dlgTrackInfo.html (1,066 bytes)
<!-- '(C) Ventis Media, Licensed under the Ventis Limited Reciprocal License - see: license.txt for details' --> <html> <link rel="stylesheet" href="dlgMessage.css" type="text/css" /> <script src="file:///mminit.js"></script> <script src="dlgTrackInfo.js" type="text/javascript"></script> <body class="dialog"> <div class="fill border"> <div class="innerDlg"> <div class="flex row" style="height: 100%;"> <div data-id="unknownAA" class="largeIconColor dlgArtwork" data-icon="unknownAA"></div> <img data-id="artwork" class="dlgArtwork"> <div class="paddingColumn dynamicShrink"> <h3 class="textEllipsis"><label data-id="title"> </label></h3> <label data-id="artist" class="uiRow"> </label> <br> <label data-id="album" class="uiRow"> </label> </div> </div> </div> </div> </body> </html> skin_layout.less (20,044 bytes)
/* '(C) Ventis Media, Licensed under the Ventis Limited Reciprocal License - see: license.txt for details' */ @units0_05: round(@fontSize*0.05); @units0_1: round(@fontSize*0.1); @units0_125: round(@fontSize*0.125); @units0_15: round(@fontSize*0.15); @units0_2: round(@fontSize*0.2); @units0_25: round(@fontSize*0.25); @units0_3: round(@fontSize*0.3); @units0_4: round(@fontSize*0.4); @units0_5: round(@fontSize*0.5); @units0_6: round(@fontSize*0.6); @units0_7: round(@fontSize*0.7); @units0_75: round(@fontSize*0.75); @units0_8: round(@fontSize*0.8); @units0_9: round(@fontSize*0.9); @units1_0: @fontSize; @units1_1: round(@fontSize*1.1); @units1_2: round(@fontSize*1.2); @units1_3: round(@fontSize*1.3); @units1_4: round(@fontSize*1.4); @units1_5: round(@fontSize*1.5); @units1_6: round(@fontSize*1.6); @units1_7: round(@fontSize*1.7); @units1_8: round(@fontSize*1.8); @units1_9: round(@fontSize*1.9); @units2_0: round(@fontSize*2.0); @units2_1: round(@fontSize*2.1); @units2_2: round(@fontSize*2.2); @units2_3: round(@fontSize*2.3); @units2_4: round(@fontSize*2.4); @units2_5: round(@fontSize*2.5); @units2_6: round(@fontSize*2.6); @units2_7: round(@fontSize*2.7); @units2_8: round(@fontSize*2.8); @units2_9: round(@fontSize*2.9); @units3_0: round(@fontSize*3.0); @units3_5: round(@fontSize*3.5); @units4_0: round(@fontSize*4.0); @units5_0: round(@fontSize*5.0); @units6_0: round(@fontSize*6.0); @units7_0: round(@fontSize*7.0); @units8_0: round(@fontSize*8.0); @units9_0: round(@fontSize*9.0); @units10_0: round(@fontSize*10.0); @units12_0: round(@fontSize*12.0); @units16_0: round(@fontSize*16.0); @horizontalResizeSize: 5px; .relativeBase { position: relative; } .flex { display: flex; align-items: stretch; align-content: stretch; } .flex.column { flex-flow: column; } .flex.row { flex-flow: row; } .flex.row_wrap { flex-flow: row wrap; } .flex.right, .flex.bottom { justify-content: flex-end; } .flex.left, .flex.top { justify-content: flex-start; } .flexcenter { justify-content: center; } .flex .center { align-self: center; } .flex > .fill { flex: 10 10 auto; position: relative; min-width: 0px; // needed for correct text stretching min-height: 0px; } .flex > .dynamic { flex: 1 1 auto; position: relative; min-width: 0px; // needed for correct text stretching min-height: 0px; } .flex.sameSize > * { flex: 1 1 auto; position: relative; min-width: 0px; // needed for correct text stretching min-height: 0px; flex-basis: 1px; // all same bases = same with } .flex > .dynamicShrink { flex: 0 1 auto; position: relative; min-width: 0px; // needed for correct text stretching min-height: 0px; } .flex > .static { flex: 0 0 auto; position: relative; } .flex > * { flex: 0 0 auto; position: relative; } .flex > .autoMinHeight { min-height: auto; } .flex > .autoMinWidth { min-width: auto; } .verticalBaseline { align-items: baseline; vertical-align: baseline; } .verticalCenter { align-items: center; vertical-align: middle; } .verticalTop { vertical-align: top; } .verticalTextTop { vertical-align: text-top; } .verticalTextBottom { vertical-align: text-bottom; } .flex.row > .verticalCenter { align-self: center; } .fill { position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px; margin: 0; } .allinside { max-width: 100%; max-height: 100%; } .autosize { width: auto; height: auto; } .nonTransparent { background-color: @baseColor; } .layer { position: absolute !important; top: 0px; left: 0px; .nonTransparent; // so that layer is not transparent (e.g. when zoom in a new view i.e. albums -> album) } .scrollable { overflow: auto; } .stretchWidth { width: 100%; } .stretchHeight { height: 100%; } .hSeparator { margin-bottom: @units1_5; } .hSeparatorLine { margin-top: 10; margin-bottom: 10; margin-right: 10; margin-left: 10; opacity: 0.5; .borderBottom; } tr.hSeparator > td { padding-bottom: @units1_5; } .hSeparatorTiny { margin-bottom: @units0_5; } tr.hSeparatorTiny > td { padding-bottom: @units0_5; } .hSeparatorsTiny > * { .hSeparatorTiny; } .vSeparator { margin-right: @units1_0; } td.vSeparator { padding-right: @units1_0; } .vSeparatorTiny { margin-right: @units0_5; } td.vSeparatorTiny { padding-right: @units0_5; } .vSeparatorsTiny > * { .vSeparatorTiny; } .verticalPanel { width: round(@fontSize*23.0); } .verticalPanelNarrow { width: round(@fontSize*17.0); } .wideControl, .flex > .wideControl { min-width: round(@fontSize*23.0); } .middleControl, .flex > .middleControl { min-width: round(@fontSize*14.0); } .narrowControl, .flex > .narrowControl { min-width: round(@fontSize*6.0); } .thinControl { width: @units5_0; } .highControl, .flex > .highControl { min-height: round(@fontSize*20.0); } .flex.hasSplitters > .onlyStaticVisible { flex-grow: 1; } .flex.column.hasSplitters > .initialSize { height: @units5_0; } .flex.row.hasSplitters > .initialSize { width: @units5_0; } .nonGreedy { display: inline-block; } .inline { display: inline-block; } .inlineText { display: inline; } .innerDlg { display: block; padding: 10px; } .innerDlg .dlgArtwork { height: ~"calc(100% - 20px)"; } .dockedDialog { .topmost; opacity: 1; z-index: 2147483647; } .dimmedBackground { background-color: black; opacity: 0.8; z-index: 2147483647; } .dimmedBackground label { color: white; } .dimmedWindow { .layer; .fill; .dimmedBackground; opacity: 0.5; } .grindEdge { border-radius: @borderRadius; } // Border definitions .border { border-color: @borderColor; border-width: @borderWidth; border-style: @borderStyle; } .noBorder { border-width: 0 !important; } .borderTop { border-color: @borderColor; border-width: @borderWidth; border-top-style: @borderStyle; } .borderBottom { border-color: @borderColor; border-width: @borderWidth; border-bottom-style: @borderStyle; } // Padding definitions @padding: @units0_5; @paddingLarge: @units1_0; .padding { padding: @padding; } .noLeftPadding { padding-left: 0px; } .paddingSmall { padding: @units0_15; } .paddingLarge { padding: @paddingLarge; } .paddingTopLarge { padding-top: @paddingLarge; } .paddingLeft { padding-left: @padding; } .paddingLeftLarge { padding-left: @paddingLarge; } .paddingTop { padding-top: @padding; } .paddingRight { padding-right: @padding; } .paddingSides { .paddingLeft; .paddingRight; } .paddingBottom { padding-bottom: @padding; } .paddingBottomLarge { padding-bottom: @paddingLarge; } .paddingColumn { .paddingLeft; .paddingRight; } .paddingRow { .paddingTop; .paddingBottom; } .paddingRowSmall { padding-top: 5px; padding-bottom: 5px; } .paddingRowTiny { padding-top: 2px; padding-bottom: 2px; } .paddingNoLeft { .paddingRight; .paddingTop; .paddingBottom; } .paddingColumnSmall { padding-left: 5px; padding-right: 5px; } .innerDlg ul { list-style: none; margin: 0px; padding: 0px; } .left-indent-small { margin-left: @units0_5; } .left-indent { margin-left: 25px; } .left-indent2 { margin-left: 50px; } .slightlytransparent { opacity: 0.8; } .semitransparent { opacity: 0.5; } .transparent { opacity: 0; } .dialog { } label, input, textarea, table, td, tr, select { font-family: inherit; font-size: inherit; color: inherit; &[data-disabled] { color: @disabledColor; } } .alignright { position: absolute; right: 0px; } .alignbottom { position: absolute; bottom: 0px; } .fillHeight { top: 0px; bottom: 0px; } .fillWidth { left: 0px; right: 0px; } .noWrap { white-space: nowrap; } label,h1,h2,h3,h4 { .noWrap; .labelLeftPadding; .labelRightPadding; } .labelRightPadding { padding-right: @units0_3; } .labelLeftPadding { padding-left: @units0_3; } .noLeftPadding.labelLeftPadding { padding-left: 0; } .box { display: block; } .noStretch { white-space: nowrap; } td.noStretch { width:1%; } .alignBottom { vertical-align: bottom; } table { width: 100%; } table.innerTable { border-collapse:collapse; } table.innerTable td { padding: 0px; } table.innerTableMultiLine { border-collapse:collapse; } table.innerTableMultiLine td { padding-left: 0px; padding-right: 0px; padding-top: 2px; padding-bottom: 2px; } table.innerTableMultiLine tr:first-child td { padding-top: 0px; } table.innerTableMultiLine tr:last-child td { padding-bottom: 0px; } .uiRow { line-height: @rowHeight; .verticalBaseline; } .uiRowCenter { line-height: @rowHeight; .verticalCenter; } .uiRows > * { .uiRow; } .uiRow .button, .uiRowCenter .button { .rowButton; } .uiRows .button { .rowButton; } .clrWarning { color: @warningColor; } svg .clrWarning, svg.clrWarning { fill: @warningColor; } .clrInfo { color: @infoColor; } svg .clrInfo, svg.clrInfo { fill: @infoColor; } .clrError { color: @errorColor; } svg .clrError, svg.clrError { fill: @errorColor; } .cellBase, .bgColorBase { background-color: @baseColor; } .cellWarning, .bgColorWarning { background-color: @warningBgColor; } .cellError, .bgColorError { background-color: @errorBgColor; } .cellSelected, .bgColorSelected { background-color: @selectedColor; } .cellHighlight, .bgColorHighlight { background-color: @highlightBgColor; } .cellDisabled, .bgColorDisabled { background-color: @disabledBgColor; } .innerWindow { position: fixed; z-index: 2147483646; overflow: hidden; background: @baseColor; } hr.separator { border-color: lighten(@controlColor, 10%); } .textCenter { text-align: center; } .textRight { text-align: right; } .textWrap { white-space: normal !important; padding-left: 0 !important; } .textEllipsis { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .smallText { font-size: @fontSizeSmaller; } .slightlyLargerText { font-size: @fontSizeSlightlyLarger; } .largeText { font-size: @fontSizeLarger; } .unimportantText { .smallText; opacity: 0.8; } .slopingText { transform: rotate(-45deg); transform-origin: center; transform-style: preserve-3d; } .textOther { font-style: italic; } .textHighlight { color: @highlightColor; } .underscoredText { text-decoration: underline; } .sectionHeader { font-weight: bold; } .topmost { position: absolute; z-index: 2147483647; } .behind { z-index: -1; } .inFront { position: absolute; z-index: 1; } .globalResizeVertical { cursor: ns-resize; } .resizeVertical { .globalResizeVertical; height: 5px; bottom: -3px; left: 0px; right: 0px; position: absolute; overflow: visible; } .resizeVertical.splitterOpposite { bottom: auto; top: -3px; } .globalResizeHorizontal { cursor: ew-resize; } .resizeHorizontal { .globalResizeHorizontal; width: @horizontalResizeSize; right: -3px; top: 0px; bottom: 0px; position: absolute; overflow: visible; z-index: 2; } .resizeHorizontal.splitterOpposite { right: auto; left: -3px; } .hoverHeader { position: absolute; top: @units0_15; right: @units0_15; width: @units1_1; height: @units1_1; opacity: 0.6; fill: @textColor; z-index: 999; } .splitter { align-self: stretch; flex: 0 0 @defaultMargin; z-index: 999999; } .flex.column > .splitter { .globalResizeVertical; min-height: @defaultMargin; max-height: @defaultMargin; } .flex.row > .splitter { .globalResizeHorizontal; min-width: @defaultMargin; max-width: @defaultMargin; } // Margins definitions @marginLarge: 2*@defaultMargin; @marginSmall: @defaultMargin/3; .margins { margin: @defaultMargin; } .marginsColumn { margin-top: @defaultMargin; margin-bottom: @defaultMargin; } .marginsRow { margin-left: @defaultMargin; margin-right: @defaultMargin; } .marginTop { margin-top: @defaultMargin; } .marginTopSmall { margin-top: @marginSmall; } .marginTopLarge { margin-top: @marginLarge; } .marginBottomLarge { margin-bottom: @marginLarge; } .marginLarge { margin: @marginLarge; } .marginBottom { margin-bottom: @defaultMargin; } .marginLeftSmall { margin-left: round(@defaultMargin*0.4);//0.2em; } .autoMargin { margin: auto; } .autoMarginLeft { margin-left: auto; } .autoMarginRight { margin-right: auto; } .noMargin { margin: 0px; } .noOverflow { overflow: hidden; } .noresize { resize: none; overflow-y: auto; } .hoverHighlight { &:hover { color: @highlightColor; fill: @highlightColor; } } .clickable { &:not([data-disabled]) { cursor: pointer; .hoverHighlight; } } .clickableLabel { .clickable; } * [data-keyfocused]:not { outline: none !important; box-shadow: none; } * [data-keyfocused] { outline: @textColor dashed 1px !important; outline-offset: -2px; box-shadow: none; } .highlightColor { color: @highlightColor; background-color: @highlightBgColor; } .textColor { color: @textColor; background-color: @baseColor; } svg .textColor, svg.textColor { fill: @textColor; stroke: @textColor; } .fontLineSize, .flex > .fontLineSize { min-height: @fontLineSize; max-height: @fontLineSize; height: @fontLineSize; } @middleImageSize: round(@fontSize*8.0); @middleImageSizeWithPadding: @middleImageSize + 2*@padding; @biggerImageSize: round(@fontSize*16.0); @biggerImageSizeWithPadding: @biggerImageSize + 2*@padding; .middleImageSize, .flex > .middleImageSize { max-width: @middleImageSize; max-height: @middleImageSize; } .middleImageSizeExact { max-width: @middleImageSize; max-height: @middleImageSize; width: @middleImageSize; height: @middleImageSize; } .biggerImageSize, .flex > biggerImageSize { max-width: 1.5* @biggerImageSize; max-height: @biggerImageSize; } .biggerImageSizeExact { max-width: @biggerImageSize; max-height: @biggerImageSize; width: @biggerImageSize; height: @biggerImageSize; } @headerFadeoutHeight: @units2_7; .middleHeaderHeight { height: @middleImageSizeWithPadding + @headerFadeoutHeight; // plus text fadeout height } .biggerHeaderHeight { height: @biggerImageSizeWithPadding + @headerFadeoutHeight; // plus text fadeout height } [data-contentType='visualization'] { z-index: 20; // above tabs in art window } .titleMargin { -webkit-margin-before: @defaultMargin; -webkit-margin-after: @defaultMargin; } .blockTitleMargin { margin-top: @units2_0; margin-bottom: @units0_5; } .blockTitleMarginFirst { margin-top: @units1_0; margin-bottom: @units0_5; } h2 { .titleMargin; } .sizeLabel { position: absolute; &.left { left: 0; } &:not(.left) { right: 0; } bottom: 0.5em; color: @textColor; background-color: contrast(@textColor, black, white); opacity: 0.75; padding-top: 0.25em; padding-bottom: 0.25em; padding-left: 0.5em; padding-right: 0.9em; margin-right: 0.1em; line-height: initial; font-size: @units0_9; } .ignoreMouse { pointer-events: none; } .noBorder { border: none; } .floatLeft { float: left; } .floatRight { float: right; } .centerChild { text-align: center; &:before { content: ''; height: 100%; display: inline-block; vertical-align: middle; } } .centerStretchImage { width: 100%; height: 100%; object-fit: contain; } .coverImage { width: 100%; height: 100%; object-fit: contain; // by default used stretched style for cover images, #14555 object-position: center center; &.bottom { object-position: bottom center; }; &.top { object-position: top center; }; } .initialFontSize { font-size: initial; } .baseBackgroundBitTransparent { background-color: fadeout(@baseColor, 18%); } .bottomFadeout { display: block; position: absolute; bottom: 0; width: 100%; height: @headerFadeoutHeight; background: -moz-linear-gradient(top,fadeout(@baseColor,100%) 0,@baseColor 100%); background: -webkit-gradient(linear,left top,left bottom,color-stop(0,fadeout(@baseColor,100%)),color-stop(100%,@baseColor)); background: -webkit-linear-gradient(top,fadeout(@baseColor,100%) 0,@baseColor 100%); background: -o-linear-gradient(top,fadeout(@baseColor,100%) 0,@baseColor 100%); background: -ms-linear-gradient(top,fadeout(@baseColor,100%) 0,@baseColor 100%); background: linear-gradient(top,fadeout(@baseColor,100%) 0,@baseColor 100%); z-index: 1; } fieldset { .border; } // Hide scrollbar, unless hovered .hoverScrollbar:not(:hover)::-webkit-scrollbar, .hoverScrollbar:not(:hover)::-webkit-scrollbar-thumb { visibility: hidden; } .hotlink { color: @hotlinkColor; } .hotlink:hover { text-decoration: underline; cursor: pointer; } .transparentBackground { background-color: @transparentBackground; } .dropeffect { outline: @highlightColor dashed @borderWidth; outline-offset: -@borderWidth; } .avoid-clicks { pointer-events: none; } .lookupField { color: @highlightColor;//@lookupColor; } .lookupFieldInConflict { .marginLeftSmall; color: @errorColor; font-weight: bold; } .lookupUnknownGenres { color: @disabledColor; } .lookupFieldCover { height: 0.5em; width: 0.5em; background-color: @highlightColor; border-radius: 50%; display: inline-block; position: absolute; right: 0.5em; top: 0.5em; } .lookupField[data-disabled], .lookupFieldInConflict[data-disabled] { color: gray !important; } .longTouch { position: absolute; width: @units5_0; height: @units5_0; z-index: 9999999; } .longTouch svg { transform: rotate(-90deg); display: block; position: absolute; top: 50%; left: 50%; margin-top: -206px; margin-left: -206px; cursor: pointer; background-color: white; padding: 50px; } .longTouch svg > circle#progress { stroke-dasharray: 0, 1000; stroke: #171f30; stroke-width: 0; transition: 0s ease-out all; opacity: 0; transform-origin: 50% 50%; transform: rotate(-90deg); } .longTouch svg > circle#progress.active { stroke-dasharray: 885, 1000; /* full circle */ stroke-width:20; opacity: 0.5; transform-origin: 50% 50%; transform: rotate(180deg); transition: 1s ease-in-out all; } .longTouch svg > circle#progress.active.launch { stroke: #C12B3A; fill: #ED5565; transition: 0s ease-out all; } | ||||
Fixed in build | 2275 | ||||