Chromium Code Reviews| Index: chrome/browser/ui/panels/panel_browser_window_gtk.h |
| diff --git a/chrome/browser/ui/panels/panel_browser_window_gtk.h b/chrome/browser/ui/panels/panel_browser_window_gtk.h |
| index f08b047c029715afa3987820ea74f2b6e5375de5..5f5c9d650344ec581ecc131c7e1a188ff7a8c36c 100644 |
| --- a/chrome/browser/ui/panels/panel_browser_window_gtk.h |
| +++ b/chrome/browser/ui/panels/panel_browser_window_gtk.h |
| @@ -41,6 +41,7 @@ class PanelBrowserWindowGtk : public BrowserWindowGtk, |
| virtual void SaveWindowPosition() OVERRIDE; |
| virtual void SetGeometryHints() OVERRIDE; |
| virtual bool UseCustomFrame() OVERRIDE; |
| + virtual void OnSizeChanged(int width, int height) OVERRIDE; |
| // Overridden from NativePanel: |
| virtual void ShowPanel() OVERRIDE; |
| @@ -76,12 +77,12 @@ class PanelBrowserWindowGtk : public BrowserWindowGtk, |
| virtual void SetRestoredHeight(int height) OVERRIDE; |
| private: |
| - // Resize the window as specified by the bounds. Move the window to the |
| - // specified location only if "move" is true. We set the window gravity to be |
| - // GDK_GRAVITY_SOUTH_EAST which means the window is anchored to the bottom |
| - // right corner on resize, making it unnecessary to move the window if the |
| - // bottom right corner is unchanged, for example when we minimize to the |
| - // bottom. Moving can actually result in the wrong behavior. |
| + // Resize the window as specified by the bounds. |
| + // Panels use window gravity of GDK_GRAVITY_SOUTH_EAST which means the |
| + // window is anchored to the bottom right corner on resize, making it |
| + // unnecessary to move the window if the bottom right corner is unchanged. |
| + // For example, when we minimize to the bottom, moving can actually |
| + // result in the wrong behavior. |
| // - Say window is 100x100 with x,y=900,900 on a 1000x1000 screen. |
| // - Say you minimize the window to 100x3 and move it to 900,997 to keep it |
| // anchored to the bottom. |
| @@ -89,7 +90,9 @@ class PanelBrowserWindowGtk : public BrowserWindowGtk, |
| // the move will take the window off screen and it won't honor the |
| // request. |
| // - When resize finally happens, you'll have a 100x3 window a x,y=900,900. |
| - void SetBoundsImpl(const gfx::Rect& bounds, bool move); |
| + // Set |force_move| to true to force a move regardless. Otherwise, the |
| + // window is only moved if the bottom right corner is being changed. |
| + void SetBoundsImpl(const gfx::Rect& bounds, bool force_move); |
| // MessageLoop::Observer implementation: |
| virtual void WillProcessEvent(GdkEvent* event) OVERRIDE; |
| @@ -156,6 +159,10 @@ class PanelBrowserWindowGtk : public BrowserWindowGtk, |
| // been minimized. |
| int restored_height_; |
| + // False until the window has been allocated and the size of browser window |
| + // frame around the content is known. |
| + bool non_client_area_size_known_; |
|
jianli
2011/09/20 23:35:39
Seems to be simpler and more natural to invert it
jennb
2011/09/20 23:46:43
I left this one as-is. I'm more accustomed to the
|
| + |
| DISALLOW_COPY_AND_ASSIGN(PanelBrowserWindowGtk); |
| }; |