| 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
|
|
|