[anjal] Shortcut to close views.



commit f95e9b595222615a88d5c270d89392d5e595f6e0
Author: Srinivasa Ragavan <sragavan novell com>
Date:   Mon Jul 27 00:05:51 2009 +0530

    Shortcut to close views.

 src/mail-shell.c |   25 ++++++++++++++++++++++++-
 src/mail-shell.h |    1 +
 2 files changed, 25 insertions(+), 1 deletions(-)
---
diff --git a/src/mail-shell.c b/src/mail-shell.c
index 6bd7cfd..d3b5f7b 100644
--- a/src/mail-shell.c
+++ b/src/mail-shell.c
@@ -40,6 +40,7 @@
 enum {
 	BACKSPACE_PRESSED,
 	SLASH_PRESSED,
+	CTRL_W_PRESSED,
 	LAST_SIGNAL
 };
 
@@ -119,6 +120,16 @@ ms_backspace_pressed (MailShell *shell)
 }
 
 static void
+ms_ctrl_w_pressed (MailShell *shell)
+{
+	MailShellPrivate *priv = shell->priv;
+
+	gtk_widget_hide (priv->slider);
+	gtk_widget_show (shell->priv->folder_pane);
+	mail_view_close_view ((MailView *)shell->mail_component->mail_view);
+}
+
+static void
 ms_slash_pressed (MailShell *shell)
 {
 	MailShellPrivate *priv = shell->priv;
@@ -135,6 +146,7 @@ mail_shell_class_init (MailShellClass *klass)
 	mail_shell_parent_class = g_type_class_peek_parent (klass);
 	object_class->finalize = mail_shell_finalize;
 	klass->backspace_pressed = ms_backspace_pressed;
+	klass->ctrl_w_pressed = ms_ctrl_w_pressed;
 	klass->slash_pressed = ms_slash_pressed;
 	
 	mail_shell_signals [BACKSPACE_PRESSED] =
@@ -145,8 +157,17 @@ mail_shell_class_init (MailShellClass *klass)
 				NULL, NULL,
 				g_cclosure_marshal_VOID__VOID,
 				G_TYPE_NONE, 0);
+
+	mail_shell_signals [CTRL_W_PRESSED] =
+		g_signal_new ("ctrl_w_pressed",
+				G_TYPE_FROM_CLASS (object_class),
+					  G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+				G_STRUCT_OFFSET (MailShellClass, ctrl_w_pressed),
+				NULL, NULL,
+				g_cclosure_marshal_VOID__VOID,
+				G_TYPE_NONE, 0);
 	
-	mail_shell_signals [BACKSPACE_PRESSED] =
+	mail_shell_signals [SLASH_PRESSED] =
 		g_signal_new ("slash_pressed",
 				G_TYPE_FROM_CLASS (object_class),
 					  G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
@@ -156,6 +177,8 @@ mail_shell_class_init (MailShellClass *klass)
 				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);
 };
diff --git a/src/mail-shell.h b/src/mail-shell.h
index 34d0ce1..d7bd68a 100644
--- a/src/mail-shell.h
+++ b/src/mail-shell.h
@@ -47,6 +47,7 @@ typedef struct _MailShellClass {
 	GtkWindowClass parent_class;
 
 	void (* backspace_pressed)    (MailShell *class);
+	void (* ctrl_w_pressed)    (MailShell *class);
 	void (* slash_pressed)    (MailShell *class);	
 } MailShellClass;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]