| Index: content/browser/renderer_host/render_widget_host_view_gtk.cc
|
| diff --git a/content/browser/renderer_host/render_widget_host_view_gtk.cc b/content/browser/renderer_host/render_widget_host_view_gtk.cc
|
| index 852ed79dee4d9231c733d43fa1a0b0c096e92d3a..7c26122138a7d554d717a6712574ac2e4cce3586 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_gtk.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_view_gtk.cc
|
| @@ -207,8 +207,7 @@ class RenderWidgetHostViewGtkWidget {
|
| static gboolean OnConfigureEvent(GtkWidget* widget,
|
| GdkEventConfigure* event,
|
| RenderWidgetHostViewGtk* host_view) {
|
| - host_view->widget_center_valid_ = false;
|
| - host_view->mouse_has_been_warped_to_new_center_ = false;
|
| + host_view->MarkCachedWidgetCenterStale();
|
| return FALSE;
|
| }
|
|
|
| @@ -1288,6 +1287,11 @@ bool RenderWidgetHostViewGtk::LockMouse() {
|
| // Clear the tooltip window.
|
| SetTooltipText(string16());
|
|
|
| + // Ensure that the widget center location will be relevant for this mouse
|
| + // lock session. It is updated whenever the window geometry moves
|
| + // but may be out of date due to switching tabs.
|
| + MarkCachedWidgetCenterStale();
|
| +
|
| return true;
|
| }
|
|
|
| @@ -1365,6 +1369,11 @@ void RenderWidgetHostViewGtk::set_last_mouse_down(GdkEventButton* event) {
|
| last_mouse_down_ = temp;
|
| }
|
|
|
| +void RenderWidgetHostViewGtk::MarkCachedWidgetCenterStale() {
|
| + widget_center_valid_ = false;
|
| + mouse_has_been_warped_to_new_center_ = false;
|
| +}
|
| +
|
| gfx::Point RenderWidgetHostViewGtk::GetWidgetCenter() {
|
| if (widget_center_valid_)
|
| return widget_center_;
|
|
|