summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-18 18:27:06 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-18 18:27:06 +0000
commit87fd4736637ef76af6a3bff62877f6db74e1d1ff (patch)
treec4883480237901b34960bfa594fe8e96b565b482 /chrome/browser
parentf20534bf8c1ba3aae4d518db453fa5339aa4f3ce (diff)
downloadchromium_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.cc23
-rw-r--r--chrome/browser/gtk/extension_view_gtk.h6
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_;