GNOME Bugzilla – Bug 694467
Adjust the pressure barrier
Last modified: 2013-03-23 07:01:29 UTC
These things were found after a fairly long hour or two trying out and tweaking barriers with Cosimo and Jon yesterday.
Created attachment 237205 [details] [review] layout: Adjust the pressure barrier threshold values After a day of experimentation with Cosimo and Jon McCann, we found that this was the best way to do this.
Created attachment 237206 [details] [review] layout: Cap each event to 15px of motion When pressing against the bottom of the screen, we shouldn't really take more than 15px from each event, to prevent spruious mouse movements from opening the barrier.
Created attachment 237207 [details] [review] layout: Trigger the tray if one event passes the threshold As a special-case to the "cap event" rules, this allows a heavy swipe from top to bottom to allow triggering the tray without having to push into it.
What about a swipe from bottom to top (as in, swiping up to reveal the notification area)? Perhaps you already considered this, but I believe the pressure should be configurable due to people having different settings for mouse/trackpad acceleration.
(In reply to comment #4) > What about a swipe from bottom to top (as in, swiping up to reveal the > notification area)? This is the plan on touch devices. > Perhaps you already considered this, but I believe the pressure should be > configurable due to people having different settings for mouse/trackpad > acceleration. We tested with all speed settings for mouse/trackpad, but it's possible that we might need to more tweaking afterwards.
Review of attachment 237205 [details] [review]: Can't test it here right now but as you have tested it (and have design ack I assume it is actually better). Code looks good.
Review of attachment 237206 [details] [review]: Makes sense.
Review of attachment 237206 [details] [review]: ::: js/ui/layout.js @@ +1331,3 @@ this._trimBarrierEvents(); this._barrierEvents.push(event); + this._currentPressure += Math.min(15, distance); But this should be a constant really,
(In reply to comment #3) > Created an attachment (id=237207) [details] [review] > layout: Trigger the tray if one event passes the threshold > > As a special-case to the "cap event" rules, this allows a heavy swipe > from top to bottom to allow triggering the tray without having to push > into it. Not sure about this one ... why? Doesn't this cause accidental trigger? (can't test, old X here).
(In reply to comment #8) > ::: js/ui/layout.js > @@ +1331,3 @@ > this._trimBarrierEvents(); > this._barrierEvents.push(event); > + this._currentPressure += Math.min(15, distance); > > But this should be a constant really, Right, but I've been trying to separate these things out, and that would mean another parameter in the constructor... (In reply to comment #9) > Not sure about this one ... why? Doesn't this cause accidental trigger? (can't > test, old X here). After testing, we found that it's super hard to trigger the threshold accidentally (200 pixels against the bottom of the screen!) The only parameter we might have to tweak is if this should be based on screen size or not.
(In reply to comment #10) > (In reply to comment #9) > > Not sure about this one ... why? Doesn't this cause accidental trigger? (can't > > test, old X here). > > After testing, we found that it's super hard to trigger the threshold > accidentally (200 pixels against the bottom of the screen!) 200 px do not mean much by itself (think of high res aka "retina" displays). > The only parameter we might have to tweak is if this should be based on screen > size or not. It should.
Attachment 237205 [details] pushed as 476eacd - layout: Adjust the pressure barrier threshold values Attachment 237206 [details] pushed as 01bd10f - layout: Cap each event to 15px of motion Attachment 237207 [details] pushed as 41f14e0 - layout: Trigger the tray if one event passes the threshold I'm going to push these for now, and we'll revisit when I test on more screen sizes tomorrow.
The current settings (as I guessed :) ) aren't satisfying everyone. http://worldofgnome.org/barriers-smooth-scrolling-osds-in-gnome-3-8/#comment-838784622 "hack the js" isn't appropriate means to configure such things.