# ScrollOnDrag

**URL:** <https://forum.juce.com/t/scrollondrag/31815>\
**Category:** General JUCE discussion\
**Created:** [February 17, 2019, 9:52pm UTC](https://forum.juce.com/t/scrollondrag/31815 "2019-02-17T21:52:46Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![solar3d](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/solar3d/32/135_2.png) [@solar3d](https://forum.juce.com/u/solar3d)\
**Post date:** [February 17, 2019, 9:52pm UTC](https://forum.juce.com/t/scrollondrag/31815/1 "2019-02-17T21:52:46Z")

</div>

Hi there,

is there any way of temporally disabling ScrollOnDrag in a viewport? I have a listbox containing swipe components and would like to stop vertical scrolling while swiping a row component, As far as I can see, the underlaying viewport uses a global mouse listener which means enabling interception of mouse events wouldn’t work.

Any help is much appreciated.  
Joerg

---

<div class="post-metadata">

**Author:** ![matkatmusic](https://avatars.discourse-cdn.com/v4/letter/m/dfb087/32.png) [@matkatmusic](https://forum.juce.com/u/matkatmusic)\
**Post date:** [February 17, 2019, 11:50pm UTC](https://forum.juce.com/t/scrollondrag/31815/2 "2019-02-17T23:50:09Z")

</div>

void [setScrollOnDragEnabled](https://docs.juce.com/develop/classViewport.html#aada0061f2174a6a8ab76a305b8362417) (bool shouldScrollOnDrag)

what happens if you call that set to false during your initial swiping, and set it to true when you’re done swiping?

---

<div class="post-metadata">

**Author:** ![solar3d](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/solar3d/32/135_2.png) [@solar3d](https://forum.juce.com/u/solar3d)\
**Post date:** [February 18, 2019, 6:57am UTC](https://forum.juce.com/t/scrollondrag/31815/3 "2019-02-18T06:57:09Z")

</div>

Actually that is what I am doing right now - caching and restoring the old state - but I don’t really like it for the sake of nice and clean code. Casting the parent to a possible yiewport to do this doesn’t sound right to me.

---

<div class="post-metadata">

**Author:** ![Achder](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/achder/32/5897_2.png) [@Achder](https://forum.juce.com/u/Achder)\
**Post date:** [February 18, 2019, 8:53am UTC](https://forum.juce.com/t/scrollondrag/31815/4 "2019-02-18T08:53:20Z")

</div>

You can set the ignoreDrag flag for your listbox. Every component actually supports this. See [Component::setViewportIgnoreDragFlag (bool ignoreDrag)](https://docs.juce.com/master/classComponent.html#aaab69a75feb776176af1395da5dc1ed2)

---

<div class="post-metadata">

**Author:** ![solar3d](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/solar3d/32/135_2.png) [@solar3d](https://forum.juce.com/u/solar3d)\
**Post date:** [February 18, 2019, 9:19am UTC](https://forum.juce.com/t/scrollondrag/31815/5 "2019-02-18T09:19:43Z")

</div>

That is what I was missing. Thanks a bunch!

---

<div class="post-metadata">

**Author:** ![Achder](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/achder/32/5897_2.png) [@Achder](https://forum.juce.com/u/Achder)\
**Post date:** [February 18, 2019, 9:51am UTC](https://forum.juce.com/t/scrollondrag/31815/6 "2019-02-18T09:51:11Z")

</div>

This should probably get a mention somewhere in the documentation of viewport.

---

<div class="post-metadata">

**Author:** ![ed95](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/ed95/32/7635_2.png) [@ed95](https://forum.juce.com/u/ed95)\
**Post date:** [February 18, 2019, 11:18am UTC](https://forum.juce.com/t/scrollondrag/31815/7 "2019-02-18T11:18:01Z")

</div>

Yep, I’ll add that. Thanks for the suggestion.
