| Index: views/widget/widget_gtk.cc
|
| diff --git a/views/widget/widget_gtk.cc b/views/widget/widget_gtk.cc
|
| index 5f470c53d751aabe3a816fe52b23fd5d239ca542..c5ed6168a9eedad12a38c042d22e11a5a95b10e3 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* from,
|
| + const Widget* to,
|
| + gfx::Rect* rect) {
|
| + DCHECK(from);
|
| + DCHECK(to);
|
| + DCHECK(rect);
|
| +
|
| + GtkWidget* from_widget = from->GetNativeView();
|
| + GtkWidget* to_widget = to->GetNativeView();
|
| + if (from_widget == to_widget)
|
| + return true;
|
| +
|
| + if (!from_widget || !to_widget)
|
| + return false;
|
| +
|
| + GdkRectangle gdk_rect = rect->ToGdkRectangle();
|
| + if (gtk_widget_translate_coordinates(from_widget, to_widget,
|
| + gdk_rect.x, gdk_rect.y,
|
| + &gdk_rect.x, &gdk_rect.y)) {
|
| + *rect = gdk_rect;
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| ////////////////////////////////////////////////////////////////////////////////
|
| // NativeWidget, public:
|
|
|
|
|