Index: chrome/browser/ui/gtk/extensions/shell_window_gtk.cc |
diff --git a/chrome/browser/ui/gtk/extensions/shell_window_gtk.cc b/chrome/browser/ui/gtk/extensions/shell_window_gtk.cc |
index 268ae302e737a6bffb2edd14fb46558aeabf4e0a..049ef81e2bc839ab0d6d74bca03c565da03cb088 100644 |
--- a/chrome/browser/ui/gtk/extensions/shell_window_gtk.cc |
+++ b/chrome/browser/ui/gtk/extensions/shell_window_gtk.cc |
@@ -10,7 +10,6 @@ |
#include "chrome/browser/ui/gtk/gtk_util.h" |
#include "chrome/browser/ui/gtk/gtk_window_util.h" |
#include "chrome/browser/web_applications/web_app.h" |
-#include "chrome/common/extensions/draggable_region.h" |
#include "chrome/common/extensions/extension.h" |
#include "content/public/browser/render_view_host.h" |
#include "content/public/browser/render_widget_host_view.h" |
@@ -31,6 +30,7 @@ const int kDebounceTimeoutMilliseconds = 100; |
ShellWindowGtk::ShellWindowGtk(ShellWindow* shell_window, |
const ShellWindow::CreateParams& params) |
: shell_window_(shell_window), |
+ window_(NULL), |
state_(GDK_WINDOW_STATE_WITHDRAWN), |
is_active_(!ui::ActiveWindowWatcherX::WMSupportsActivation()), |
content_thinks_its_fullscreen_(false), |
@@ -287,8 +287,8 @@ gboolean ShellWindowGtk::OnWindowState(GtkWidget* sender, |
gboolean ShellWindowGtk::OnButtonPress(GtkWidget* widget, |
GdkEventButton* event) { |
- if (!draggable_region_.isEmpty() && |
- draggable_region_.contains(event->x, event->y)) { |
+ if (!draggable_region_->isEmpty() && |
+ draggable_region_->contains(event->x, event->y)) { |
if (event->button == 1) { |
if (GDK_BUTTON_PRESS == event->type) { |
if (!suppress_window_raise_) |
@@ -353,51 +353,7 @@ void ShellWindowGtk::UpdateDraggableRegions( |
if (!frameless_) |
return; |
- SkRegion draggable_region; |
- |
- // By default, the whole window is non-draggable. We need to explicitly |
- // include those draggable regions. |
- for (std::vector<extensions::DraggableRegion>::const_iterator iter = |
- regions.begin(); |
- iter != regions.end(); ++iter) { |
- const extensions::DraggableRegion& region = *iter; |
- draggable_region.op( |
- region.bounds.x(), |
- region.bounds.y(), |
- region.bounds.right(), |
- region.bounds.bottom(), |
- region.draggable ? SkRegion::kUnion_Op : SkRegion::kDifference_Op); |
- } |
- |
- draggable_region_ = draggable_region; |
-} |
- |
-void ShellWindowGtk::UpdateLegacyDraggableRegions( |
- const std::vector<extensions::DraggableRegion>& regions) { |
- // Draggable region is not supported for non-frameless window. |
- if (!frameless_) |
- return; |
- |
- SkRegion draggable_region; |
- |
- // By default, the whole window is draggable. |
- gfx::Rect bounds = GetBounds(); |
- draggable_region.op(0, 0, bounds.right(), bounds.bottom(), |
- SkRegion::kUnion_Op); |
- |
- // Exclude those designated as non-draggable. |
- for (std::vector<extensions::DraggableRegion>::const_iterator iter = |
- regions.begin(); |
- iter != regions.end(); ++iter) { |
- const extensions::DraggableRegion& region = *iter; |
- draggable_region.op(region.bounds.x(), |
- region.bounds.y(), |
- region.bounds.right(), |
- region.bounds.bottom(), |
- SkRegion::kDifference_Op); |
- } |
- |
- draggable_region_ = draggable_region; |
+ draggable_region_.reset(ShellWindow::RawDraggableRegionsToSkRegion(regions)); |
} |
// static |