Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2156)

Unified Diff: chrome/browser/renderer_host/render_widget_host_view_mac.mm

Issue 7645041: mac: Makeshift UI for scroll feedback. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/renderer_host/render_widget_host_view_mac.mm
diff --git a/chrome/browser/renderer_host/render_widget_host_view_mac.mm b/chrome/browser/renderer_host/render_widget_host_view_mac.mm
index 682f0c9afede1232503e15064c666072b560966f..4cf8bd3ac51e13ab7c4bb4ce445f00fed56db7b0 100644
--- a/chrome/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/chrome/browser/renderer_host/render_widget_host_view_mac.mm
@@ -25,6 +25,7 @@
#include "chrome/browser/spellchecker/spellchecker_platform_engine.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_list.h"
+#import "chrome/browser/ui/cocoa/history_overlay_controller.h"
#import "chrome/browser/ui/cocoa/rwhvm_editcommand_helper.h"
#import "chrome/browser/ui/cocoa/view_id_util.h"
#include "chrome/common/render_messages.h"
@@ -1587,25 +1588,39 @@ void RenderWidgetHostViewMac::SetTextInputActive(bool active) {
// that's actually done in the renderer
// (ChromeClientImpl::shouldRubberBand()), when it decides if it should
// rubberband or send back an event unhandled.
+ // FIXME: Is this true with the UI up?
(isPinnedLeft_ && !isRightScroll) ||
(isPinnedRight_ && isRightScroll))) {
- // The way this api works: gestureAmount is between -1 and 1 (float). If
+
+ // Released by the tracking handler once the gesture is complete.
+ HistoryOverlayController* historyOverlay =
Alexei Svitkine (slow) 2011/08/16 14:10:04 I was going to ask you about this - but Mark beat
+ [[HistoryOverlayController alloc]
+ initForMode:goForward ? kHistoryOverlayModeForward :
+ kHistoryOverlayModeBack];
+
+ // The way this api works: gestureAmount is between -1 and 1 (float). If
// the user does the gesture for more than about 25% (i.e. < -0.25 or >
// 0.25) and then lets go, it is accepted, we get a NSEventPhaseEnded,
// and after that the block is called with amounts animating towards 1
// (or -1, depending on the direction). If the user lets go below that
// threshold, we get NSEventPhaseCancelled, and the amount animates
- // toward 0.
+ // toward 0. When gestureAmount has reaches its final value, i.e. the
+ // track animation is done, the handler is called with |isComplete| set
+ // to |YES|.
[theEvent trackSwipeEventWithOptions:0
- dampenAmountThresholdMin:-1
- max:1
+ dampenAmountThresholdMin:-50
Mark Mentovai 2011/08/16 05:47:22 Why the change to ±50 here? Learn anything you’re
Nico 2011/08/16 15:55:43 Hah, no. I played with this and couldn't really se
+ max:50
usingHandler:^(CGFloat gestureAmount,
NSEventPhase phase,
BOOL isComplete,
BOOL *stop) {
+ if (phase == NSEventPhaseBegan) {
+ [historyOverlay showPanelForWindow:[self window]];
+ return;
+ }
+
// |gestureAmount| obeys -[NSEvent isDirectionInvertedFromDevice]
// automatically.
- // TODO(thakis): UI.
Browser* browser = BrowserList::GetLastActive();
if (phase == NSEventPhaseEnded && browser) {
if (goForward)
@@ -1613,6 +1628,12 @@ void RenderWidgetHostViewMac::SetTextInputActive(bool active) {
else
browser->GoBack(CURRENT_TAB);
}
+
+ [historyOverlay setProgress:gestureAmount];
+ if (isComplete) {
+ [historyOverlay dismiss];
+ [historyOverlay release];
+ }
}];
return YES;
}

Powered by Google App Engine
This is Rietveld 408576698