<?xml version="1.0"?>
<paste-with-annotations>
  <paste>
    <number>
      <integer>92196</integer>
    </number>
    <user>
      <string>kov</string>
    </user>
    <title>
      <string>make EphyEmbed a GtkVBox</string>
    </title>
    <contents>
      <string>commit ca85479d0214dca1551bc36364a6baad1eec4b54
Author: Gustavo Noronha Silva &lt;gns@gnome.org&gt;
Date:   Wed Dec 16 13:35:55 2009 +0100

    Make EphyEmbed inherit from GtkVBox instead of GtkScrolledWindow
    
    This is the first step towards providing an InfoBar, and being able to
    attach the Web Inspector to the main browser window.

diff --git a/embed/ephy-embed-utils.h b/embed/ephy-embed-utils.h
index 5d82171..e57cba4 100644
--- a/embed/ephy-embed-utils.h
+++ b/embed/ephy-embed-utils.h
@@ -35,8 +35,8 @@
 
 G_BEGIN_DECLS
 
-#define EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED(embed) (WEBKIT_WEB_VIEW (gtk_bin_get_child (GTK_BIN (embed))))
-#define EPHY_GET_EPHY_WEB_VIEW_FROM_EMBED(embed) (EPHY_WEB_VIEW (gtk_bin_get_child (GTK_BIN (embed))))
+#define EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED(embed) (WEBKIT_WEB_VIEW (ephy_embed_get_web_view (embed)))
+#define EPHY_GET_EPHY_WEB_VIEW_FROM_EMBED(embed) (EPHY_WEB_VIEW (ephy_embed_get_web_view (embed)))
 #define EPHY_GET_EMBED_FROM_EPHY_WEB_VIEW(view) (EPHY_EMBED (gtk_widget_get_parent (GTK_WIDGET (view))))
 
 #define EPHY_WEBKIT_BACK_FORWARD_LIMIT 100
diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c
index b839c6b..987097b 100644
--- a/embed/ephy-embed.c
+++ b/embed/ephy-embed.c
@@ -57,6 +57,7 @@ static void     ephy_embed_constructed (GObject *object);
 
 struct EphyEmbedPrivate
 {
+  GtkScrolledWindow *scrolled_window;
   WebKitWebView *web_view;
   EphyHistory *history;
   GtkWidget *inspector_window;
@@ -64,7 +65,7 @@ struct EphyEmbedPrivate
   guint is_setting_zoom : 1;
 };
 
-G_DEFINE_TYPE (EphyEmbed, ephy_embed, GTK_TYPE_SCROLLED_WINDOW)
+G_DEFINE_TYPE (EphyEmbed, ephy_embed, GTK_TYPE_VBOX)
 
 static void
 uri_changed_cb (WebKitWebView *web_view,
@@ -296,7 +297,7 @@ ephy_embed_grab_focus (GtkWidget *widget)
 {
   GtkWidget *child;
 
-  child = gtk_bin_get_child (GTK_BIN (widget));
+  child = GTK_WIDGET (ephy_embed_get_web_view (EPHY_EMBED (widget)));
 
   if (child)
     gtk_widget_grab_focus (child);
@@ -775,14 +776,18 @@ static void
 ephy_embed_constructed (GObject *object)
 {
   EphyEmbed *embed = (EphyEmbed*)object;
+  GtkWidget *scrolled_window;
   WebKitWebView *web_view;
   WebKitWebInspector *inspector;
   GtkWidget *inspector_sw;
 
-  embed-&gt;priv = EPHY_EMBED_GET_PRIVATE (embed);
+  scrolled_window = embed-&gt;priv-&gt;scrolled_window;
+  gtk_container_add (GTK_CONTAINER (embed), scrolled_window);
+  gtk_widget_show (scrolled_window);
+
   web_view = WEBKIT_WEB_VIEW (ephy_web_view_new ());
   embed-&gt;priv-&gt;web_view = web_view;
-  gtk_container_add (GTK_CONTAINER (embed), GTK_WIDGET (web_view));
+  gtk_container_add (GTK_CONTAINER (embed-&gt;priv-&gt;scrolled_window), GTK_WIDGET (web_view));
   gtk_widget_show (GTK_WIDGET (web_view));
 
   g_object_connect (web_view,
@@ -831,7 +836,11 @@ ephy_embed_constructed (GObject *object)
 static void
 ephy_embed_init (EphyEmbed *embed)
 {
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (embed),
+  embed-&gt;priv = EPHY_EMBED_GET_PRIVATE (embed);
+
+  embed-&gt;priv-&gt;scrolled_window = GTK_SCROLLED_WINDOW (gtk_scrolled_window_new (NULL, NULL));
+
+  gtk_scrolled_window_set_policy (embed-&gt;priv-&gt;scrolled_window,
                                   GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 }
 
diff --git a/embed/ephy-embed.h b/embed/ephy-embed.h
index 18fb6ed..01e78ca 100644
--- a/embed/ephy-embed.h
+++ b/embed/ephy-embed.h
@@ -41,7 +41,7 @@ typedef struct EphyEmbed EphyEmbed;
 typedef struct EphyEmbedPrivate EphyEmbedPrivate;
 
 struct EphyEmbed {
-  GtkScrolledWindow parent_instance;
+  GtkVBox parent_instance;
 
   /*&lt; private &gt;*/
   EphyEmbedPrivate *priv;
diff --git a/src/ephy-notebook.c b/src/ephy-notebook.c
index 0ea261d..fb54957 100644
--- a/src/ephy-notebook.c
+++ b/src/ephy-notebook.c
@@ -811,7 +811,7 @@ ephy_notebook_remove (GtkContainer *container,
 	tab_label_icon = g_object_get_data (G_OBJECT (tab_label), &quot;icon&quot;);
 	tab_label_label = g_object_get_data (G_OBJECT (tab_label), &quot;label&quot;);
 
-	view = EPHY_GET_EPHY_WEB_VIEW_FROM_EMBED (tab_widget);
+	view = EPHY_GET_EPHY_WEB_VIEW_FROM_EMBED (EPHY_EMBED (tab_widget));
 
 	g_signal_handlers_disconnect_by_func
 		(view, G_CALLBACK (sync_icon), tab_label_icon);
diff --git a/src/ephy-session.c b/src/ephy-session.c
index 3919c6c..e757a9f 100644
--- a/src/ephy-session.c
+++ b/src/ephy-session.c
@@ -1345,7 +1345,7 @@ confirm_before_recover (EphyWindow* window, char* url, char* title)
 						  EPHY_NEW_TAB_IN_EXISTING_WINDOW | EPHY_NEW_TAB_APPEND_LAST);
 
 	/* show generated html and put the original URL in the navigation bar */
-	webkit_web_view_load_html_string (EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed),
+	webkit_web_view_load_html_string (EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (EPHY_EMBED (embed)),
 					  html-&gt;str, 
 					  url);	
 	g_string_free (html, TRUE);
</string>
    </contents>
    <universal-time>
      <integer>3469955865</integer>
    </universal-time>
    <channel>
      <string>#webkit-gtk</string>
    </channel>
    <colorization-mode>
      <string>WebKit (text or diff)</string>
    </colorization-mode>
    <maybe-spam>
      <null/>
    </maybe-spam>
    <is-unicode>
      <keyword>TRUE</keyword>
    </is-unicode>
    <deletion-requested>
      <null/>
    </deletion-requested>
    <deletion-requested-email>
      <null/>
    </deletion-requested-email>
    <expiration-time>
      <null/>
    </expiration-time>
  </paste>
</paste-with-annotations>
