Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc
  • chouquette/vlc
  • bakiewicz.marek122/vlc
  • devnexen/vlc
  • rohanrajpal/vlc
  • blurrrb/vlc
  • gsoc/gsoc2019/darkapex/vlc
  • b1ue/vlc
  • fkuehne/vlc
  • magsoft/vlc
  • chub/vlc
  • cramiro9/vlc
  • robUx4/vlc
  • rom1v/vlc
  • akshayaky/vlc
  • tmk907/vlc
  • akymaster/vlc
  • govind.sharma/vlc
  • psilokos/vlc
  • xjbeta/vlc
  • jahan/vlc
  • 1480c1/vlc
  • amanchande/vlc
  • aaqib/vlc
  • rist/vlc
  • apol/vlc
  • mindfreeze/vlc
  • alexandre-janniaux/vlc
  • sandsmark/vlc
  • jagannatharjun/vlc
  • gsoc/gsoc2020/matiaslgonzalez/vlc
  • gsoc/gsoc2020/jagannatharjun/vlc
  • mstorsjo/vlc
  • gsoc/gsoc2020/vedenta/vlc
  • gsoc/gsoc2020/arnav-ishaan/vlc
  • gsoc/gsoc2020/andreduong/vlc
  • fuzun/vlc
  • gsoc/gsoc2020/vatsin/vlc
  • gsoc/gsoc2020/sagid/vlc
  • yaron/vlc
  • Phoenix/vlc
  • Garf/vlc
  • ePiratWorkarounds/vlc
  • tguillem/vlc
  • jnqnfe/vlc
  • mdc/vlc
  • Vedaa/vlc
  • rasa/vlc
  • quink/vlc
  • yealo/vlc
  • aleksey_ak/vlc
  • ePirat/vlc
  • ilya.yanok/vlc
  • asenat/vlc
  • m/vlc
  • bunjee/vlc
  • BLumia/vlc
  • sagudev/vlc
  • hamedmonji30/vlc
  • nullgemm/vlc
  • DivyamAhuja/vlc
  • thesamesam/vlc
  • dag7/vlc
  • snehil101/vlc
  • haasn/vlc
  • jbk/vlc
  • ValZapod/vlc
  • mfkl/vlc
  • WangChuan/vlc
  • core1024/vlc
  • GhostVaibhav/vlc
  • dfuhrmann/vlc
  • davide.prade/vlc
  • tmatth/vlc
  • Courmisch/vlc
  • zouya/vlc
  • hpi/vlc
  • EwoutH/vlc
  • aleung27/vlc
  • hengwu0/vlc
  • saladin/vlc
  • ashuio/vlc
  • richselwood/vlc
  • verma16Ayush/vlc
  • chemicalflash/vlc
  • PoignardAzur/vlc
  • huangjieNT/vlc
  • Blake-Haydon/vlc
  • AnuthaDev/vlc
  • gsoc/gsoc2021/mpd/vlc
  • nicolas_lequec/vlc
  • sambassaly/vlc
  • thresh/vlc
  • bonniegong/vlc
  • myaashish/vlc
  • stavros.vagionitis/vlc
  • ileoo/vlc
  • louis-santucci/vlc
  • cchristiansen/vlc
  • sabyasachi07/vlc
  • AbduAmeen/vlc
  • ashishb0410/vlc
  • urbanhusky/vlc
  • davidepietrasanta/vlc
  • riksleutelstad/vlc
  • jeremyVignelles/vlc
  • komh/vlc
  • iamjithinjohn/vlc
  • JohannesKauffmann/vlc2
  • kunglao/vlc
  • natzberg/vlc
  • jill/vlc
  • cwendling/vlc
  • adufou/vlc
  • ErwanAirone/vlc
  • HasinduDilshan10/vlc
  • vagrantc/vlc
  • rafiv/macos-bigsur-icon
  • Aymeriic/vlc
  • saranshg20/vlc
  • metzlove24/vlc
  • linkfanel/vlc
  • Ds886/vlc
  • metehan-arslan/vlc
  • Skantes/vlc
  • kgsandundananjaya96/vlc
  • mitchcapper/vlc
  • advaitgupta/vlc
  • StefanBruens/vlc
  • ratajs/vlc
  • T.M.F.B.3761/vlc
  • m222059/vlc
  • casemerrick/vlc
  • joshuaword2alt/vlc
  • sjwaddy/vlc
  • dima/vlc
  • Ybalrid/vlc
  • umxprime/vlc
  • eschmidt/vlc
  • vannieuwenhuysenmichelle/vlc
  • badcf00d/vlc
  • wesinator/vlc
  • louis/vlc
  • xqq/vlc
  • EmperorYP7/vlc
  • NicoLiam/vlc
  • loveleen/vlc
  • rofferom/vlc
  • rbultje/vlc
  • TheUnamed/vlc
  • pratiksharma341/vlc
  • Saurab17/vlc
  • purist.coder/vlc
  • Shuicheng/vlc
  • mdrrubel292/vlc
  • silverbleu00/vlc
  • metif12/vlc
  • asher-m/vlc
  • jeffk/vlc
  • Brandonbr1/vlc
  • beautyyuyanli/vlc
  • rego21/vlc
  • muyangren907/vlc
  • collectionbylawrencejason/vlc
  • evelez/vlc
  • GSMgeeth/vlc
  • Oneric/vlc
  • TJ5/vlc
  • XuanTung95/vlc
  • darrenjenny21/vlc
  • Trenly/vlc
  • RockyTDR/vlc
  • mjakubowski/vlc
  • caprica/vlc
  • ForteFrankie/vlc
  • seannamiller19/vlc
  • junlon2006/vlc
  • kiwiren6666/vlc
  • iuseiphonexs/vlc
  • fenngtun/vlc
  • Rajdutt999/vlc
  • typx/vlc
  • leon.vitanos/vlc
  • robertogarci0938/vlc
  • gsoc/gsoc2022/luc65r/vlc-mpd
  • skeller/vlc
  • MCJack123/vlc
  • luc65r/vlc-mpd
  • popov895/vlc
  • claucambra/vlc
  • brad/vlc
  • matthewmurua88/vlc
  • Tomas8874/vlc
  • philenotfound/vlc
  • makita-do3/vlc
  • LZXCorp/vlc
  • mar0x/vlc
  • senojetkennedy0102/vlc
  • shaneb243/vlc
  • ahmadbader/vlc
  • rajduttcse26/vlc-audio-filters
  • Juniorzito8415/vlc
  • achernyakov/vlc
  • lucasjetgroup/vlc
  • pupdoggy666/vlc
  • gmde9363/vlc
  • alexnwayne/vlc
  • bahareebrahimi781/vlc
  • hamad633666/vlc
  • umghof3112/vlc
  • joe0199771874/vlc
  • Octocats66666666/vlc
  • jjm_223/vlc
  • btech10110.19/vlc
  • sunnykfc028/vlc-audio-filters
  • loic/vlc
  • nguyenminhducmx1/vlc
  • JanekKrueger/vlc
  • bstubbington2/vlc
  • rcombs/vlc
  • Ordissimo/vlc
  • king7532/vlc
  • noobsauce101/vlc
  • schong0525/vlc
  • myQwil/vlc
  • apisbg91/vlc
  • geeboy0101017/vlc
  • kim.faughey/vlc
  • nurupo/vlc
  • yyusea/vlc
  • 0711235879.khco/vlc
  • ialo/vlc
  • iloveyeye2/vlc
  • gdtdftdqtd/vlc
  • leandroconsiglio/vlc
  • AndyHTML2012/vlc
  • ncz/vlc
  • lucenticus/vlc
  • knr1931/vlc
  • kjoonlee/vlc
  • chandrakant100/vlc-qt
  • johge42/vlc
  • polter/vlc
  • hexchain/vlc
  • Tushwrld/vlc
  • mztea928/vlc
  • jbelloncastro/vlc
  • alvinhochun/vlc
  • ghostpiratecrow/vlc
  • ujjwaltwitx/vlc
  • alexsonarin06/vlc
  • adrianbon76/vlc
  • altsod/vlc
  • damien.lucas44/vlc
  • dmytrivtaisa/vlc
  • utk202/vlc
  • aaxhrj/vlc
  • thomas.hermes/vlc
  • structurenewworldorder/vlc
  • slomo/vlc
  • wantlamy/vlc
  • musc.o3cminc/vlc
  • thebarshablog/vlc
  • kerrick/vlc
  • kratos142518/vlc
  • leogps/vlc
  • vacantron/vlc
  • luna_koly/vlc
  • Ratio2/vlc
  • anuoshemohammad/vlc
  • apsun/vlc
  • aaa1115910/vlc
  • alimotmoyo/vlc
  • Ambossmann/vlc
  • Sam-LearnsToCode/vlc
  • Chilledheart/vlc
  • Labnann/vlc
  • ktcoooot1/vlc
  • mohit-marathe/vlc
  • johnddx/vlc
  • manstabuk/vlc
  • Omar-ahmed314/vlc
  • vineethkm/vlc
  • 9Enemi86/vlc
  • radoslav.m.panteleev/vlc
  • ashishami2002/vlc
  • Corbax/vlc
  • firnasahmed/vlc
  • pelayarmalam4/vlc
  • c0ff330k/vlc
  • shikhindahikar/vlc
  • l342723951/vlc
  • christianschwandner/vlc
  • douniwan5788/vlc
  • 7damian7/vlc
  • ferdnyc/vlc
  • f.ales1/vlc
  • pandagby/vlc
  • BaaBaa/vlc
  • jewe37/vlc
  • w00drow/vlc
  • russelltg/vlc
  • ironicallygod/vlc
  • soumyaDghosh/vlc
  • linzihao1999/vlc
  • deyayush6/vlc
  • mibi88/vlc
  • newabdallah10/vlc
  • jhorbincolombia/vlc
  • rimvihaqueshupto/vlc
  • andrewkhon98/vlc
  • fab78/vlc
  • lapaz17/vlc
  • amanna13/vlc
  • mdakram28/vlc
  • 07jw1980/vlc
  • sohamgupta/vlc
  • Eson-Jia1/vlc
  • Sumou/vlc
  • vikram-kangotra/vlc
  • chalice191/vlc
  • olivercalder/vlc
  • aaasg4001/vlc
  • zipdox/vlc
  • kwizart/vlc
  • Dragon-S/vlc
  • jdemeule/vlc
  • gabriel_lt/vlc
  • locutusofborg/vlc
  • sammirata/vlc-librist
  • another/vlc
  • Benjamin_Loison/vlc
  • ahmedmoselhi/vlc
  • petergaal/vlc
  • huynhsontung/vlc
  • dariusmihut/vlc
  • tvermaashutosh/vlc
  • buti/vlc
  • Niram7777/vlc
  • rohan-here/vlc
  • balaji-sivasakthi/vlc
  • rlindner81/vlc
  • Kakadus/vlc
  • djain/vlc
  • ABBurmeister/vlc
  • craighuggins/vlc
  • orbea/vlc
  • maxos/vlc
  • aakarshmj/vlc
  • kblaschke/vlc
  • ankitm/vlc
  • advait-0/vlc
  • mohak2003/vlc
  • yselkowitz/vlc
  • AZM999/vlc-azm
  • andrey.turkin/vlc
  • Disha-Baghel/vlc
  • nowrep/vlc
  • Apeng/vlc
  • Choucroute_melba/vlc
  • autra/vlc
  • eclipseo/vlc
  • fhuber/vlc
  • olafhering/vlc
  • sdasda7777/vlc
  • 1div0/vlc
  • skosnits/vlc-extended-playlist-support
  • dnicolson/vlc
  • Timshel/vlc
  • octopols/vlc
  • MangalK/vlc
  • nima64/vlc
  • misawai/vlc
  • Alexander-Wilms/vlc
  • Maxime2/vlc-fork-for-visualizer
  • ww/vlc
  • jeske/vlc
  • sgross-emlix/vlc
  • morenonatural/vlc
  • freakingLovesVLC/vlc
  • borisgolovnev/vlc
  • mpromonet/vlc
  • diogo.simao-marques/vlc
  • masstock/vlc
  • pratikpatel8982/vlc
  • hugok79/vlc
  • longervision/vlc
  • abhiudaysurya/vlc
  • rishabhgarg/vlc
  • tumic/vlc
  • cart/vlc
  • shubham442/vlc
  • Aditya692005/vlc
  • sammirata/vlc4
  • syrykh/vlc
  • Vvorcun/macos-new-icon
  • AyaanshC/vlc
  • nasso/vlc
  • Quark/vlc
  • sebastinas/vlc
  • rhstone/vlc
  • talregev/vlc
  • Managor/vlc
  • abdsaber000/vlc
  • falbrechtskirchinger/vlc
405 results
Show changes
Commits on Source (3)
......@@ -847,6 +847,7 @@ libqt_plugin_la_QML = \
gui/qt/util/qml/SelectableDelegateModel.qml \
gui/qt/util/qml/MultipleBinding.qml \
gui/qt/util/qml/FlickableScrollHandler.qml \
gui/qt/util/qml/ViewDragAutoScrollHandler.qml \
gui/qt/widgets/qml/ActionButtonOverlay.qml \
gui/qt/widgets/qml/ActionButtonPrimary.qml \
gui/qt/widgets/qml/BannerTabButton.qml \
......
......@@ -56,11 +56,13 @@ Control {
drag.onActiveChanged: {
if (drag.active) {
dragAutoScrollHandler.dragItem = loader
root.dragStarted(controlId)
removeInfoRectVisible = true
drag.target.Drag.start()
} else {
dragAutoScrollHandler.dragItem = null
drag.target.Drag.drop()
removeInfoRectVisible = false
root.dragStopped(controlId)
......@@ -154,11 +156,6 @@ Control {
Drag.source: control
onXChanged: {
if (Drag.active)
root.handleScroll(this)
}
onLoaded: {
item.paintOnly = true
item.enabled = false
......
......@@ -24,6 +24,7 @@ import org.videolan.vlc 0.1
import "qrc:///style/"
import "qrc:///widgets/" as Widgets
import "qrc:///util/" as Util
Rectangle{
id: root
......@@ -269,75 +270,14 @@ Rectangle{
x: -1
y: -1
onXChanged: {
if (Drag.active)
handleScroll(this)
Drag.onActiveChanged: {
dragAutoScrollHandler.dragItem = Drag.active ? this : null
}
}
function handleScroll(dragItem) {
var view = _viewThatContainsDrag
Util.ViewDragAutoScrollHandler {
id: dragAutoScrollHandler
if (view === undefined || view === null) {
if (!!scrollAnimation.target)
view = scrollAnimation.target
else
return
}
var dragItemX = dragItem.x
var viewPos = view.mapToItem(root, view.x, view.y)
var margin = VLCStyle.dp(25, VLCStyle.scale)
var leftMark = (viewPos.x + margin)
var rightMark = (viewPos.x + view.width - margin)
scrollAnimation.target = view
scrollAnimation.dragItem = dragItem
if (!view.contains(view.mapFromItem(root, dragItemX, dragItem.y))) {
scrollAnimation.direction = 0
} else {
if (!view.atXBeginning && dragItemX <= leftMark) {
scrollAnimation.direction = -1
} else if (!view.atXEnd && dragItemX >= rightMark) {
scrollAnimation.direction = 1
} else {
scrollAnimation.direction = 0
}
}
}
SmoothedAnimation {
id: scrollAnimation
property var dragItem
property int direction: 0 // -1: left, 0: stop, 1: right
onDirectionChanged: {
if (direction === 0)
stop()
}
to: {
if (direction === -1)
0
else if (direction === 1 && !!target)
target.contentWidth - target.width + target.footerItem.width
else
0
}
running: {
if (!!dragItem && (direction === -1 || direction === 1))
dragItem.Drag.active
else
false
}
property: "contentX"
velocity: VLCStyle.dp(150, VLCStyle.scale)
reversingMode: SmoothedAnimation.Immediate
view: _viewThatContainsDrag ? _viewThatContainsDrag : null
}
}
......@@ -127,7 +127,7 @@ GridView {
drag.onActiveChanged: {
if (drag.active) {
root.dragStarted(mIndex)
dragStarted(mIndex)
buttonDragItem.text = PlayerControlbarControls.controlList[model.index].label
buttonDragItem.Drag.source = this
......@@ -137,7 +137,7 @@ GridView {
} else {
buttonDragItem.Drag.drop()
root.dragStopped(mIndex)
dragStopped(mIndex)
GridView.delayRemove = false
}
......
......@@ -272,7 +272,7 @@ T.Control {
// FIXME: Override dragItem's position
var pos = mapToItem(dragItem.parent, mouseX, mouseY)
dragItem.x = pos.x + VLCStyle.dp(15)
dragItem.y = pos.y // y should be changed after x
dragItem.y = pos.y
}
}
}
......
......@@ -162,45 +162,6 @@ Control {
return {"title": item.title, "cover": item.artwork}
}))
}
property int _scrollingDirection: 0
onYChanged: {
var dragItemY = dragItem.y
var viewY = root.mapFromItem(listView, listView.x, listView.y).y
var margin = VLCStyle.dp(20, VLCStyle.scale)
var topDiff = (viewY + margin) - dragItemY
var bottomDiff = dragItemY - (viewY + listView.height - toolbar.height - margin)
if (topDiff > 0)
_scrollingDirection = -1
else if (bottomDiff > 0)
_scrollingDirection = 1
else
_scrollingDirection = 0
}
SmoothedAnimation {
id: upAnimation
target: listView
property: "contentY"
to: 0
running: dragItem._scrollingDirection === -1 && dragItem.visible && !target.listView.atYBeginning
velocity: VLCStyle.dp(225, VLCStyle.scale)
}
SmoothedAnimation {
id: downAnimation
target: listView
property: "contentY"
to: target.contentHeight - target.height + target.footerItem.height
running: dragItem._scrollingDirection === 1 && dragItem.visible && !target.listView.atYEnd
velocity: VLCStyle.dp(225, VLCStyle.scale)
}
}
PlaylistContextMenu {
......@@ -328,14 +289,11 @@ Control {
playlistId: MainCtx.mainPlaylist
}
dragAutoScrollDragItem: dragItem
fadeColor: background.usingAcrylic ? undefined
: background.alternativeColor
Binding on fadeColor {
when: downAnimation.running || upAnimation.running
value: undefined
}
property int shiftIndex: -1
property PlaylistDelegate delegateContainsDrag: null
......
/*****************************************************************************
* Copyright (C) 2021 VLC authors and VideoLAN
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* ( at your option ) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
import QtQuick 2.11
import QtQuick.Controls 2.4
import "qrc:///style/"
QtObject {
id: root
property Flickable view: null
property Item dragItem: null
property int orientation: (view && view.orientation !== undefined) ? view.orientation
: Qt.Vertical
property real margin: VLCStyle.dp(20)
readonly property bool scrolling: animation.running // for convenience
property alias scrollingDirection: animation.direction
property alias velocity: animation.velocity
enum Direction {
Forward,
Backward,
None // not scrolling
}
readonly property SmoothedAnimation _animation: SmoothedAnimation {
id: animation
target: root.view
property: root.orientation === Qt.Vertical ? "contentY"
: "contentX"
reversingMode: SmoothedAnimation.Immediate
easing.type: Easing.OutQuad
velocity: VLCStyle.dp(200)
maximumEasingTime: 1000
readonly property Timer _timer: Timer {
interval: 100
}
readonly property ScrollBar _scrollBar: (root.view) ? ((root.orientation === Qt.Vertical) ? root.view.ScrollBar.vertical
: root.view.ScrollBar.horizontal)
: null
readonly property int direction: {
if (!root.dragItem || !root.view)
return ViewDragAutoScrollHandler.Direction.None
if (!root.dragItem.visible || !root.view.visible)
return ViewDragAutoScrollHandler.Direction.None
var pos = root.view.mapFromItem(root.dragItem.parent,
root.dragItem.x,
root.dragItem.y)
var size, mark
if (root.orientation === Qt.Vertical) {
size = root.view.height
mark = pos.y
} else {
size = root.view.width
mark = pos.x
}
if (size < root.margin * 2.5)
return ViewDragAutoScrollHandler.Direction.None
if (mark < root.margin)
return ViewDragAutoScrollHandler.Direction.Backward
else if (mark > (size - root.margin))
return ViewDragAutoScrollHandler.Direction.Forward
else
return ViewDragAutoScrollHandler.Direction.None
}
Component.onCompleted: {
// prevent direction to bounce
_timer.triggered.connect(directionChangedHandler)
}
onDirectionChanged: {
_timer.start()
}
function directionChangedHandler() {
if (direction === ViewDragAutoScrollHandler.Direction.None) {
running = false
if (_scrollBar)
_scrollBar.active = false // TODO: Use Binding Qt >=5.14
} else if (!running) {
var _to
if (direction === ViewDragAutoScrollHandler.Direction.Backward) {
_to = 0
} else if (direction === ViewDragAutoScrollHandler.Direction.Forward) {
// FIXME: Is there a better way to calculate extents?
_to = ((root.orientation === Qt.Vertical) ? root.view.contentHeight - root.view.height
: root.view.contentWidth - root.view.width)
if (root.view.footerItem !== undefined
&& root.view.footerItem
&& root.view.footerPositioning === 0 /* inline positioning */)
_to += (root.orientation === Qt.Vertical) ? root.view.footerItem.height
: root.view.footerItem.width
if (root.view.headerItem !== undefined
&& root.view.headerItem
&& root.view.headerPositioning === 0 /* inline positioning */)
_to += (root.orientation === Qt.Vertical) ? root.view.headerItem.height
: root.view.headerItem.width
}
to = _to
running = true
if (_scrollBar)
_scrollBar.active = true // TODO: Use Binding Qt >= 5.14
}
}
}
}
......@@ -28,6 +28,7 @@
<file alias="Helpers.js">util/qml/Helpers.js</file>
<file alias="MultipleBinding.qml">util/qml/MultipleBinding.qml</file>
<file alias="FlickableScrollHandler.qml">util/qml/FlickableScrollHandler.qml</file>
<file alias="ViewDragAutoScrollHandler.qml">util/qml/ViewDragAutoScrollHandler.qml</file>
</qresource>
<qresource prefix="/toolbar">
<file alias="faster.svg">pixmaps/faster.svg</file>
......
......@@ -22,6 +22,7 @@ import QtGraphicalEffects 1.0
import org.videolan.vlc 0.1
import "qrc:///style/"
import "qrc:///util/" as Util
import "qrc:///util/Helpers.js" as Helpers
import "qrc:///util/" as Util
......@@ -99,6 +100,10 @@ FocusScope {
property alias buttonLeft: buttonLeft
property alias buttonRight: buttonRight
property alias dragAutoScrollDragItem: dragAutoScrollHandler.dragItem
property alias dragAutoScrollMargin: dragAutoScrollHandler.margin
property alias dragAutoScrolling: dragAutoScrollHandler.scrolling
// Signals
signal selectionUpdated(int keyModifiers, int oldIndex, int newIndex)
......@@ -287,6 +292,12 @@ FocusScope {
}
}
Util.ViewDragAutoScrollHandler {
id: dragAutoScrollHandler
view: view
}
// NOTE: We always want a valid 'currentIndex' by default.
onCountChanged: if (count && currentIndex === -1) currentIndex = 0
......@@ -399,7 +410,8 @@ FocusScope {
readonly property bool requestShow: !view.firstVisibleItem ||
(!view.firstVisibleItem.activeFocus &&
// TODO: Qt >5.12 use HoverHandler within the fade:
!Helpers.get(view.firstVisibleItem, "hovered", false))
!Helpers.get(view.firstVisibleItem, "hovered", false)) &&
(dragAutoScrollHandler.scrollingDirection !== Util.ViewDragAutoScrollHandler.Backward)
state: (!!listview_id.fadeColor &&
view._fadeRectEnoughSize &&
......@@ -473,7 +485,8 @@ FocusScope {
readonly property bool requestShow: !view.lastVisibleItem ||
(!view.lastVisibleItem.activeFocus &&
// TODO: Qt >5.12 use HoverHandler within the fade:
!Helpers.get(view.lastVisibleItem, "hovered", false))
!Helpers.get(view.lastVisibleItem, "hovered", false)) &&
(dragAutoScrollHandler.scrollingDirection !== Util.ViewDragAutoScrollHandler.Forward)
state: (!!listview_id.fadeColor &&
view._fadeRectEnoughSize &&
......