diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-18 18:27:06 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-18 18:27:06 +0000 |
commit | 87fd4736637ef76af6a3bff62877f6db74e1d1ff (patch) | |
tree | c4883480237901b34960bfa594fe8e96b565b482 /chrome/browser | |
parent | f20534bf8c1ba3aae4d518db453fa5339aa4f3ce (diff) | |
download | chromium_src-87fd4736637ef76af6a3bff62877f6db74e1d1ff.zip chromium_src-87fd4736637ef76af6a3bff62877f6db74e1d1ff.tar.gz chromium_src-87fd4736637ef76af6a3bff62877f6db74e1d1ff.tar.bz2 |
Merge r34924:
r34925 | estade@chromium.org | 2009-12-17 18:39:47 -0800 (Thu, 17 Dec 2009) | 10 lines
gtk: Browser action dragging fixes
1) fix crasher triggered any time a drag from a different source hovers over the browser action bar.
2) fix graphical issue where changes to the ordering could possibly take a few seconds to propagate to other browser windows.
BUG=30639
TEST=a) drag a bookmark over the browser action toolbar, don't crash
b) open two windows. drag a browser action around, keep holding left mouse button and drag to a distant part of the screen, then rele
ase. The positional change should instantly take effect in the second browser window.
Review URL: http://codereview.chromium.org/506065
TBR=aa@chromium.org
Review URL: http://codereview.chromium.org/501117
git-svn-id: svn://svn.chromium.org/chrome/branches/249/src@34962 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/gtk/extension_view_gtk.cc | 23 | ||||
-rw-r--r-- | chrome/browser/gtk/extension_view_gtk.h | 6 |
2 files changed, 17 insertions, 12 deletions
diff --git a/chrome/browser/gtk/extension_view_gtk.cc b/chrome/browser/gtk/extension_view_gtk.cc index 691ce54..cfe0970 100644 --- a/chrome/browser/gtk/extension_view_gtk.cc +++ b/chrome/browser/gtk/extension_view_gtk.cc @@ -8,10 +8,21 @@ #include "chrome/browser/renderer_host/render_view_host.h" #include "chrome/browser/renderer_host/render_widget_host_view_gtk.h" +namespace { + +// The minimum/maximum dimensions of the extension view. +// The minimum is just a little larger than the size of a browser action button. +// The maximum is an arbitrary number that should be smaller than most screens. +const int kMinWidth = 25; +const int kMinHeight = 25; +const int kMaxWidth = 800; +const int kMaxHeight = 600; + +} // namespace + ExtensionViewGtk::ExtensionViewGtk(ExtensionHost* extension_host, Browser* browser) - : is_toolstrip_(false), - browser_(browser), + : browser_(browser), extension_host_(extension_host), render_widget_host_view_(NULL) { } @@ -37,11 +48,11 @@ void ExtensionViewGtk::SetBackground(const SkBitmap& background) { } void ExtensionViewGtk::UpdatePreferredSize(const gfx::Size& new_size) { - // If we are showing in a shelf, then the shelf sets our height. - int height = is_toolstrip() ? -1 : new_size.height(); + int width = std::max(kMinWidth, std::min(kMaxWidth, new_size.width())); + int height = std::max(kMinHeight, std::min(kMaxHeight, new_size.height())); - render_widget_host_view_->SetSize(gfx::Size(new_size.width(), height)); - gtk_widget_set_size_request(native_view(), new_size.width(), height); + render_widget_host_view_->SetSize(gfx::Size(width, height)); + gtk_widget_set_size_request(native_view(), width, height); } void ExtensionViewGtk::CreateWidgetHostView() { diff --git a/chrome/browser/gtk/extension_view_gtk.h b/chrome/browser/gtk/extension_view_gtk.h index 2bb2923..91d1ded 100644 --- a/chrome/browser/gtk/extension_view_gtk.h +++ b/chrome/browser/gtk/extension_view_gtk.h @@ -25,9 +25,6 @@ class ExtensionViewGtk { gfx::NativeView native_view(); Browser* browser() const { return browser_; } - bool is_toolstrip() const { return is_toolstrip_; } - void set_is_toolstrip(bool is_toolstrip) { is_toolstrip_ = is_toolstrip; } - void SetBackground(const SkBitmap& background); // Method for the ExtensionHost to notify us about the correct size for @@ -43,9 +40,6 @@ class ExtensionViewGtk { private: void CreateWidgetHostView(); - // True if the contents are being displayed inside the extension shelf. - bool is_toolstrip_; - Browser* browser_; ExtensionHost* extension_host_; |