[epiphany] ephy-web-view: don't assume a embed-container in close-web-view



commit a24e4eb2215e6f5ace9f66e2c5105e3260ec77cc
Author: Diego Escalante Urrelo <diegoe igalia com>
Date:   Thu Feb 9 04:28:22 2012 -0500

    ephy-web-view: don't assume a embed-container in close-web-view
    
    The EphyWebView is not necessarily embedded in an EphyEmbedContainer.
    
    Simplify close_web_view_cb and make it smarter. It now handles
    EphyEmbedContainer and random toplevel widgets.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=669737

 embed/ephy-web-view.c |   14 +++++---------
 1 files changed, 5 insertions(+), 9 deletions(-)
---
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index 2b5272e..5267ab4 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -2167,19 +2167,15 @@ static gboolean
 close_web_view_cb (WebKitWebView *web_view,
                    gpointer user_data)
 {
-  EphyEmbedContainer *window;
-  GList *children;
   GtkWidget *widget = gtk_widget_get_toplevel (GTK_WIDGET (web_view));
 
-  window = EPHY_EMBED_CONTAINER (widget);
-  children = ephy_embed_container_get_children (window);
+  LOG ("close web view");
 
-  if (g_list_length (children) == 1)
-    gtk_widget_destroy (GTK_WIDGET (window));
+  if (EPHY_IS_EMBED_CONTAINER (widget))
+    ephy_embed_container_remove_child (EPHY_EMBED_CONTAINER (widget),
+                                       EPHY_GET_EMBED_FROM_EPHY_WEB_VIEW (web_view));
   else
-    ephy_embed_container_remove_child (window, EPHY_GET_EMBED_FROM_EPHY_WEB_VIEW (web_view));
-
-  g_list_free (children);
+    gtk_widget_destroy (widget);
 
   return TRUE;
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]