Title: [130660] trunk/Tools
Revision
130660
Author
commit-qu...@webkit.org
Date
2012-10-08 11:37:40 -0700 (Mon, 08 Oct 2012)

Log Message

[EFL][WK2] Add support for window.close in Minibrowser
https://bugs.webkit.org/show_bug.cgi?id=98667

Patch by Christophe Dumez <christophe.du...@intel.com> on 2012-10-08
Reviewed by Laszlo Gombos.

When calling window.close() from _javascript_, MiniBrowser
now closes the given window.

* MiniBrowser/efl/main.c:
(window_close):
(on_ecore_evas_delete):
(on_close_window):
(window_create):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (130659 => 130660)


--- trunk/Tools/ChangeLog	2012-10-08 18:35:35 UTC (rev 130659)
+++ trunk/Tools/ChangeLog	2012-10-08 18:37:40 UTC (rev 130660)
@@ -1,3 +1,19 @@
+2012-10-08  Christophe Dumez  <christophe.du...@intel.com>
+
+        [EFL][WK2] Add support for window.close in Minibrowser
+        https://bugs.webkit.org/show_bug.cgi?id=98667
+
+        Reviewed by Laszlo Gombos.
+
+        When calling window.close() from _javascript_, MiniBrowser
+        now closes the given window.
+
+        * MiniBrowser/efl/main.c:
+        (window_close):
+        (on_ecore_evas_delete):
+        (on_close_window):
+        (window_create):
+
 2012-10-08  Ojan Vafai  <o...@chromium.org>
 
         Properly strip new tests from the test results json if they are pass/nodata/skip.

Modified: trunk/Tools/MiniBrowser/efl/main.c (130659 => 130660)


--- trunk/Tools/MiniBrowser/efl/main.c	2012-10-08 18:35:35 UTC (rev 130659)
+++ trunk/Tools/MiniBrowser/efl/main.c	2012-10-08 18:37:40 UTC (rev 130660)
@@ -98,6 +98,15 @@
     free(window);
 }
 
+static void window_close(Browser_Window *window)
+{
+    windows = eina_list_remove(windows, window);
+    window_free(window);
+
+    if (!windows)
+        ecore_main_loop_quit();
+}
+
 static Eina_Bool main_signal_exit(void *data, int ev_type, void *ev)
 {
     Browser_Window *window;
@@ -110,13 +119,7 @@
 
 static void on_ecore_evas_delete(Ecore_Evas *ee)
 {
-    Browser_Window *window = browser_window_find(ee);
-
-    window_free(window);
-    windows = eina_list_remove(windows, window);
-
-    if (!windows)
-        ecore_main_loop_quit();
+    window_close(browser_window_find(ee));
 }
 
 static void on_ecore_evas_resize(Ecore_Evas *ee)
@@ -232,6 +235,12 @@
 }
 
 static void
+on_close_window(void *user_data, void *event_info)
+{
+    window_close((Browser_Window *)user_data);
+}
+
+static void
 on_progress(void *user_data, Evas_Object *webview, void *event_info)
 {
     Browser_Window *window = (Browser_Window *)user_data;
@@ -340,6 +349,7 @@
     Ewk_Settings *settings = ewk_view_settings_get(window->webview);
     ewk_settings_file_access_from_file_urls_allowed_set(settings, EINA_TRUE);
 
+    evas_object_smart_callback_add(window->webview, "close,window", on_close_window, window);
     evas_object_smart_callback_add(window->webview, "create,window", on_new_window, window);
     evas_object_smart_callback_add(window->webview, "download,failed", on_download_failed, window);
     evas_object_smart_callback_add(window->webview, "download,finished", on_download_finished, window);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to