| Index: views/widget/widget_gtk.cc
|
| diff --git a/views/widget/widget_gtk.cc b/views/widget/widget_gtk.cc
|
| index 5f470c53d751aabe3a816fe52b23fd5d239ca542..599ca9e2a90197cbabacfd5adef8756aea9eb0a1 100644
|
| --- a/views/widget/widget_gtk.cc
|
| +++ b/views/widget/widget_gtk.cc
|
| @@ -1568,6 +1568,32 @@ void Widget::NotifyLocaleChanged() {
|
| g_list_free(window_list);
|
| }
|
|
|
| +// static
|
| +bool Widget::ConvertRect(const Widget* source,
|
| + const Widget* target,
|
| + gfx::Rect* rect) {
|
| + DCHECK(source);
|
| + DCHECK(target);
|
| + DCHECK(rect);
|
| +
|
| + GtkWidget* source_widget = source->GetNativeView();
|
| + GtkWidget* target_widget = target->GetNativeView();
|
| + if (source_widget == target_widget)
|
| + return true;
|
| +
|
| + if (!source_widget || !target_widget)
|
| + return false;
|
| +
|
| + GdkRectangle gdk_rect = rect->ToGdkRectangle();
|
| + if (gtk_widget_translate_coordinates(source_widget, target_widget,
|
| + gdk_rect.x, gdk_rect.y,
|
| + &gdk_rect.x, &gdk_rect.y)) {
|
| + *rect = gdk_rect;
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| ////////////////////////////////////////////////////////////////////////////////
|
| // NativeWidget, public:
|
|
|
|
|