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

Side by Side Diff: content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java

Issue 631873004: Removing repeated retrieval of width and height for PastePopup menu. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.content.browser.input; 5 package org.chromium.content.browser.input;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.content.res.TypedArray; 8 import android.content.res.TypedArray;
9 import android.util.TypedValue; 9 import android.util.TypedValue;
10 import android.view.Gravity; 10 import android.view.Gravity;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 public void onClick(View v) { 104 public void onClick(View v) {
105 paste(); 105 paste();
106 hide(); 106 hide();
107 } 107 }
108 108
109 private void positionAt(int x, int y) { 109 private void positionAt(int x, int y) {
110 if (mRawPositionX == x && mRawPositionY == y && isShowing()) return; 110 if (mRawPositionX == x && mRawPositionY == y && isShowing()) return;
111 mRawPositionX = x; 111 mRawPositionX = x;
112 mRawPositionY = y; 112 mRawPositionY = y;
113 113
114 View contentView = mContainer.getContentView(); 114 final View contentView = mContainer.getContentView();
115 int width = contentView.getMeasuredWidth(); 115 final int width = contentView.getMeasuredWidth();
116 int height = contentView.getMeasuredHeight(); 116 final int height = contentView.getMeasuredHeight();
117 117
118 mPositionX = (int) (x - width / 2.0f); 118 mPositionX = (int) (x - width / 2.0f);
119 mPositionY = y - height - mLineOffsetY; 119 mPositionY = y - height - mLineOffsetY;
120 120
121 final int[] coords = new int[2]; 121 final int[] coords = new int[2];
122 mParent.getLocationInWindow(coords); 122 mParent.getLocationInWindow(coords);
123 coords[0] += mPositionX; 123 coords[0] += mPositionX;
124 coords[1] += mPositionY; 124 coords[1] += mPositionY;
125 125
126 int minOffsetY = 0; 126 int minOffsetY = 0;
127 if (mParent.getSystemUiVisibility() == View.SYSTEM_UI_FLAG_VISIBLE) { 127 if (mParent.getSystemUiVisibility() == View.SYSTEM_UI_FLAG_VISIBLE) {
128 minOffsetY = mStatusBarHeight; 128 minOffsetY = mStatusBarHeight;
129 } 129 }
130 130
131 final int screenWidth = mContext.getResources().getDisplayMetrics().widt hPixels; 131 final int screenWidth = mContext.getResources().getDisplayMetrics().widt hPixels;
132 if (coords[1] < minOffsetY) { 132 if (coords[1] < minOffsetY) {
133 // Update dimensions from new view
134 contentView = mContainer.getContentView();
135 width = contentView.getMeasuredWidth();
136 height = contentView.getMeasuredHeight();
137
138 // Vertical clipping, move under edited line and to the side of inse rtion cursor 133 // Vertical clipping, move under edited line and to the side of inse rtion cursor
139 // TODO bottom clipping in case there is no system bar 134 // TODO bottom clipping in case there is no system bar
140 coords[1] += height; 135 coords[1] += height;
141 coords[1] += mLineOffsetY; 136 coords[1] += mLineOffsetY;
142 137
143 // Move to right hand side of insertion cursor by default. TODO RTL text. 138 // Move to right hand side of insertion cursor by default. TODO RTL text.
144 final int handleHalfWidth = mWidthOffsetX / 2; 139 final int handleHalfWidth = mWidthOffsetX / 2;
145 140
146 if (x + width < screenWidth) { 141 if (x + width < screenWidth) {
147 coords[0] += handleHalfWidth + width / 2; 142 coords[0] += handleHalfWidth + width / 2;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 mPasteView.setOnClickListener(this); 178 mPasteView.setOnClickListener(this);
184 } 179 }
185 180
186 mContainer.setContentView(mPasteView); 181 mContainer.setContentView(mPasteView);
187 } 182 }
188 183
189 private void paste() { 184 private void paste() {
190 mDelegate.paste(); 185 mDelegate.paste();
191 } 186 }
192 } 187 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698