WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
58065
WebKit2: Support window bounce when panning
https://bugs.webkit.org/show_bug.cgi?id=58065
Summary
WebKit2: Support window bounce when panning
Brian Weinstein
Reported
2011-04-07 11:19:41 PDT
When panning, MSDN recommends using window bounce when you hit the end of a scrollable area to improve the panning experience.
http://msdn.microsoft.com/en-us/library/dd562167(v=vs.85).aspx
We support this in WebKit1 (vertically, not horizontally). <
rdar://problem/9244367
>
Attachments
[PATCH] Fix v2
(8.74 KB, patch)
2011-04-07 11:33 PDT
,
Brian Weinstein
aroben
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Brian Weinstein
Comment 1
2011-04-07 11:33:14 PDT
Created
attachment 88667
[details]
[PATCH] Fix v2
WebKit Review Bot
Comment 2
2011-04-07 11:34:52 PDT
Attachment 88667
[details]
did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebKit2/ChangeLog', u'Source/WebKit..." exit_code: 1 Source/WebKit2/ChangeLog:1: ChangeLog entry has no bug number [changelog/bugnumber] [5] Source/WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:425: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] Source/WebKit2/WebProcess/WebPage/WebPage.h:327: The parameter name "size" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 3 in 8 files If any of these errors are false positives, please file a bug against check-webkit-style.
Adam Roben (:aroben)
Comment 3
2011-04-07 11:56:25 PDT
Comment on
attachment 88667
[details]
[PATCH] Fix v2 View in context:
https://bugs.webkit.org/attachment.cgi?id=88667&action=review
>> Source/WebKit2/ChangeLog:1 >> +2011-04-07 Brian Weinstein <
bweinstein@apple.com
> > > ChangeLog entry has no bug number [changelog/bugnumber] [5]
Wha? This just seems completely wrong.
> Source/WebKit2/ChangeLog:12 > + API to bounce the window to give an indication that you are past the an end
Typo: the an end
> Source/WebKit2/ChangeLog:16 > + (WebKit::WebPageProxy::gestureDidScroll): Pasa a boolean for the reply, and return it.
Typo: Pasa
> Source/WebKit2/UIProcess/WebPageProxy.cpp:682 > + bool atBeginningOrEndOfScrollableDocument; > + process()->sendSync(Messages::WebPage::GestureDidScroll(size), Messages::WebPage::GestureDidScroll::Reply(atBeginningOrEndOfScrollableDocument), m_pageID); > + return atBeginningOrEndOfScrollableDocument;
If sendSync fails (indicated by returning false), atBeginningOrEndOfScrollableDocument will be uninitialized. That's bad! (I think gestureWillBegin has the same problem.)
> Source/WebKit2/UIProcess/win/WebView.cpp:543 > if (!GetGestureInfoPtr() || !CloseGestureInfoHandlePtr()) { > handled = false; > return 0; > } > > + if (!UpdatePanningFeedbackPtr() || !BeginPanningFeedbackPtr() || !EndPanningFeedbackPtr()) { > + handled = false; > + return 0; > + }
I'd combine these into a single check.
> Source/WebKit2/UIProcess/win/WebView.cpp:588 > + // FIXME: Support horizontal window bounce - <
rdar://problem/7158348
>. > + // FIXME: Window Bounce doesnt' undo until user releases their finger - <
rdar://problem/7158349
>.
Typo: doesnt' Do we have Bugzilla bugs that you can reference here instead?
>> Source/WebKit2/WebProcess/WebPage/WebPage.h:327 >> + void gestureDidScroll(const WebCore::IntSize& size, bool& atBeginningOrEndOfDocument); > > The parameter name "size" adds no information, so it should be removed. [readability/parameter_name] [5]
You should fix this.
> Source/WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:404 > -void WebPage::gestureDidScroll(const WebCore::IntSize& size) > +void WebPage::gestureDidScroll(const WebCore::IntSize& size, bool& atBeginningOrEndOfScrollableDocument)
No need for WebCore:: here.
>> Source/WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:425 >> + atBeginningOrEndOfScrollableDocument = verticalScrollbar->currentPos() == 0 || verticalScrollbar->currentPos() >= verticalScrollbar->maximum(); > > Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5]
You should fix this.
Brian Weinstein
Comment 4
2011-04-07 12:02:51 PDT
Comment on
attachment 88667
[details]
[PATCH] Fix v2 View in context:
https://bugs.webkit.org/attachment.cgi?id=88667&action=review
>>> Source/WebKit2/ChangeLog:1 >>> +2011-04-07 Brian Weinstein <
bweinstein@apple.com
> >> >> ChangeLog entry has no bug number [changelog/bugnumber] [5] > > Wha? This just seems completely wrong.
I typed it by hand, and typed show_big.cgi :-(. It's fixed.
>> Source/WebKit2/ChangeLog:12 >> + API to bounce the window to give an indication that you are past the an end > > Typo: the an end
Fixed.
>> Source/WebKit2/ChangeLog:16 >> + (WebKit::WebPageProxy::gestureDidScroll): Pasa a boolean for the reply, and return it. > > Typo: Pasa
Fixed.
>> Source/WebKit2/UIProcess/WebPageProxy.cpp:682 >> + return atBeginningOrEndOfScrollableDocument; > > If sendSync fails (indicated by returning false), atBeginningOrEndOfScrollableDocument will be uninitialized. That's bad! (I think gestureWillBegin has the same problem.)
I will initialize them both to false.
>> Source/WebKit2/UIProcess/win/WebView.cpp:543 >> + } > > I'd combine these into a single check.
Fixed.
>> Source/WebKit2/UIProcess/win/WebView.cpp:588 >> + // FIXME: Window Bounce doesnt' undo until user releases their finger - <
rdar://problem/7158349
>. > > Typo: doesnt' > > Do we have Bugzilla bugs that you can reference here instead?
Fixed. I initially made bugzilla bugs for the WebKit1 equivalent, but the bugs don't seem to exist. I will file Bugzilla bugs.
>>> Source/WebKit2/WebProcess/WebPage/WebPage.h:327 >>> + void gestureDidScroll(const WebCore::IntSize& size, bool& atBeginningOrEndOfDocument); >> >> The parameter name "size" adds no information, so it should be removed. [readability/parameter_name] [5] > > You should fix this.
And I did.
>> Source/WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:404 >> +void WebPage::gestureDidScroll(const WebCore::IntSize& size, bool& atBeginningOrEndOfScrollableDocument) > > No need for WebCore:: here.
Fixed.
>>> Source/WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:425 >>> + atBeginningOrEndOfScrollableDocument = verticalScrollbar->currentPos() == 0 || verticalScrollbar->currentPos() >= verticalScrollbar->maximum(); >> >> Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] > > You should fix this.
I thought it was more readable this way, but will fix.
Brian Weinstein
Comment 5
2011-04-07 12:43:02 PDT
Landed in
r83197
.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug