SF.net SVN: geany-plugins:[1979] trunk/geany-plugins/devhelp/src/ devhelpplugin.c

codebrainz at users.sourceforge.net codebrainz at xxxxx
Fri Mar 11 02:58:34 UTC 2011


Revision: 1979
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1979&view=rev
Author:   codebrainz
Date:     2011-03-11 02:58:34 +0000 (Fri, 11 Mar 2011)

Log Message:
-----------
Update history buttons when inter-document links are clicked.

Modified Paths:
--------------
    trunk/geany-plugins/devhelp/src/devhelpplugin.c

Modified: trunk/geany-plugins/devhelp/src/devhelpplugin.c
===================================================================
--- trunk/geany-plugins/devhelp/src/devhelpplugin.c	2011-03-11 02:33:01 UTC (rev 1978)
+++ trunk/geany-plugins/devhelp/src/devhelpplugin.c	2011-03-11 02:58:34 UTC (rev 1979)
@@ -203,21 +203,36 @@
     plug->zoom_level = webkit_web_view_get_zoom_level(view);
 }
 
+static void update_history_buttons(DevhelpPlugin *dhplug)
+{
+	WebKitWebView *view = WEBKIT_WEB_VIEW(dhplug->webview);
+	
+	gtk_widget_set_sensitive(GTK_WIDGET(dhplug->btn_back),
+		webkit_web_view_can_go_back(view));
+	
+	gtk_widget_set_sensitive(GTK_WIDGET(dhplug->btn_forward),
+		webkit_web_view_can_go_forward(view));
+}
+
 static void on_document_load_finished(WebKitWebView * view,
                                       WebKitWebFrame * frame,
-                                      gpointer user_data)
+                                      DevhelpPlugin *dhplug)
 {
-    DevhelpPlugin *plug = user_data;
+	update_history_buttons(dhplug);
+}
 
-    if (webkit_web_view_can_go_back(view))
-        gtk_widget_set_sensitive(GTK_WIDGET(plug->btn_back), TRUE);
-    else
-        gtk_widget_set_sensitive(GTK_WIDGET(plug->btn_back), FALSE);
+static void on_uri_changed_notify(GObject *object, 
+								  GParamSpec *pspec, 
+								  DevhelpPlugin *dhplug)
+{
+	update_history_buttons(dhplug);
+}
 
-    if (webkit_web_view_can_go_forward(view))
-        gtk_widget_set_sensitive(GTK_WIDGET(plug->btn_forward), TRUE);
-    else
-        gtk_widget_set_sensitive(GTK_WIDGET(plug->btn_forward), FALSE);
+static void on_load_status_changed_notify(GObject *object,
+										  GParamSpec *pspec,
+										  DevhelpPlugin *dhplug)
+{
+	update_history_buttons(dhplug);
 }
 
 
@@ -395,6 +410,14 @@
     g_signal_connect(WEBKIT_WEB_VIEW(dhplug->webview),
                      "document-load-finished",
                      G_CALLBACK(on_document_load_finished), dhplug);
+    g_signal_connect(WEBKIT_WEB_VIEW(dhplug->webview),
+					 "notify::uri",
+					 G_CALLBACK(on_uri_changed_notify),
+					 dhplug);
+	g_signal_connect(WEBKIT_WEB_VIEW(dhplug->webview),
+					 "notify::load-status",
+					 G_CALLBACK(on_load_status_changed_notify),
+					 dhplug);
 
     /* toggle state tracking */
     dhplug->last_main_tab_id =


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Plugins-Commits mailing list