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

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

Issue 2603783002: [Clean Skeleton] Fix menu dismiss and positions. (Closed)
Patch Set: Changed menu sizing. Created 4 years 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..fd2dbc3459751ac6a33fc60ba5b0d40f565de93e 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) UITapGestureRecognizer* dismissRecognizer;
lpromero 2017/01/05 14:27:04 I'd explicitly annotate "strong".
marq (ping after 24h) 2017/01/09 18:05:00 Done.
@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);
lpromero 2017/01/05 14:27:04 Shouldn’t it be (a - b)/2 instead of a - b/2?
marq (ping after 24h) 2017/01/09 18:05:00 Yes, I am mostly innumerate.
}
}
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