diff options
author | Shaun McCance <shaunm@src.gnome.org> | 2004-10-18 07:03:53 +0000 |
---|---|---|
committer | Shaun McCance <shaunm@src.gnome.org> | 2004-10-18 07:03:53 +0000 |
commit | 6a344073489424259e754687812a6da3f0d4f1bd (patch) | |
tree | 603cceaca259a175f8c361c737e347f1cb30865f | |
parent | ecbb0fa95f3442c72591be37e8665b1cdfd0cb5d (diff) | |
download | yelp-6a344073489424259e754687812a6da3f0d4f1bd.tar.gz |
- Patch from Don Scorgie to make Copy work. Yay!
* src/Makefile.am:
* src/yelp-gecko-utils.cpp:
* src/yelp-gecko-utils.h:
* src/yelp-html-gecko.c:
* src/yelp-html.h:
* src/yelp-window.c:
- Patch from Don Scorgie to make Copy work. Yay!
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | src/yelp-gecko-utils.cpp | 13 | ||||
-rw-r--r-- | src/yelp-gecko-utils.h | 2 | ||||
-rw-r--r-- | src/yelp-html-gecko.c | 12 | ||||
-rw-r--r-- | src/yelp-html.h | 2 | ||||
-rw-r--r-- | src/yelp-window.c | 3 |
7 files changed, 43 insertions, 0 deletions
@@ -1,5 +1,15 @@ 2004-10-18 Shaun McCance <shaunm@gnome.org> + * src/Makefile.am: + * src/yelp-gecko-utils.cpp: + * src/yelp-gecko-utils.h: + * src/yelp-html-gecko.c: + * src/yelp-html.h: + * src/yelp-window.c: + - Patch from Don Scorgie to make Copy work. Yay! + +2004-10-18 Shaun McCance <shaunm@gnome.org> + * configure.in: - Minor changes diff --git a/src/Makefile.am b/src/Makefile.am index 83af6b0c..83bc6c84 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -12,6 +12,7 @@ INCLUDES = \ -I$(MOZILLA_INCLUDE_ROOT)/pref \ -I$(MOZILLA_INCLUDE_ROOT)/webbrwsr \ -I$(MOZILLA_INCLUDE_ROOT)/string \ + -I$(MOZILLA_INCLUDE_ROOT)/webshell \ -include $(MOZILLA_INCLUDE_ROOT)/mozilla-config.h \ -DG_LOG_DOMAIN=\"Yelp\" \ -DPREFIX=\""$(prefix)"\" \ diff --git a/src/yelp-gecko-utils.cpp b/src/yelp-gecko-utils.cpp index f02d7eee..afd8333f 100644 --- a/src/yelp-gecko-utils.cpp +++ b/src/yelp-gecko-utils.cpp @@ -24,6 +24,7 @@ #include <gtkmozembed_internal.h> #include <nsIWebBrowser.h> #include <nsIWebBrowserFind.h> +#include <nsIClipboardCommands.h> #include <nsCOMPtr.h> #include <nsIInterfaceRequestorUtils.h> #include <nsReadableUtils.h> @@ -144,3 +145,15 @@ yelp_gecko_find (GtkMozEmbed *embed, return didFind; } + +extern "C" gboolean +yelp_gecko_copy_selection (GtkMozEmbed *embed) +{ + nsCOMPtr<nsIWebBrowser> webBrowser; + gtk_moz_embed_get_nsIWebBrowser (embed, getter_AddRefs(webBrowser)); + + nsCOMPtr<nsIClipboardCommands> clip (do_GetInterface(webBrowser)); + NS_ENSURE_TRUE (clip, NS_ERROR_FAILURE); + + clip->CopySelection(); +} diff --git a/src/yelp-gecko-utils.h b/src/yelp-gecko-utils.h index b2c61eaf..9fc7511b 100644 --- a/src/yelp-gecko-utils.h +++ b/src/yelp-gecko-utils.h @@ -36,6 +36,8 @@ gboolean yelp_gecko_find (GtkMozEmbed *html, gboolean wrap, gboolean forward); +gboolean yelp_gecko_copy_selection (GtkMozEmbed *html); + G_END_DECLS #endif /* __YELP_GECKO_UTILS_H__ */ diff --git a/src/yelp-html-gecko.c b/src/yelp-html-gecko.c index 632340cf..6e7927af 100644 --- a/src/yelp-html-gecko.c +++ b/src/yelp-html-gecko.c @@ -289,3 +289,15 @@ html_set_fonts (void) yelp_gecko_set_font (YELP_FONT_FIXED, font); g_free (font); } + +void +yelp_html_copy_selection (YelpHtml *html) +{ + YelpHtmlPriv *priv; + + g_return_if_fail (html != NULL); + + priv = html->priv; + + yelp_gecko_copy_selection (GTK_MOZ_EMBED (priv->embed)); +} diff --git a/src/yelp-html.h b/src/yelp-html.h index 9e6af004..f4eaf188 100644 --- a/src/yelp-html.h +++ b/src/yelp-html.h @@ -81,5 +81,7 @@ gboolean yelp_html_find (YelpHtml *html, void yelp_html_jump_to_anchor (YelpHtml *html, gchar *anchor); +void yelp_html_copy_selection (YelpHtml *html); + #endif /* __YELP_HTML_H__ */ diff --git a/src/yelp-window.c b/src/yelp-window.c index 48e1667a..112f9f3b 100644 --- a/src/yelp-window.c +++ b/src/yelp-window.c @@ -1620,6 +1620,9 @@ window_close_window_cb (GtkAction *action, YelpWindow *window) static void window_copy_cb (GtkAction *action, YelpWindow *window) { + g_return_if_fail (YELP_IS_WINDOW (window)); + + yelp_html_copy_selection (window->priv->html_view); } static void |