aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog4
-rw-r--r--mail/em-folder-browser.c43
-rw-r--r--mail/mail-security.glade3
3 files changed, 49 insertions, 1 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 0cd183148e..ab07283b92 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,5 +1,9 @@
2003-12-01 Not Zed <NotZed@Ximian.com>
+ * em-folder-browser.c (emfb_edit_cut, emfb_edit_copy)
+ (emfb_edit_paste): override the em-folder-view impl, and handle
+ the search bar properly. For #48746.
+
* mail-security.glade: added some padding to the security details
frames.
diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c
index 37682c298c..3a1bae2f16 100644
--- a/mail/em-folder-browser.c
+++ b/mail/em-folder-browser.c
@@ -440,6 +440,45 @@ emfb_list_key_press(ETree *tree, int row, ETreePath path, int col, GdkEvent *ev,
/* ********************************************************************** */
static void
+emfb_edit_cut(BonoboUIComponent *uid, void *data, const char *path)
+{
+ EMFolderBrowser *emfb = data;
+
+ /* TODO: pity we can't sucblass this method, ugh, virtualise it? */
+
+ if (GTK_WIDGET_HAS_FOCUS(((ESearchBar *)emfb->search)->entry))
+ gtk_editable_cut_clipboard((GtkEditable *)((ESearchBar *)emfb->search)->entry);
+ else if (message_list_has_primary_selection(emfb->view.list))
+ message_list_copy(emfb->view.list, TRUE);
+ else if (emfb->view.preview_active)
+ em_format_html_display_cut(emfb->view.preview);
+}
+
+static void
+emfb_edit_copy(BonoboUIComponent *uid, void *data, const char *path)
+{
+ EMFolderBrowser *emfb = data;
+
+ if (GTK_WIDGET_HAS_FOCUS(((ESearchBar *)emfb->search)->entry))
+ gtk_editable_copy_clipboard((GtkEditable *)((ESearchBar *)emfb->search)->entry);
+ else if (message_list_has_primary_selection(emfb->view.list))
+ message_list_copy(emfb->view.list, FALSE);
+ else if (emfb->view.preview_active)
+ em_format_html_display_copy(emfb->view.preview);
+}
+
+static void
+emfb_edit_paste(BonoboUIComponent *uid, void *data, const char *path)
+{
+ EMFolderBrowser *emfb = data;
+
+ if (GTK_WIDGET_HAS_FOCUS(((ESearchBar *)emfb->search)->entry))
+ gtk_editable_paste_clipboard((GtkEditable *)((ESearchBar *)emfb->search)->entry);
+ else
+ message_list_paste(emfb->view.list);
+}
+
+static void
emfb_edit_invert_selection(BonoboUIComponent *uid, void *data, const char *path)
{
EMFolderView *emfv = data;
@@ -600,6 +639,10 @@ emfb_tools_vfolders(BonoboUIComponent *uid, void *data, const char *path)
}
static BonoboUIVerb emfb_verbs[] = {
+ BONOBO_UI_UNSAFE_VERB ("EditCut", emfb_edit_cut),
+ BONOBO_UI_UNSAFE_VERB ("EditCopy", emfb_edit_copy),
+ BONOBO_UI_UNSAFE_VERB ("EditPaste", emfb_edit_paste),
+
BONOBO_UI_UNSAFE_VERB ("EditInvertSelection", emfb_edit_invert_selection),
BONOBO_UI_UNSAFE_VERB ("EditSelectAll", emfb_edit_select_all),
BONOBO_UI_UNSAFE_VERB ("EditSelectThread", emfb_edit_select_thread),
diff --git a/mail/mail-security.glade b/mail/mail-security.glade
index 6fd001739a..5dfbed673e 100644
--- a/mail/mail-security.glade
+++ b/mail/mail-security.glade
@@ -2,7 +2,6 @@
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
-<requires lib="gnome"/>
<widget class="GtkDialog" id="message_security_dialog">
<property name="visible">True</property>
@@ -71,6 +70,7 @@
<child>
<widget class="GtkVBox" id="signature_vbox">
+ <property name="border_width">6</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
@@ -116,6 +116,7 @@
<child>
<widget class="GtkVBox" id="encryption_vbox">
+ <property name="border_width">6</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>