2003-05-13 Chris Toshok <toshok@ximian.com>
* gui/component/select-names/e-select-names-text-model.c
(e_select_names_text_model_set_separator): strlen ->
g_utf8_strlen.
(e_select_names_text_model_insert): same.
(e_select_names_text_model_insert_length): big change, make this
work with multibyte utf8.
(e_select_names_text_model_delete): same. this could possibly use
a tighter loop + a memmove, but this works.
* gui/component/select-names/e-select-names-model.c
(e_select_names_model_get_textification): make sure our truncation
to MAX_LENGTH characters uses utf8 characters, not bytes.
(e_select_names_model_name_pos): track e-text-model change.
pos/length are now in utf8 character terms, so use g_utf8_strlen
instead of strlen.
(e_select_names_model_text_pos): same.
svn path=/trunk/; revision=21165
2003-05-13 Chris Toshok <toshok@ximian.com>
[ fixes several utf8/pango related problems, including bugs
#41288, #42596, #42604 ]
* configure.in (GAL_CURRENT): bump to 3, per mkestner.
(GAL_REVISION): drop to 0, per mkestner.
* gal/e-text/e-text.c (reset_layout_attrs): we need to convert the
start/end bounds of the object to byte indices for the attribute.
(reset_layout): in the layout == NULL case don't create the layout
then immediately set it again with the same text. also, we need
to convert selection_start to a byte index before calling
pango_layout_get_cursor_pos.
(e_text_draw): remove some #ifdef 0'd code, move the calculation
of our initial clip_rect below the xpos/ypos assignments so we
don't duplicate the expression. Fix the selection drawing in the
multiline case so that it actually works, instead of assuming that
all ETexts only have 1 line *boggle*.
(get_position_from_xy): this needs to return a utf8 offset.
(e_text_copy_clipboard): convert sel_start/sel_end to byte indices
before copying.
(primary_get_cb): same.
(paste_received): validate the input here, and drop the length
parameter from e_text_insert.
(next_word): convert from an utf8 offset on entry to this
function, and return a utf8 offset when we're done. also, remove
the call the g_unichar_validate. we validate at all points where
text is inserted.
(find_offset_into_line): new function used in the backward/forward
line code. find the utf8 offset into a line (the number of utf8
characters from a prior \n or beginning of the string.)
(_get_position): in general there are lots of changes here because
text->selection_start/text->selection_end are utf8 offsets, not
byte offsets. fix E_TEP_START_OF_LINE so that hitting Ctrl-a when
you're at the beginning of a line doesn't take you to the
beginning of the previous line. fix E_TEP_END_OF_LINE in an
analogous fashion. for E_TEP_FORWARD_CHARACTER we just increment
by 1. for E_TEP_BACKWARD_CHARACTER we just decrement by 1. for
E_TEP_BACKWARD_WORD we drop the g_unichar_validate call and
simplify things a bit. reimplement
E_TEP_FORWARD_LINE/E_TEP_BACKWARD_LINE so they find the current
offset into the line, then scan forward/backward for the next/prev
line, and put us at the right offset on that line. fix
E_TEP_SELECT_WORD so double clicking in the space between words
doesn't select both words - if you double click on the trailing
edge of the space, it selects the next word. leading edge selects
the previous one. for E_TEP_SELECT_ALL use g_utf8_strlen.
(e_text_insert): everything that calls this passes a \0 terminated
string, so we assume it's \0 terminated (the old code did as well,
with calls to strlen) and drop the length parameter. also make
sure this is all utf8 happy.
(capitalize): use g_utf8_offset_to_pointer instead of just adding
text->text and start/end, and remove the validate call. also fix
the call to e_text_model_delete and use e_text_model_insert_length
instead of e_text_model_insert.
(e_text_command): for E_TEP_INSERT, validate the input. for
E_TEP_CAPS just use MAX instead of the neat little hack. also,
fix the scrolling so that it scrolls properly in both X and Y
directions (there are still some hiccups but it's much much better
than previously).
(e_text_commit_cb): validate the input here.
* gal/e-text/e-text-model.c (struct _ETextModelPrivate): just use
a GString here and get rid of MAX_LENGTH.
(e_text_model_dispose): free GString.
(e_text_model_real_validate_position): clean this up a bit.
(e_text_model_real_get_text): return the contents of the GString.
(e_text_model_real_get_text_length): use g_utf8_strlen here.
(e_text_model_real_set_text): convert to GString
(e_text_model_real_insert): just call e_text_model_insert_length
here instead of duplicating the function.
(e_text_model_real_insert_length): convert to utf8/gstring.
i.e. convert @position and @length to a bytes and use
g_string_insert_len.
(e_text_model_real_delete): same, with g_string_erase.
(e_text_model_get_text_length): use g_utf8_strlen
(e_text_model_strdup_nth_object): convert the length of the object
to bytes before copying.
(e_text_model_get_nth_object_bounds): calculate start/end properly
for u
svn path=/trunk/; revision=21163
2003-05-12 Rodrigo Moya <rodrigo@ximian.com>
Fixes#41760
* gui/alarm-notify/alarm-queue.c (create_snooze): don't add a new
alarm, but update the already existing one.
(notify_dialog_cb): make sure we don't remove the alarm if we are
snoozing.
svn path=/trunk/; revision=21160
2003-05-12 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/camel-smtp-transport.c (smtp_helo): If
host->h_name is NULL or an empty string, default back to using the
IP address rather than the hostname in the EHLO command.
svn path=/trunk/; revision=21159
* component-factory.c (segv_redirect): Removed.
(make_factory): No need to set up the SIGSEGV redirect handler
here, since it's already done in the shell now, and it's in-proc.
* folder-browser-ui.c (folder_browser_ui_rm_all): Only do the
bonobo_ui_component() stuff if the component does have a
container.
svn path=/trunk/; revision=21156
2003-05-11 Chris Toshok <toshok@ximian.com>
[ fixes bug #41245 ]
* gui/component/select-names/select-names.glade: fix
spacing/border widths as per HIG.
* gui/component/select-names/e-select-names.c
(e_select_names_init): set the border width/spacing on widgets we
create here.
svn path=/trunk/; revision=21144
2003-05-09 Mike Kestner <mkestner@ximian.com>
* e-table-item.c (eti_cursor_change): don't return on col == -1.
* e-tree.c (tree_canvas_size_allocate): update the adjustment
to center the cursor.
(hover_timeout): remove unused variable to fix warning
svn path=/trunk/; revision=21142
2003-05-09 Jeremy Katz <katzj@redhat.com>
* printing/e-contact-print.c (e_contact_print_response): Use glib
macro to case from pointer to int.
* printing/e-contact-print-envelope.c: Add missing #include.
* gui/component/select-names/e-select-names-completion.c
(e_select_names_completion_start_query): Use
E_SELECT_NAMES_COMPLETION to avoid warning
svn path=/trunk/; revision=21138
2003-05-09 Jeremy Katz <katzj@redhat.com>
* main.c: Add a #include to fix a warning.
* e-shell-offline-handler.c (update_dialog_clist): Use a list
store instead of a tree model for the store.
svn path=/trunk/; revision=21136
[#42342]
* e-shell-view.c (update_send_receive_sensitivity): New function
to update the Send/Receive menu and toolbar items according to the
current line status.
(e_shell_view_construct): Call it here to set up the initial
state.
(shell_line_status_changed_cb): Use it here as well.
svn path=/trunk/; revision=21135
[#36956]
* e-shell-view.c (update_for_current_uri): Remove the version
number from the window title.
[#42518]
* e-shell-view.c (handle_current_folder_removed): Casefold the
Inbox name only once, instead of once per iteration. Removed the
spurious slash that was being passed in the path in the Inbox case
and prevented it from working. Added missing slash in the path
for the storage case. Casefold the path including the slash,
since we compare against a string that does include the slash.
(storage_set_removed_folder_callback): Remove the notebook page
before calling handle_current_folder_removed(), instead of after;
otherwise, the notebook page number we have might not be valid
anymore.
* e-shell-folder-creation-dialog.c (setup_dialog): Set the default
response for the dialog to GTK_RESPONSE_OK.
svn path=/trunk/; revision=21134
NULLified when the dialog is destroyed in any case, using
g_object_add_weak_pointer(). Prevents a crash that could happen
if the shell would quit with the password dialog still up.
svn path=/trunk/; revision=21133
2003-05-07 Jeffrey Stedfast <fejj@ximian.com>
* mail-display.c (mail_display_render): Make sure that we haven't
been destroyed before we start writing to the html engine. Fixes
bug #42333.
svn path=/trunk/; revision=21132
2003-05-08 Radek Doulik <rodo@ximian.com>
* gal/util/e-util.c (e_gettext): use E_I18N_DOMAIN
* gal/util/e-i18n.h: use e_gettext as we need our text domain to
be binded
svn path=/trunk/; revision=21131
2003-05-07 JP Rosevear <jpr@ximian.com>
* gui/dialogs/task-page.glade: fix button conversion problem
* gui/dialogs/task-details-page.c
(task_details_page_fill_widgets): only free the percent if its
non-null
svn path=/trunk/; revision=21128
2003-05-07 Not Zed <NotZed@Ximian.com>
** See bug #42456
* mail-composer-prefs.c (spell_language_button_press): set the
enable/disable button to the right text when we toggle a column.
Added a fixme about the weird code in the whole routine.
svn path=/trunk/; revision=21127
2003-05-07 Rodrigo Moya <rodrigo@ximian.com>
Fixes crash in #41631
* src/libicalvcal/icalvcal.c (icalvcal_traverse_objects): changed to
return an error code and to return immediately if one of the recurrent
calls return an error.
(icalvcal_convert_with_defaults): if icalvcal_traverse_objects return
an error, return NULL.
svn path=/trunk/; revision=21122
2003-05-06 Not Zed <NotZed@Ximian.com>
** See bug #42400
* mail-tools.c (meta_data_key): protect against getting an
unparsable uri.
svn path=/trunk/; revision=21119
[ really commit this, fixes bug #41910 ]
* gui/contact-list-editor/e-contact-list-model.c
(e_contact_list_model_remove_row): change from model_changed to
row_deleted here. model_changed causes the table to free its
ETableSelection, which is what we iterate over when deleting
contacts.
(e_contact_list_model_add_destination): no need to be calling
model_changed here either.
svn path=/trunk/; revision=21117