Index: chrome/browser/gtk/tab_contents_container_gtk.h |
diff --git a/chrome/browser/gtk/tab_contents_container_gtk.h b/chrome/browser/gtk/tab_contents_container_gtk.h |
index 1cb72e509e08f91c29d70c7c47300846b8cc30a8..8915b67d16781fa61dbaf3447ce2d194778f0acb 100644 |
--- a/chrome/browser/gtk/tab_contents_container_gtk.h |
+++ b/chrome/browser/gtk/tab_contents_container_gtk.h |
@@ -11,11 +11,12 @@ |
#include "chrome/common/notification_observer.h" |
class RenderViewHost; |
+class StatusBubbleGtk; |
class TabContents; |
class TabContentsContainerGtk : public NotificationObserver { |
public: |
- TabContentsContainerGtk(); |
+ explicit TabContentsContainerGtk(StatusBubbleGtk* status_bubble); |
~TabContentsContainerGtk(); |
// Inserts our GtkWidget* hierarchy into a GtkBox managed by our owner. |
@@ -48,13 +49,29 @@ class TabContentsContainerGtk : public NotificationObserver { |
// get notified. |
void TabContentsDestroyed(TabContents* contents); |
+ // Implements our hack around a GtkFixed. The entire size of the GtkFixed is |
+ // allocated to normal tab contents views, while the status bubble is |
+ // informed of its parent and its parent's allocation (it makes a decision |
+ // about layout later.) |
+ static void OnFixedSizeAllocate( |
+ GtkWidget* fixed, |
+ GtkAllocation* allocation, |
+ TabContentsContainerGtk* container); |
+ |
// The currently visible TabContents. |
TabContents* tab_contents_; |
- // We keep a GtkVBox which is inserted into this object's owner's GtkWidget |
+ // The status bubble manager. Always non-NULL. |
+ StatusBubbleGtk* status_bubble_; |
+ |
+ // We keep a GtkFixed which is inserted into this object's owner's GtkWidget |
// hierarchy. We then insert and remove TabContents GtkWidgets into this |
- // vbox_. |
- GtkWidget* vbox_; |
+ // fixed_. This should not be a GtkVBox since there were errors with timing |
+ // where the vbox was horizontally split with the top half displaying the |
+ // current TabContents and bottom half displaying the loading page. In |
+ // addition, we need to position the status bubble on top of the currently |
+ // displayed TabContents so we put that in this part of the hierarchy. |
+ GtkWidget* fixed_; |
DISALLOW_COPY_AND_ASSIGN(TabContentsContainerGtk); |
}; |