diff options
author | Srinivasa Ragavan <sragavan@novell.com> | 2007-12-05 13:40:12 +0800 |
---|---|---|
committer | Srinivasa Ragavan <sragavan@src.gnome.org> | 2007-12-05 13:40:12 +0800 |
commit | 956cd913f1542ec212f2cc14a28da5b4f7d2e525 (patch) | |
tree | 21eff2768f48b2299738d115ce1cafdabaa38f5d /mail | |
parent | c2d2c2fbbd58465ce877a7537b5c14802ab2f22c (diff) | |
download | gsoc2013-evolution-956cd913f1542ec212f2cc14a28da5b4f7d2e525.tar.gz gsoc2013-evolution-956cd913f1542ec212f2cc14a28da5b4f7d2e525.tar.zst gsoc2013-evolution-956cd913f1542ec212f2cc14a28da5b4f7d2e525.zip |
** Added a preference to disable Magic Spacebar.
2007-12-05 Srinivasa Ragavan <sragavan@novell.com>
** Added a preference to disable Magic Spacebar.
* em-folder-browser.c: (html_scroll), (emfb_list_key_press): Check the cfg
before invoking Magic Spacebar
* em-mailer-prefs.c: (em_mailer_prefs_construct): Preference window handling
* em-mailer-prefs.h:
* evolution-mail.schemas.in:
* mail-config.c: (gconf_magic_spacebar_changed),
(mail_config_init), (mail_config_get_enable_magic_spacebar): Add it part of MC.
* mail-config.glade:
* mail-config.h:
svn path=/trunk/; revision=34650
Diffstat (limited to 'mail')
-rw-r--r-- | mail/ChangeLog | 14 | ||||
-rw-r--r-- | mail/em-folder-browser.c | 8 | ||||
-rw-r--r-- | mail/em-mailer-prefs.c | 5 | ||||
-rw-r--r-- | mail/em-mailer-prefs.h | 1 | ||||
-rw-r--r-- | mail/evolution-mail.schemas.in | 13 | ||||
-rw-r--r-- | mail/mail-config.c | 19 | ||||
-rw-r--r-- | mail/mail-config.glade | 19 | ||||
-rw-r--r-- | mail/mail-config.h | 1 |
8 files changed, 75 insertions, 5 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 6db1ea2833..46e50e28ae 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,17 @@ +2007-12-05 Srinivasa Ragavan <sragavan@novell.com> + + ** Added a preference to disable Magic Spacebar. + + * em-folder-browser.c: (html_scroll), (emfb_list_key_press): Check the cfg + before invoking Magic Spacebar + * em-mailer-prefs.c: (em_mailer_prefs_construct): Preference window handling + * em-mailer-prefs.h: + * evolution-mail.schemas.in: + * mail-config.c: (gconf_magic_spacebar_changed), + (mail_config_init), (mail_config_get_enable_magic_spacebar): Add it part of MC. + * mail-config.glade: + * mail-config.h: + 2007-12-04 David Turner <cillian64@googlemail.com> ** Fix for bug #347329 diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 5253101c67..87bf65fd49 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -409,7 +409,7 @@ html_scroll (GtkHTML *html, EMFolderBrowser *emfb) { - if (html->binding_handled || orientation != GTK_ORIENTATION_VERTICAL) + if (html->binding_handled || orientation != GTK_ORIENTATION_VERTICAL || !mail_config_get_enable_magic_spacebar ()) return; if (scroll_type == GTK_SCROLL_PAGE_FORWARD) { @@ -1169,7 +1169,7 @@ emfb_list_key_press(ETree *tree, int row, ETreePath path, int col, GdkEvent *ev, switch (ev->key.keyval) { case GDK_space: - if (!emfb->view.preview->caret_mode) { + if (!emfb->view.preview->caret_mode && mail_config_get_enable_magic_spacebar ()) { state = gtk_html_command(((EMFormatHTML *)((EMFolderView *) emfb)->preview)->html, "scroll-forward"); if (!state) { folder_choose = message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN); @@ -1182,7 +1182,7 @@ emfb_list_key_press(ETree *tree, int row, ETreePath path, int col, GdkEvent *ev, em_utils_adjustment_page(gtk_scrolled_window_get_vadjustment((GtkScrolledWindow *)emfb->priv->scroll), TRUE); break; case GDK_BackSpace: - if (!emfb->view.preview->caret_mode) { + if (!emfb->view.preview->caret_mode && mail_config_get_enable_magic_spacebar ()) { state = gtk_html_command(((EMFormatHTML *)((EMFolderView *) emfb)->preview)->html, "scroll-backward"); if (!state) { folder_choose = message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_PREVIOUS, 0, CAMEL_MESSAGE_SEEN); @@ -1198,7 +1198,7 @@ emfb_list_key_press(ETree *tree, int row, ETreePath path, int col, GdkEvent *ev, return FALSE; } - if (!folder_choose && !emfb->view.preview->caret_mode) { + if (!folder_choose && !emfb->view.preview->caret_mode && mail_config_get_enable_magic_spacebar ()) { //check for unread messages. if yes .. rewindback to the folder EMFolderTree *emft = g_object_get_data((GObject*)emfb, "foldertree"); switch (ev->key.keyval) { diff --git a/mail/em-mailer-prefs.c b/mail/em-mailer-prefs.c index 9746e620bb..2a4e81117d 100644 --- a/mail/em-mailer-prefs.c +++ b/mail/em-mailer-prefs.c @@ -927,6 +927,11 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs) "/apps/evolution/mail/display/force_message_limit", G_CALLBACK (toggle_button_toggled)); + prefs->magic_spacebar = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "magic_spacebar_checkbox")); + toggle_button_init (prefs, prefs->magic_spacebar, FALSE, + "/apps/evolution/mail/display/magic_spacebar", + G_CALLBACK (toggle_button_toggled)); + prefs->mlimit_count = GTK_SPIN_BUTTON (glade_xml_get_widget (gui, "mlimit_spin")); spin_button_init (prefs, prefs->mlimit_count, "/apps/evolution/mail/display/message_text_part_limit", diff --git a/mail/em-mailer-prefs.h b/mail/em-mailer-prefs.h index 163d6f9406..647da6e571 100644 --- a/mail/em-mailer-prefs.h +++ b/mail/em-mailer-prefs.h @@ -80,6 +80,7 @@ struct _EMMailerPrefs { struct _GtkOptionMenu *charset; struct _GtkToggleButton *citation_highlight; struct _GtkColorButton *citation_color; + struct _GtkToggleButton *magic_spacebar; /* Deleting Mail */ struct _GtkToggleButton *empty_trash; diff --git a/mail/evolution-mail.schemas.in b/mail/evolution-mail.schemas.in index a60d34d8ce..8affc57671 100644 --- a/mail/evolution-mail.schemas.in +++ b/mail/evolution-mail.schemas.in @@ -184,6 +184,19 @@ </schema> <schema> + <key>/schemas/apps/evolution/mail/display/magic_spacebar</key> + <applyto>/apps/evolution/mail/display/magic_spacebar</applyto> + <owner>evolution-mail</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short>Enable or disable magic space bar</short> + <long> Enable this to use Space bar key to scroll in message preview, message list and folders. + </long> + </locale> + </schema> + + <schema> <key>/schemas/apps/evolution/mail/display/mark_citations</key> <applyto>/apps/evolution/mail/display/mark_citations</applyto> <owner>evolution-mail</owner> diff --git a/mail/mail-config.c b/mail/mail-config.c index eda95c7982..f10ac3e868 100644 --- a/mail/mail-config.c +++ b/mail/mail-config.c @@ -110,7 +110,8 @@ typedef struct { guint mlimit_notify_id; gboolean mlimit; gint mlimit_size; - + guint magic_spacebar_notify_id; + gboolean magic_spacebar; GPtrArray *mime_types; guint mime_types_notify_id; @@ -360,6 +361,13 @@ gconf_mlimit_changed (GConfClient *client, guint cnxn_id, } static void +gconf_magic_spacebar_changed (GConfClient *client, guint cnxn_id, + GConfEntry *entry, gpointer user_data) +{ + config->magic_spacebar = gconf_client_get_bool (config->gconf, "/apps/evolution/mail/display/magic_spacebar", NULL); +} + +static void gconf_mime_types_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer user_data) { @@ -399,6 +407,8 @@ mail_config_init (void) gconf_mlimit_changed, NULL, NULL, NULL); config->mlimit_size_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/message_text_part_limit", gconf_mlimit_size_changed, NULL, NULL, NULL); + config->magic_spacebar_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/magic_spacebar", + gconf_magic_spacebar_changed, NULL, NULL, NULL); config->spell_notify_id = gconf_client_notify_add (config->gconf, "/GNOME/Spell", gconf_style_changed, NULL, NULL, NULL); config->mark_citations__notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/mark_citations", @@ -424,6 +434,7 @@ mail_config_init (void) config->address_count = gconf_client_get_int (config->gconf, "/apps/evolution/mail/display/address_count", NULL); config->mlimit = gconf_client_get_bool (config->gconf, "/apps/evolution/mail/display/force_message_limit", NULL); config->mlimit_size = gconf_client_get_int (config->gconf, "/apps/evolution/mail/display/message_text_part_limit", NULL); + config->magic_spacebar = gconf_client_get_bool (config->gconf, "/apps/evolution/mail/display/magic_spacebar", NULL); config->accounts = e_account_list_new (config->gconf); config->signatures = e_signature_list_new (config->gconf); } @@ -574,6 +585,12 @@ mail_config_get_message_limit (void) return config->mlimit_size; } +gboolean +mail_config_get_enable_magic_spacebar () +{ + return config->magic_spacebar; +} + const char * mail_config_get_label_color_by_name (const char *name) { diff --git a/mail/mail-config.glade b/mail/mail-config.glade index 265082d962..4c6cc805c9 100644 --- a/mail/mail-config.glade +++ b/mail/mail-config.glade @@ -5104,6 +5104,25 @@ For example: "Work" or "Personal"</property> </child> <child> + <widget class="GtkCheckButton" id="magic_spacebar_checkbox"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Enable Magic S_pacebar </property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> <widget class="GtkHBox" id="hboxHighlightColor"> <property name="visible">True</property> <property name="homogeneous">False</property> diff --git a/mail/mail-config.h b/mail/mail-config.h index 33b7deea36..ede7291dc4 100644 --- a/mail/mail-config.h +++ b/mail/mail-config.h @@ -136,6 +136,7 @@ void mail_config_remove_account (struct _EAccount *account); void mail_config_set_default_account (struct _EAccount *account); int mail_config_get_address_count (void); int mail_config_get_message_limit (void); +gboolean mail_config_get_enable_magic_spacebar (); void mail_config_remove_account_proxies (struct _EAccount *account); void mail_config_prune_proxies (void); |