Title: [154322] trunk/Tools
Revision
154322
Author
[email protected]
Date
2013-08-20 04:00:14 -0700 (Tue, 20 Aug 2013)

Log Message

<https://webkit.org/b/120009> [GTK] Stop button should be added to MiniBrowser

Patch by Anton Obzhirov <[email protected]> on 2013-08-20
Reviewed by Martin Robinson.

Added stop button in MiniBrowser

* MiniBrowser/gtk/BrowserWindow.c:
(reloadOrStopCallback): Callback to handle stop or reload button click.
(webViewLoadProgressChanged): Update reload or stop button icon.
(browser_window_init): Save button pointer for further icon updates.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (154321 => 154322)


--- trunk/Tools/ChangeLog	2013-08-20 10:44:32 UTC (rev 154321)
+++ trunk/Tools/ChangeLog	2013-08-20 11:00:14 UTC (rev 154322)
@@ -1,3 +1,16 @@
+2013-08-20  Anton Obzhirov  <[email protected]>
+
+        <https://webkit.org/b/120009> [GTK] Stop button should be added to MiniBrowser
+
+        Reviewed by Martin Robinson.
+
+        Added stop button in MiniBrowser
+
+        * MiniBrowser/gtk/BrowserWindow.c:
+        (reloadOrStopCallback): Callback to handle stop or reload button click.
+        (webViewLoadProgressChanged): Update reload or stop button icon.
+        (browser_window_init): Save button pointer for further icon updates.
+
 2013-08-20  Simon Pena  <[email protected]>
 
         <https://webkit.org/b/117584> [GTK][WK1] http/tests/loading/unfinished-load-back-to-cached-page-callbacks.html is failing

Modified: trunk/Tools/MiniBrowser/gtk/BrowserWindow.c (154321 => 154322)


--- trunk/Tools/MiniBrowser/gtk/BrowserWindow.c	2013-08-20 10:44:32 UTC (rev 154321)
+++ trunk/Tools/MiniBrowser/gtk/BrowserWindow.c	2013-08-20 11:00:14 UTC (rev 154322)
@@ -67,6 +67,7 @@
 static const gdouble maximumZoomLevel = 3;
 static const gdouble zoomStep = 1.2;
 static gint windowCount = 0;
+static GtkToolButton* reloadOrStopButton = 0;
 
 G_DEFINE_TYPE(BrowserWindow, browser_window, GTK_TYPE_WINDOW)
 
@@ -104,9 +105,12 @@
     browser_window_load_uri(window, gtk_entry_get_text(GTK_ENTRY(window->uriEntry)));
 }
 
-static void reloadCallback(BrowserWindow *window)
+static void reloadOrStopCallback(BrowserWindow *window)
 {
-    webkit_web_view_reload(window->webView);
+    if (!g_strcmp0(gtk_tool_button_get_stock_id(reloadOrStopButton), GTK_STOCK_STOP))
+        webkit_web_view_stop_loading(window->webView);
+    else
+        webkit_web_view_reload(window->webView);
 }
 
 static void goBackCallback(BrowserWindow *window)
@@ -155,8 +159,14 @@
 {
     gdouble progress = webkit_web_view_get_estimated_load_progress(webView);
     gtk_entry_set_progress_fraction(GTK_ENTRY(window->uriEntry), progress);
-    if (progress == 1.0)
+
+    if (progress > 0.0 && progress < 1.0)
+        gtk_tool_button_set_stock_id(reloadOrStopButton, GTK_STOCK_STOP);
+
+    if (progress == 1.0) {
+        gtk_tool_button_set_stock_id(reloadOrStopButton, GTK_STOCK_REFRESH);
         g_timeout_add(500, (GSourceFunc)resetEntryProgress, window->uriEntry);
+    }
 }
 
 static void downloadStarted(WebKitWebContext *webContext, WebKitDownload *download, BrowserWindow *window)
@@ -571,11 +581,11 @@
     gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1);
     gtk_widget_show(GTK_WIDGET(item));
 
-    item = gtk_tool_button_new_from_stock(GTK_STOCK_REFRESH);
-    g_signal_connect_swapped(item, "clicked", G_CALLBACK(reloadCallback), window);
-    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1);
-    gtk_widget_add_accelerator(GTK_WIDGET(item), "clicked", accelGroup, GDK_KEY_F5, 0, GTK_ACCEL_VISIBLE);
-    gtk_widget_show(GTK_WIDGET(item));
+    reloadOrStopButton = gtk_tool_button_new_from_stock(GTK_STOCK_REFRESH);
+    g_signal_connect_swapped(reloadOrStopButton, "clicked", G_CALLBACK(reloadOrStopCallback), window);
+    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), reloadOrStopButton, -1);
+    gtk_widget_add_accelerator(GTK_WIDGET(reloadOrStopButton), "clicked", accelGroup, GDK_KEY_F5, 0, GTK_ACCEL_VISIBLE);
+    gtk_widget_show(GTK_WIDGET(reloadOrStopButton));
 
     GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
     window->mainBox = vbox;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to