| Index: ui/views/cocoa/bridged_native_widget.h
|
| diff --git a/ui/views/cocoa/bridged_native_widget.h b/ui/views/cocoa/bridged_native_widget.h
|
| index 8f6523042de9eead7500964bd6d0daee8883ae63..8289ec2420bde49cbafb53c31883e88c0215f45d 100644
|
| --- a/ui/views/cocoa/bridged_native_widget.h
|
| +++ b/ui/views/cocoa/bridged_native_widget.h
|
| @@ -17,6 +17,7 @@
|
| #include "ui/compositor/layer_owner.h"
|
| #import "ui/views/cocoa/bridged_native_widget_owner.h"
|
| #import "ui/views/cocoa/cocoa_mouse_capture_delegate.h"
|
| +#import "ui/views/cocoa/cocoa_window_move_loop.h"
|
| #import "ui/views/focus/focus_manager.h"
|
| #include "ui/views/views_export.h"
|
| #include "ui/views/widget/widget.h"
|
| @@ -34,6 +35,7 @@ class BridgedNativeWidgetTestApi;
|
| }
|
|
|
| class CocoaMouseCapture;
|
| +class CocoaWindowMoveLoop;
|
| class NativeWidgetMac;
|
| class View;
|
|
|
| @@ -96,6 +98,12 @@ class VIEWS_EXPORT BridgedNativeWidget
|
| void ReleaseCapture();
|
| bool HasCapture();
|
|
|
| + // Start moving the window, pinned to the mouse cursor, and monitor events.
|
| + // Return MOVE_LOOP_SUCCESSFUL on mouse up or MOVE_LOOP_CANCELED on escape.
|
| + Widget::MoveLoopResult RunMoveLoop(const gfx::Vector2d& drag_offset);
|
| + void EndMoveLoop();
|
| + bool IsRunMoveLoopActive() const;
|
| +
|
| // See views::Widget.
|
| void SetNativeWindowProperty(const char* key, void* value);
|
| void* GetNativeWindowProperty(const char* key) const;
|
| @@ -122,6 +130,10 @@ class VIEWS_EXPORT BridgedNativeWidget
|
| // Called by the NSWindowDelegate when the size of the window changes.
|
| void OnSizeChanged();
|
|
|
| + // Called once by the NSWindowDelegate when the position of the window has
|
| + // changed. Called for each mouse event during RunMoveLoop().
|
| + void OnPositionChanged();
|
| +
|
| // Called by the NSWindowDelegate when the visibility of the window may have
|
| // changed. For example, due to a (de)miniaturize operation, or the window
|
| // being reordered in (or out of) the screen list.
|
| @@ -176,8 +188,11 @@ class VIEWS_EXPORT BridgedNativeWidget
|
| // Overridden from ui::internal::InputMethodDelegate:
|
| ui::EventDispatchDetails DispatchKeyEventPostIME(ui::KeyEvent* key) override;
|
|
|
| + static void IgnoreNextMouseDownForDraggableRegions();
|
| +
|
| private:
|
| friend class test::BridgedNativeWidgetTestApi;
|
| + friend class CocoaWindowMoveLoop;
|
|
|
| // Closes all child windows. BridgedNativeWidget children will be destroyed.
|
| void RemoveOrDestroyChildren();
|
| @@ -253,6 +268,7 @@ class VIEWS_EXPORT BridgedNativeWidget
|
| base::scoped_nsobject<BridgedContentView> bridged_view_;
|
| scoped_ptr<ui::InputMethod> input_method_;
|
| scoped_ptr<CocoaMouseCapture> mouse_capture_;
|
| + scoped_ptr<CocoaWindowMoveLoop> window_move_loop_;
|
| scoped_ptr<TooltipManager> tooltip_manager_;
|
| FocusManager* focus_manager_; // Weak. Owned by our Widget.
|
| Widget::InitParams::Type widget_type_;
|
| @@ -269,6 +285,8 @@ class VIEWS_EXPORT BridgedNativeWidget
|
| // has its own copy, but doesn't provide access to it).
|
| gfx::Rect bounds_before_fullscreen_;
|
|
|
| + base::RunLoop* drag_run_loop_ = nullptr;
|
| +
|
| // Whether this window wants to be fullscreen. If a fullscreen animation is in
|
| // progress then it might not be actually fullscreen.
|
| bool target_fullscreen_state_;
|
|
|