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

Side by Side Diff: third_party/WebKit/Source/core/editing/FrameSelection.h

Issue 2201853002: Blink handle selection handle visibility (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixed contextual search test function Created 4 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights
3 * reserved. 3 * reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 CursorAlignOnScroll = CursorAlignOnScroll::IfNeeded); 117 CursorAlignOnScroll = CursorAlignOnScroll::IfNeeded);
118 void moveTo(const Position&, TextAffinity); 118 void moveTo(const Position&, TextAffinity);
119 119
120 template <typename Strategy> 120 template <typename Strategy>
121 const VisibleSelectionTemplate<Strategy>& visibleSelection() const; 121 const VisibleSelectionTemplate<Strategy>& visibleSelection() const;
122 122
123 const VisibleSelection& selection() const; 123 const VisibleSelection& selection() const;
124 void setSelection(const VisibleSelection&, 124 void setSelection(const VisibleSelection&,
125 SetSelectionOptions = CloseTyping | ClearTypingStyle, 125 SetSelectionOptions = CloseTyping | ClearTypingStyle,
126 CursorAlignOnScroll = CursorAlignOnScroll::IfNeeded, 126 CursorAlignOnScroll = CursorAlignOnScroll::IfNeeded,
127 TextGranularity = CharacterGranularity); 127 TextGranularity = CharacterGranularity,
128 bool isHandleVisible = false);
yosin_UTC9 2016/10/17 07:27:46 Could you pass |isHandleVisible| in |SetSelectionO
amaralp 2016/10/19 04:26:38 Done.
128 void setSelection(const VisibleSelectionInFlatTree&, 129 void setSelection(const VisibleSelectionInFlatTree&,
129 SetSelectionOptions = CloseTyping | ClearTypingStyle, 130 SetSelectionOptions = CloseTyping | ClearTypingStyle,
130 CursorAlignOnScroll = CursorAlignOnScroll::IfNeeded, 131 CursorAlignOnScroll = CursorAlignOnScroll::IfNeeded,
131 TextGranularity = CharacterGranularity); 132 TextGranularity = CharacterGranularity,
133 bool isHandleVisible = false);
132 // TODO(yosin) We should get rid of two parameters version of 134 // TODO(yosin) We should get rid of two parameters version of
133 // |setSelection()| to avoid conflict of four parameters version. 135 // |setSelection()| to avoid conflict of four parameters version.
134 void setSelection(const VisibleSelection& selection, 136 void setSelection(const VisibleSelection& selection,
135 TextGranularity granularity) { 137 TextGranularity granularity,
138 bool isHandleVisible = false) {
136 setSelection(selection, CloseTyping | ClearTypingStyle, 139 setSelection(selection, CloseTyping | ClearTypingStyle,
137 CursorAlignOnScroll::IfNeeded, granularity); 140 CursorAlignOnScroll::IfNeeded, granularity, isHandleVisible);
138 } 141 }
139 // TODO(yosin) We should get rid of |Range| version of |setSelectedRagne()| 142 // TODO(yosin) We should get rid of |Range| version of |setSelectedRagne()|
140 // for Oilpan. 143 // for Oilpan.
141 bool setSelectedRange( 144 bool setSelectedRange(
142 Range*, 145 Range*,
143 TextAffinity, 146 TextAffinity,
144 SelectionDirectionalMode = SelectionDirectionalMode::NonDirectional, 147 SelectionDirectionalMode = SelectionDirectionalMode::NonDirectional,
145 SetSelectionOptions = CloseTyping | ClearTypingStyle); 148 SetSelectionOptions = CloseTyping | ClearTypingStyle);
146 bool setSelectedRange( 149 bool setSelectedRange(
147 const EphemeralRange&, 150 const EphemeralRange&,
148 TextAffinity, 151 TextAffinity,
149 SelectionDirectionalMode = SelectionDirectionalMode::NonDirectional, 152 SelectionDirectionalMode = SelectionDirectionalMode::NonDirectional,
150 FrameSelection::SetSelectionOptions = CloseTyping | ClearTypingStyle); 153 FrameSelection::SetSelectionOptions = CloseTyping | ClearTypingStyle);
151 void selectAll(); 154 void selectAll();
152 void clear(); 155 void clear();
153 156
154 // Call this after doing user-triggered selections to make it easy to delete 157 // Call this after doing user-triggered selections to make it easy to delete
155 // the frame you entirely selected. 158 // the frame you entirely selected.
156 void selectFrameElementInParentIfFullySelected(); 159 void selectFrameElementInParentIfFullySelected();
157 160
161 bool contains(const HitTestResult&);
158 bool contains(const LayoutPoint&); 162 bool contains(const LayoutPoint&);
159 163
160 SelectionType getSelectionType() const { 164 SelectionType getSelectionType() const {
161 return selection().getSelectionType(); 165 return selection().getSelectionType();
162 } 166 }
163 167
164 TextAffinity affinity() const { return selection().affinity(); } 168 TextAffinity affinity() const { return selection().affinity(); }
165 169
166 bool modify(EAlteration, 170 bool modify(EAlteration,
167 SelectionDirection, 171 SelectionDirection,
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 // Used to suspend caret blinking while the mouse is down. 239 // Used to suspend caret blinking while the mouse is down.
236 void setCaretBlinkingSuspended(bool); 240 void setCaretBlinkingSuspended(bool);
237 bool isCaretBlinkingSuspended() const; 241 bool isCaretBlinkingSuspended() const;
238 242
239 // Focus 243 // Focus
240 void setFocused(bool); 244 void setFocused(bool);
241 bool isFocused() const { return m_focused; } 245 bool isFocused() const { return m_focused; }
242 bool isFocusedAndActive() const; 246 bool isFocusedAndActive() const;
243 void pageActivationChanged(); 247 void pageActivationChanged();
244 248
249 bool isHandleVisible() const { return m_isHandleVisible; }
250
245 void updateSecureKeyboardEntryIfActive(); 251 void updateSecureKeyboardEntryIfActive();
246 252
247 // Returns true if a word is selected. 253 // Returns true if a word is selected.
248 bool selectWordAroundPosition(const VisiblePosition&); 254 bool selectWordAroundPosition(const VisiblePosition&);
249 255
250 #ifndef NDEBUG 256 #ifndef NDEBUG
251 void showTreeForThis() const; 257 void showTreeForThis() const;
252 #endif 258 #endif
253 259
254 enum EndPointsAdjustmentMode { 260 enum EndPointsAdjustmentMode {
255 AdjustEndpointsAtBidiBoundary, 261 AdjustEndpointsAtBidiBoundary,
256 DoNotAdjsutEndpoints 262 DoNotAdjustEndpoints
yosin_UTC9 2016/10/17 07:27:46 Good catch! http://crrev.com/2424703002 will fix t
amaralp 2016/10/19 04:26:38 Thanks!
257 }; 263 };
258 void setNonDirectionalSelectionIfNeeded( 264 void setNonDirectionalSelectionIfNeeded(
259 const VisibleSelectionInFlatTree&, 265 const VisibleSelectionInFlatTree&,
260 TextGranularity, 266 TextGranularity,
261 EndPointsAdjustmentMode = DoNotAdjsutEndpoints); 267 EndPointsAdjustmentMode = DoNotAdjustEndpoints,
268 bool isHandleVisible = false);
262 void setFocusedNodeIfNeeded(); 269 void setFocusedNodeIfNeeded();
263 void notifyLayoutObjectOfSelectionChange(EUserTriggered); 270 void notifyLayoutObjectOfSelectionChange(EUserTriggered);
264 271
265 EditingStyle* typingStyle() const; 272 EditingStyle* typingStyle() const;
266 void setTypingStyle(EditingStyle*); 273 void setTypingStyle(EditingStyle*);
267 void clearTypingStyle(); 274 void clearTypingStyle();
268 275
269 String selectedHTMLForClipboard() const; 276 String selectedHTMLForClipboard() const;
270 String selectedText(TextIteratorBehavior = TextIteratorDefaultBehavior) const; 277 String selectedText(TextIteratorBehavior = TextIteratorDefaultBehavior) const;
271 String selectedTextForClipboard() const; 278 String selectedTextForClipboard() const;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 315
309 template <typename Strategy> 316 template <typename Strategy>
310 VisiblePositionTemplate<Strategy> originalBase() const; 317 VisiblePositionTemplate<Strategy> originalBase() const;
311 void setOriginalBase(const VisiblePosition&); 318 void setOriginalBase(const VisiblePosition&);
312 void setOriginalBase(const VisiblePositionInFlatTree&); 319 void setOriginalBase(const VisiblePositionInFlatTree&);
313 320
314 template <typename Strategy> 321 template <typename Strategy>
315 void setSelectionAlgorithm(const VisibleSelectionTemplate<Strategy>&, 322 void setSelectionAlgorithm(const VisibleSelectionTemplate<Strategy>&,
316 SetSelectionOptions, 323 SetSelectionOptions,
317 CursorAlignOnScroll, 324 CursorAlignOnScroll,
318 TextGranularity); 325 TextGranularity,
326 bool isHandleVisible = false);
319 327
320 void respondToNodeModification(Node&, 328 void respondToNodeModification(Node&,
321 bool baseRemoved, 329 bool baseRemoved,
322 bool extentRemoved, 330 bool extentRemoved,
323 bool startRemoved, 331 bool startRemoved,
324 bool endRemoved); 332 bool endRemoved);
325 333
326 void notifyAccessibilityForSelectionChange(); 334 void notifyAccessibilityForSelectionChange();
327 void notifyCompositorForSelectionChange(); 335 void notifyCompositorForSelectionChange();
328 void notifyEventHandlerForSelectionChange(); 336 void notifyEventHandlerForSelectionChange();
(...skipping 24 matching lines...) Expand all
353 361
354 // Used to store base before the adjustment at bidi boundary 362 // Used to store base before the adjustment at bidi boundary
355 VisiblePositionInFlatTree m_originalBaseInFlatTree; 363 VisiblePositionInFlatTree m_originalBaseInFlatTree;
356 TextGranularity m_granularity; 364 TextGranularity m_granularity;
357 LayoutUnit m_xPosForVerticalArrowNavigation; 365 LayoutUnit m_xPosForVerticalArrowNavigation;
358 366
359 Member<EditingStyle> m_typingStyle; 367 Member<EditingStyle> m_typingStyle;
360 368
361 bool m_focused : 1; 369 bool m_focused : 1;
362 370
371 bool m_isHandleVisible : 1;
372
363 // Controls text granularity used to adjust the selection's extent in 373 // Controls text granularity used to adjust the selection's extent in
364 // moveRangeSelectionExtent. 374 // moveRangeSelectionExtent.
365 std::unique_ptr<GranularityStrategy> m_granularityStrategy; 375 std::unique_ptr<GranularityStrategy> m_granularityStrategy;
366 376
367 const Member<FrameCaret> m_frameCaret; 377 const Member<FrameCaret> m_frameCaret;
368 }; 378 };
369 379
370 inline EditingStyle* FrameSelection::typingStyle() const { 380 inline EditingStyle* FrameSelection::typingStyle() const {
371 return m_typingStyle.get(); 381 return m_typingStyle.get();
372 } 382 }
373 383
374 inline void FrameSelection::clearTypingStyle() { 384 inline void FrameSelection::clearTypingStyle() {
375 m_typingStyle.clear(); 385 m_typingStyle.clear();
376 } 386 }
377 387
378 inline void FrameSelection::setTypingStyle(EditingStyle* style) { 388 inline void FrameSelection::setTypingStyle(EditingStyle* style) {
379 m_typingStyle = style; 389 m_typingStyle = style;
380 } 390 }
381 } // namespace blink 391 } // namespace blink
382 392
383 #ifndef NDEBUG 393 #ifndef NDEBUG
384 // Outside the WebCore namespace for ease of invocation from gdb. 394 // Outside the WebCore namespace for ease of invocation from gdb.
385 void showTree(const blink::FrameSelection&); 395 void showTree(const blink::FrameSelection&);
386 void showTree(const blink::FrameSelection*); 396 void showTree(const blink::FrameSelection*);
387 #endif 397 #endif
388 398
389 #endif // FrameSelection_h 399 #endif // FrameSelection_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698