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

Unified Diff: ios/clean/chrome/browser/ui/presenters/menu_presentation_controller.mm

Issue 2603783002: [Clean Skeleton] Fix menu dismiss and positions. (Closed)
Patch Set: Fix strip include. Created 3 years, 11 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: ios/clean/chrome/browser/ui/presenters/menu_presentation_controller.mm
diff --git a/ios/clean/chrome/browser/ui/presenters/menu_presentation_controller.mm b/ios/clean/chrome/browser/ui/presenters/menu_presentation_controller.mm
index 39635293f270bf1ce957674bf22b0d041e3416c2..ebba79871565b162ae2b64ee7f9cde5e6ccfa2a6 100644
--- a/ios/clean/chrome/browser/ui/presenters/menu_presentation_controller.mm
+++ b/ios/clean/chrome/browser/ui/presenters/menu_presentation_controller.mm
@@ -10,6 +10,7 @@
#import <QuartzCore/QuartzCore.h>
+#include "ios/clean/chrome/browser/ui/commands/toolbar_commands.h"
#include "ios/clean/chrome/browser/ui/presenters/menu_presentation_delegate.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
@@ -19,11 +20,14 @@
@interface MenuPresentationController ()
@property(nonatomic, weak) id<MenuPresentationDelegate> presentationDelegate;
@property(nonatomic, assign) CGRect presentationFrame;
+@property(nonatomic, strong) UITapGestureRecognizer* dismissRecognizer;
@end
@implementation MenuPresentationController
@synthesize presentationDelegate = _presentationDelegate;
@synthesize presentationFrame = _presentationFrame;
+@synthesize toolbarCommandHandler = _toolbarCommandHandler;
+@synthesize dismissRecognizer = _dismissRecognizer;
#pragma mark - UIPresentationDelegate
@@ -34,9 +38,12 @@
self.presentationFrame =
[self.presentationDelegate frameForMenuPresentation:self];
} else {
- // Placeholder default frame: something rectangular, 50 points in and
- // down.
- self.presentationFrame = CGRectMake(50, 50, 250, 300);
+ // Placeholder default frame: centered in the presenting view.
+ CGSize menuSize = self.presentedView.frame.size;
+ self.presentationFrame.size = menuSize;
+ self.presentationFrame.origin = CGPointMake(
+ (self.containerView.bounds.size.width - menuSize.width) / 2.0,
+ (self.containerView.bounds.size.height - menuSize.height) / 2.0);
}
}
return self.presentationFrame;
@@ -46,10 +53,19 @@
self.presentedView.layer.borderWidth = 1.0;
self.presentedView.layer.shadowRadius = 1.0;
self.presentedView.layer.borderColor = [UIColor blackColor].CGColor;
+
+ self.dismissRecognizer =
+ [[UITapGestureRecognizer alloc] initWithTarget:self
+ action:@selector(tapToDismiss:)];
+ [self.containerView addGestureRecognizer:self.dismissRecognizer];
}
#pragma mark - Private methods.
+- (void)tapToDismiss:(UIGestureRecognizer*)recognizer {
+ [self.toolbarCommandHandler closeToolsMenu];
+}
+
// Checks if the presenting view controller conforms to
// MenuPresentationDelegate and, if so, sets that view controller as the
// presentation delegate. This can't be done at init time, becuase the

Powered by Google App Engine
This is Rietveld 408576698