[anjal] More keybindings
- From: Srinivasa Ragavan <sragavan src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [anjal] More keybindings
- Date: Fri, 14 Aug 2009 08:50:54 +0000 (UTC)
commit de42abc36872aac99974655cdb1e10c8f77077ff
Author: Srinivasa Ragavan <sragavan novell com>
Date: Fri Aug 14 14:16:51 2009 +0530
More keybindings
src/mail-shell.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++----
src/mail-shell.h | 3 ++
src/mail-view.c | 9 +++++--
src/mail-view.h | 2 +-
4 files changed, 60 insertions(+), 9 deletions(-)
---
diff --git a/src/mail-shell.c b/src/mail-shell.c
index 1e60a4b..fcfe2ff 100644
--- a/src/mail-shell.c
+++ b/src/mail-shell.c
@@ -41,6 +41,9 @@ enum {
BACKSPACE_PRESSED,
SLASH_PRESSED,
CTRL_W_PRESSED,
+ CTRL_Q_PRESSED,
+ F5_PRESSED,
+
LAST_SIGNAL
};
@@ -91,6 +94,8 @@ struct _MailShellPrivate {
char **args;
};
+static void mail_shell_quit (MailShell *shell);
+
G_DEFINE_TYPE (MailShell, mail_shell, GTK_TYPE_WINDOW)
static void setup_abooks (void);
@@ -138,6 +143,22 @@ ms_slash_pressed (MailShell *shell)
}
static void
+ms_f5_pressed (MailShell *shell)
+{
+ MailView *view = (MailView *)shell->mail_component->mail_view;
+
+ mail_view_check_mail ((MailView *)view, FALSE);
+}
+
+static void
+ms_ctrl_q_pressed (MailShell *shell)
+{
+ MailShellPrivate *priv = shell->priv;
+
+ mail_shell_quit (shell);
+}
+
+static void
mail_shell_class_init (MailShellClass *klass)
{
GObjectClass * object_class = G_OBJECT_CLASS (klass);
@@ -148,7 +169,9 @@ mail_shell_class_init (MailShellClass *klass)
klass->backspace_pressed = ms_backspace_pressed;
klass->ctrl_w_pressed = ms_ctrl_w_pressed;
klass->slash_pressed = ms_slash_pressed;
-
+ klass->f5_pressed = ms_f5_pressed;
+ klass->ctrl_q_pressed = ms_ctrl_q_pressed;
+
mail_shell_signals [BACKSPACE_PRESSED] =
g_signal_new ("backspace_pressed",
G_TYPE_FROM_CLASS (object_class),
@@ -175,12 +198,33 @@ mail_shell_class_init (MailShellClass *klass)
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
-
+
+ mail_shell_signals [CTRL_Q_PRESSED] =
+ g_signal_new ("ctrl_q_pressed",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (MailShellClass, ctrl_q_pressed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+ mail_shell_signals [F5_PRESSED] =
+ g_signal_new ("f5_pressed",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (MailShellClass, f5_pressed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
binding_set = gtk_binding_set_by_class (klass);
gtk_binding_entry_add_signal (binding_set, GDK_W, GDK_CONTROL_MASK, "ctrl_w_pressed", 0);
gtk_binding_entry_add_signal (binding_set, GDK_w, GDK_CONTROL_MASK, "ctrl_w_pressed", 0);
gtk_binding_entry_add_signal (binding_set, GDK_BackSpace, 0, "backspace_pressed", 0);
gtk_binding_entry_add_signal (binding_set, GDK_slash, 0, "slash_pressed", 0);
+ gtk_binding_entry_add_signal (binding_set, GDK_Q, GDK_CONTROL_MASK, "ctrl_q_pressed", 0);
+ gtk_binding_entry_add_signal (binding_set, GDK_Q, GDK_CONTROL_MASK, "ctrl_q_pressed", 0);
+ gtk_binding_entry_add_signal (binding_set, GDK_F5, 0, "f5_pressed", 0);
+
};
static int
@@ -249,7 +293,7 @@ ms_check_mail (GtkButton *button, gpointer data)
MailShell *shell = (MailShell *) data;
MailView *view = (MailView *)shell->mail_component->mail_view;
- mail_view_check_mail ((MailView *)view);
+ mail_view_check_mail ((MailView *)view, TRUE);
}
static void
@@ -409,7 +453,8 @@ mail_shell_construct (MailShell *shell)
g_signal_connect (priv->top_bar, "expose-event",
G_CALLBACK (color_expose),
shell);
- gtk_widget_set_size_request (priv->top_bar, -1, 42);
+ /* Leave it to the theme to decide the height */
+ /* gtk_widget_set_size_request (priv->top_bar, -1, 42); */
}
/* Check mail button and the spinner */
@@ -558,7 +603,7 @@ mail_shell_construct (MailShell *shell)
gtk_paned_add2 ((GtkPaned *)priv->side_pane, box);
tmp = gtk_hbox_new (FALSE, 0);
gtk_widget_show (tmp);
- gtk_box_pack_start (tmp, priv->side_pane, TRUE, TRUE, 2);
+ gtk_box_pack_start ((GtkBox *)tmp, priv->side_pane, TRUE, TRUE, 2);
gtk_box_pack_start ((GtkBox *)priv->box, tmp, TRUE, TRUE, 6);
g_signal_connect (priv->new_mail, "clicked", G_CALLBACK (new_email_btn_clicked),
diff --git a/src/mail-shell.h b/src/mail-shell.h
index da2c4cd..2bdcd89 100644
--- a/src/mail-shell.h
+++ b/src/mail-shell.h
@@ -49,6 +49,9 @@ typedef struct _MailShellClass {
void (* backspace_pressed) (MailShell *class);
void (* ctrl_w_pressed) (MailShell *class);
void (* slash_pressed) (MailShell *class);
+ void (* ctrl_q_pressed) (MailShell *class);
+ void (* f5_pressed) (MailShell *class);
+
} MailShellClass;
MailShell * mail_shell_new (void);
diff --git a/src/mail-view.c b/src/mail-view.c
index 581a2eb..ee8fe88 100644
--- a/src/mail-view.c
+++ b/src/mail-view.c
@@ -728,7 +728,7 @@ mv_spinner_done (CamelFolder *f, gpointer data)
}
void
-mail_view_check_mail(MailView *mv)
+mail_view_check_mail(MailView *mv, gboolean deep)
{
MailViewChild *child = (MailViewChild *)mv->priv->current_view;
@@ -741,8 +741,11 @@ mail_view_check_mail(MailView *mv)
mail_refresh_folder(folder, mv_spinner_done, mv);
}
}
- em_utils_clear_get_password_canceled_accounts_flag ();
- mail_send_receive_dialog (FALSE);
+
+ if (deep) {
+ em_utils_clear_get_password_canceled_accounts_flag ();
+ mail_send_receive_dialog (FALSE);
+ }
}
void
diff --git a/src/mail-view.h b/src/mail-view.h
index 7fae8ed..223dc13 100644
--- a/src/mail-view.h
+++ b/src/mail-view.h
@@ -78,7 +78,7 @@ void mail_view_show_list (MailView *mv);
void mail_view_close_view (MailView *mv);
void mail_view_set_check_email (MailView *mv, GtkWidget *button);
void mail_view_set_sort_by (MailView *mv, GtkWidget *button);
-void mail_view_check_mail(MailView *mv);
+void mail_view_check_mail(MailView *mv, gboolean deep);
void mail_view_set_folder_tree_widget (MailView *mv, GtkWidget *tree);
void mail_view_set_folder_tree (MailView *mv, GtkWidget *tree);
void mail_view_save (MailView *mv);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]