[maemo-commits] [maemo-commits] r14034 - in projects/haf/trunk/hildon-fm: . debian hildon-fm
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon Sep 24 16:13:47 EEST 2007
- Previous message: [maemo-commits] r14033 - projects/haf/trunk/hildon-1
- Next message: [maemo-commits] r14035 - in projects/haf/trunk/hildon-fm: . debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: marivoll Date: 2007-09-24 16:13:45 +0300 (Mon, 24 Sep 2007) New Revision: 14034 Modified: projects/haf/trunk/hildon-fm/ChangeLog projects/haf/trunk/hildon-fm/debian/changelog projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-chooser-dialog.c Log: * hildon-fm/hildon-file-chooser-dialog.c (set_entry): Return a boolean indicating whether the entry has actually changed. (hildon_file_chooser_dialog_do_autonaming): Only select the entry text when it has changed. Grab keyboard focus in that case as well (N68695). Modified: projects/haf/trunk/hildon-fm/ChangeLog =================================================================== --- projects/haf/trunk/hildon-fm/ChangeLog 2007-09-24 13:13:41 UTC (rev 14033) +++ projects/haf/trunk/hildon-fm/ChangeLog 2007-09-24 13:13:45 UTC (rev 14034) @@ -1,3 +1,11 @@ +2007-09-24 Marius Vollmer <marius.vollmer at nokia.com> + + * hildon-fm/hildon-file-chooser-dialog.c (set_entry): Return a + boolean indicating whether the entry has actually changed. + (hildon_file_chooser_dialog_do_autonaming): Only select the entry + text when it has changed. Grab keyboard focus in that case as + well (N68695). + 2007-09-24 Kimmo Hämäläinen <kimmo.hamalainen at nokia.com> * hildon-fm/hildon-file-system-model.c (dfa_run): Add a missing Modified: projects/haf/trunk/hildon-fm/debian/changelog =================================================================== --- projects/haf/trunk/hildon-fm/debian/changelog 2007-09-24 13:13:41 UTC (rev 14033) +++ projects/haf/trunk/hildon-fm/debian/changelog 2007-09-24 13:13:45 UTC (rev 14034) @@ -1,6 +1,6 @@ libhildonfm (1:1.9.40~unreleased) unstable; urgency=low - * Fixes: NB#63339, NB#63171, NB#59490, NB#66361. + * Fixes: NB#63339, NB#63171, NB#59490, NB#66361, NB#68695. -- Marius Vollmer <marius.vollmer at nokia.com> Mon, 17 Sep 2007 23:13:51 +0300 Modified: projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-chooser-dialog.c =================================================================== --- projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-chooser-dialog.c 2007-09-24 13:13:41 UTC (rev 14033) +++ projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-chooser-dialog.c 2007-09-24 13:13:45 UTC (rev 14034) @@ -364,12 +364,20 @@ return text && strlen(text) > 0; } -static void +/* + Sets content to name entry. + Returns TRUE if content has changed, FALSE if not +*/ +static gboolean set_entry (GtkWidget *entry, const char *name, const char *ext) { if (name == NULL) - return; + return FALSE; + gchar *orig_name = g_strdup (gtk_entry_get_text (GTK_ENTRY (entry))); + const gchar *new_name; + gboolean retval; + DBG ("SET ENTRY '%s' '%s'\n", name, ext); gtk_entry_set_text (GTK_ENTRY(entry), name); @@ -385,6 +393,17 @@ ext, strlen (ext), &position); } + + new_name = gtk_entry_get_text (GTK_ENTRY (entry)); + + if (strcmp (new_name, orig_name) == 0) + retval = FALSE; + else + retval = TRUE; + + g_free (orig_name); + return retval; + } static gchar * @@ -416,13 +435,13 @@ priv) { g_assert(HILDON_IS_FILE_SELECTION(priv->filetree)); + + gboolean changed; if (GTK_WIDGET_VISIBLE(priv->caption_control_name) && priv->stub_name && priv->stub_name[0] && !priv->edited) { gchar *name = NULL; - gboolean selection; - gint pos; g_signal_handler_block(priv->entry_name, priv->changed_handler); if (priv->autonaming_enabled) { @@ -439,31 +458,27 @@ } } - pos = gtk_editable_get_position(GTK_EDITABLE(priv->entry_name)); - selection = - gtk_editable_get_selection_bounds(GTK_EDITABLE(priv->entry_name), - NULL, NULL); - if (name) { - gboolean edited = !selection && - (pos != g_utf8_strlen (gtk_entry_get_text(GTK_ENTRY(priv->entry_name)), -1)); - set_entry (priv->entry_name, name, priv->ext_name); + changed = set_entry (priv->entry_name, name, priv->ext_name); g_free(name); - if (!edited) - gtk_editable_select_region(GTK_EDITABLE(priv->entry_name), 0, -1); - else - /* if the user has already started to edit the name, - try to preserve cursor position and don't autoselect */ - gtk_editable_set_position(GTK_EDITABLE(priv->entry_name), pos); - } + } else - set_entry (priv->entry_name, priv->stub_name, priv->ext_name); + changed = set_entry (priv->entry_name, priv->stub_name, priv->ext_name); g_signal_handler_unblock(priv->entry_name, priv->changed_handler); } else - set_entry (priv->entry_name, priv->stub_name, priv->ext_name); + changed = set_entry (priv->entry_name, priv->stub_name, priv->ext_name); + + if (changed) { + gtk_editable_select_region(GTK_EDITABLE(priv->entry_name), 0, -1); + if (!gtk_widget_is_focus(GTK_WIDGET (priv->entry_name))) { + gtk_widget_grab_focus (GTK_WIDGET (priv->entry_name)); + } + } + + return; } /* Set PRIV->stub_name and PRIV->ext_name from NAME so that stub_name
- Previous message: [maemo-commits] r14033 - projects/haf/trunk/hildon-1
- Next message: [maemo-commits] r14035 - in projects/haf/trunk/hildon-fm: . debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]