diff options
author | Radek Doulik <rodo@ximian.com> | 2001-08-10 15:17:54 +0800 |
---|---|---|
committer | Radek Doulik <rodo@src.gnome.org> | 2001-08-10 15:17:54 +0800 |
commit | 79265bbca3ba043df0a735ff6eab1ace879b7a08 (patch) | |
tree | 3c22051a38841cebbe080f91e76fefda3df98a02 | |
parent | d9ae7c3b78cd10b9fec1ee8bf972cf05e319d968 (diff) | |
download | gsoc2013-evolution-79265bbca3ba043df0a735ff6eab1ace879b7a08.tar.gz gsoc2013-evolution-79265bbca3ba043df0a735ff6eab1ace879b7a08.tar.zst gsoc2013-evolution-79265bbca3ba043df0a735ff6eab1ace879b7a08.zip |
new helper function, just setup idle callback to grab focus
2001-08-09 Radek Doulik <rodo@ximian.com>
* e-msg-composer.c (set_focus_to_editor): new helper function,
just setup idle callback to grab focus
(set_focus_to_editor_idle): grab focus for editor, before we have
better solution, it run grab-focus command on editor control
(e_msg_composer_construct): call prepare_engine here, set focus to
editor
svn path=/trunk/; revision=11875
-rw-r--r-- | composer/ChangeLog | 9 | ||||
-rw-r--r-- | composer/e-msg-composer.c | 37 |
2 files changed, 34 insertions, 12 deletions
diff --git a/composer/ChangeLog b/composer/ChangeLog index 7397b1a38d..850f605303 100644 --- a/composer/ChangeLog +++ b/composer/ChangeLog @@ -1,3 +1,12 @@ +2001-08-09 Radek Doulik <rodo@ximian.com> + + * e-msg-composer.c (set_focus_to_editor): new helper function, + just setup idle callback to grab focus + (set_focus_to_editor_idle): grab focus for editor, before we have + better solution, it run grab-focus command on editor control + (e_msg_composer_construct): call prepare_engine here, set focus to + editor + 2001-08-10 Jeffrey Stedfast <fejj@ximian.com> * e-msg-composer.c (autosave_manager_query_load_orphans): Don't diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index 544adb9f5c..622c18ecb4 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -239,6 +239,24 @@ e_msg_composer_clear_inlined_table (EMsgComposer *composer) g_hash_table_foreach_remove (composer->inline_images, clear_inline_images, NULL); } +static guint +set_focus_to_editor_idle (EMsgComposer *composer) +{ + CORBA_Environment ev; + + CORBA_exception_init (&ev); + GNOME_GtkHTML_Editor_Engine_runCommand (composer->editor_engine, "grab-focus", &ev); + CORBA_exception_free (&ev); + + return FALSE; +} + +static inline void +set_focus_to_editor (EMsgComposer *composer) +{ + gtk_idle_add (set_focus_to_editor_idle, composer); +} + static void add_inlined_image (gpointer key, gpointer value, gpointer data) { @@ -2349,13 +2367,9 @@ e_msg_composer_construct (EMsgComposer *composer) gtk_widget_show (composer->editor); e_msg_composer_show_attachments (composer, FALSE); - - /* Set focus on the `To:' field. - - gtk_widget_grab_focus (e_msg_composer_hdrs_get_to_entry (E_MSG_COMPOSER_HDRS (composer->hdrs))); - GTK_WIDGET_SET_FLAGS (composer->editor, GTK_CAN_FOCUS); - gtk_window_set_focus (GTK_WINDOW (composer), composer->editor); */ - gtk_widget_grab_focus (composer->editor); + + prepare_engine (composer); + set_focus_to_editor (composer); } static EMsgComposer * @@ -2371,7 +2385,6 @@ create_composer (void) gtk_object_unref (GTK_OBJECT (new)); return NULL; } - prepare_engine (new); return new; } @@ -2412,7 +2425,7 @@ e_msg_composer_new_with_sig_file () e_msg_composer_set_send_html (new, mail_config_get_send_html ()); set_editor_text (new, ""); } - + return new; } @@ -2621,7 +2634,7 @@ e_msg_composer_new_with_message (CamelMimeMessage *msg) } e_msg_composer_set_headers (new, account_name, To, Cc, Bcc, subject); - + free_recipients (To); free_recipients (Cc); free_recipients (Bcc); @@ -2695,7 +2708,7 @@ e_msg_composer_new_with_message (CamelMimeMessage *msg) e_msg_composer_set_body_text (new, final_text); } } - + return new; } @@ -2829,7 +2842,7 @@ e_msg_composer_new_from_url (const char *url) } } } - + hdrs = E_MSG_COMPOSER_HDRS (composer->hdrs); e_msg_composer_hdrs_set_to (hdrs, to); free_recipients (to); |