[evolution/webkit: 113/146] Add caret-mode change proxying to EMailDisplay
- From: Dan VrÃtil <dvratil src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/webkit: 113/146] Add caret-mode change proxying to EMailDisplay
- Date: Thu, 9 Feb 2012 14:27:57 +0000 (UTC)
commit dc31071cd1a2a1e8c1689f295e5f09bbb88edc17
Author: Dan VrÃtil <dvratil redhat com>
Date: Tue Jan 10 10:41:48 2012 +0100
Add caret-mode change proxying to EMailDisplay
mail/e-mail-display.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++-
mail/e-mail-display.h | 6 ++++-
2 files changed, 55 insertions(+), 3 deletions(-)
---
diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c
index 93c5525..d18a5bc 100644
--- a/mail/e-mail-display.c
+++ b/mail/e-mail-display.c
@@ -67,6 +67,8 @@ struct _EMailDisplayPrivate {
GtkActionGroup *mailto_actions;
GtkActionGroup *images_actions;
+
+ guint caret_mode:1;
};
enum {
@@ -75,6 +77,7 @@ enum {
PROP_MODE,
PROP_HEADERS_COLLAPSABLE,
PROP_HEADERS_COLLAPSED,
+ PROP_CARET_MODE,
};
enum {
@@ -190,8 +193,6 @@ static void
mail_display_webview_update_actions (EWebView *web_view,
gpointer user_data)
{
- EMailDisplay *display = user_data;
-
const gchar *image_src;
gboolean visible;
GtkAction *action;
@@ -299,6 +300,11 @@ mail_display_set_property (GObject *object,
E_MAIL_DISPLAY (object),
g_value_get_boolean (value));
return;
+ case PROP_CARET_MODE:
+ e_mail_display_set_caret_mode (
+ E_MAIL_DISPLAY (object),
+ g_value_get_boolean (value));
+ return;
}
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -331,6 +337,11 @@ mail_display_get_property (GObject *object,
value, e_mail_display_get_headers_collapsed (
E_MAIL_DISPLAY (object)));
return;
+ case PROP_CARET_MODE:
+ g_value_set_boolean (
+ value, e_mail_display_get_caret_mode(
+ E_MAIL_DISPLAY (object)));
+ return;
}
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -688,6 +699,9 @@ mail_display_setup_webview (EMailDisplay *display,
g_signal_connect (web_view, "update-actions",
G_CALLBACK (mail_display_webview_update_actions), display);
+ g_object_bind_property (web_view, "caret-mode",
+ display, "caret-mode", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
+
settings = webkit_web_view_get_settings (WEBKIT_WEB_VIEW (web_view));
/* When webviews holds headers or attached image then the can_load_images option
does not apply */
@@ -1032,6 +1046,16 @@ mail_display_class_init (EMailDisplayClass *class)
FALSE,
G_PARAM_READWRITE));
+ g_object_class_install_property (
+ object_class,
+ PROP_CARET_MODE,
+ g_param_spec_boolean (
+ "caret-mode",
+ "Caret Mode",
+ NULL,
+ FALSE,
+ G_PARAM_READWRITE));
+
signals[POPUP_EVENT] = g_signal_new (
"popup-event",
G_TYPE_FROM_CLASS (class),
@@ -1416,6 +1440,30 @@ e_mail_display_get_selection_plain_text (EMailDisplay *display,
return g_strdup (str);
}
+void
+e_mail_display_set_caret_mode (EMailDisplay *display,
+ gboolean caret_mode)
+{
+ g_return_if_fail (E_IS_MAIL_DISPLAY (display));
+
+ if (display->priv->caret_mode == caret_mode)
+ return;
+
+ display->priv->caret_mode = caret_mode;
+
+ g_object_notify (G_OBJECT (display), "caret-mode");
+}
+
+gboolean
+e_mail_display_get_caret_mode (EMailDisplay *display)
+{
+ g_return_val_if_fail (E_IS_MAIL_DISPLAY (display), FALSE);
+
+ return display->priv->caret_mode;
+}
+
+
+
static void
webview_action (GtkWidget *widget, WebViewActionFunc func)
{
diff --git a/mail/e-mail-display.h b/mail/e-mail-display.h
index 82bf5b7..ec0e64a 100644
--- a/mail/e-mail-display.h
+++ b/mail/e-mail-display.h
@@ -106,8 +106,12 @@ gboolean e_mail_display_is_selection_active
(EMailDisplay *display);
gchar* e_mail_display_get_selection_plain_text
- (EMailDisplay *display, gint *len);
+ (EMailDisplay *display,
+ gint *len);
+void e_mail_display_set_caret_mode (EMailDisplay *display,
+ gboolean caret_mode);
+gboolean e_mail_display_get_caret_mode (EMailDisplay *display);
void e_mail_display_zoom_100 (EMailDisplay *display);
void e_mail_display_zoom_in (EMailDisplay *display);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]