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

Unified Diff: ui/views/widget/native_widget_mac.mm

Issue 489763002: MacViews: Gets a webview working in views_examples_with_content_exe Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase to master Created 6 years, 4 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
« no previous file with comments | « ui/views/views.gyp ('k') | ui/views_content_client/views_content_client_main_parts_mac.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/widget/native_widget_mac.mm
diff --git a/ui/views/widget/native_widget_mac.mm b/ui/views/widget/native_widget_mac.mm
index f40c2f476281fbcb4ba69d29ecb56291ff407a46..1b4d04a09ff3c1406eadbb8b5bd18edae701dc50 100644
--- a/ui/views/widget/native_widget_mac.mm
+++ b/ui/views/widget/native_widget_mac.mm
@@ -587,7 +587,34 @@ void NativeWidgetPrivate::GetAllOwnedWidgets(gfx::NativeView native_view,
// static
void NativeWidgetPrivate::ReparentNativeView(gfx::NativeView native_view,
gfx::NativeView new_parent) {
- NOTIMPLEMENTED();
+ DCHECK_NE(native_view, new_parent);
+
+ gfx::NativeView old_parent = [native_view superview];
+ if (old_parent == new_parent)
+ return;
+
+ // On Mac, changing the native view heirarchy will affect at most two Widgets.
+ NativeWidgetPrivate* old_parent_widget =
+ GetNativeWidgetForNativeView(native_view);
+ NativeWidgetPrivate* new_parent_widget =
+ GetNativeWidgetForNativeView(new_parent);
+
+ if (old_parent_widget == new_parent_widget)
+ old_parent_widget = NULL;
+ if (old_parent_widget)
+ old_parent_widget->GetWidget()->NotifyNativeViewHierarchyWillChange();
+ if (new_parent_widget)
+ new_parent_widget->GetWidget()->NotifyNativeViewHierarchyWillChange();
+
+ [native_view removeFromSuperview];
+
+ if (new_parent)
+ [new_parent addSubview:native_view];
+
+ if (old_parent_widget)
+ old_parent_widget->GetWidget()->NotifyNativeViewHierarchyChanged();
+ if (new_parent_widget)
+ new_parent_widget->GetWidget()->NotifyNativeViewHierarchyChanged();
}
// static
« no previous file with comments | « ui/views/views.gyp ('k') | ui/views_content_client/views_content_client_main_parts_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698