Files
gtk3/gtk
Federico Mena Quintero 81059c35d5 GtkFileChooserEntry: regenerate the completions if the dir_part changes
Consider this bug:

1. Open a file chooser; switch it to $HOME

2. Start typing "~/Dow" with some file that *does* exist in your $HOME

3. Delete the inline-completion selection (e.g. the "nloads" after "~/Down").

4. While you are at "~/Dow_" hit Tab.  No completion will occur.

This happens because of the following.

Say the GtkFileChooserEntry is in the process of loading $HOME,
because _set_base_folder() was called.  If the entry contains no text,
then the FULL_PATH_COLUMN of the file system model will be set to
unprefixed filenames from $HOME, like

  .ssh/
  Documents/
  Downloads/
  somefile.txt

Later we avoid reloading the folder if g_file_equal(old_folder, new_folder).

However, the FULL_PATH_COLUMN gets populated in completion_store_set()
out of the actual filenames that GIO returned, plus the chooser_entry->dir_part.

If the user starts typing "~/Dow" then dir_part changes to "~/", *but*
the folder won't be reloaded since it is also $HOME.  However, the completion
machinery assumes that FULL_PATH_COLUMN will contain prefixed entries like

  ~/.ssh/
  ~/Documents/
  ~/Downloads/
  ~/somefile.txt

So, we add an invariant that chooser_entry->dir_part and
chooser_entry->current_folder_file must change at the same time, and
must not get out of sync:  If any of them changes, then the
completions are regenerated.
2016-03-10 15:37:00 -06:00
..
2016-01-27 15:20:15 -05:00
2016-03-10 13:35:46 +01:00
2015-12-05 12:10:21 -05:00
2015-06-02 09:08:15 -04:00
2015-05-10 15:37:55 -04:00
2016-01-17 21:02:18 -05:00
2016-03-02 19:12:10 -05:00
2015-12-15 08:41:16 -05:00
2015-07-31 22:23:35 -04:00
2016-02-21 16:17:46 -08:00
2015-07-26 01:45:06 -04:00
2016-03-02 13:54:39 +01:00
2015-12-16 17:32:24 -05:00
2015-12-20 17:51:47 -05:00
2015-12-16 01:50:00 +01:00
2015-12-20 23:50:40 -05:00
2016-03-09 19:29:58 -05:00
2015-12-25 22:58:28 -05:00
2016-01-03 17:20:06 -08:00
2016-02-20 22:43:43 -05:00
2015-06-20 20:29:18 -04:00
2016-02-29 14:19:38 +01:00
2016-02-08 22:56:52 +01:00
2016-02-08 22:56:52 +01:00
2016-02-28 21:40:23 -05:00
2015-04-26 10:19:26 -04:00
2015-12-16 10:58:47 -05:00
2015-12-22 15:03:15 -05:00
2015-11-10 00:55:57 -05:00
2016-01-03 09:55:30 -05:00
2016-01-03 00:44:05 -08:00
2015-12-15 00:32:55 +01:00
2015-06-02 09:08:15 -04:00
2016-02-08 22:56:52 +01:00
2016-02-10 14:03:56 +01:00
2016-01-26 15:53:56 +01:00
2016-02-13 22:15:07 -06:00
2016-01-19 12:52:58 +01:00
2015-09-09 06:32:46 -04:00
2015-07-27 08:07:38 -04:00
2015-07-27 08:07:38 -04:00
2015-12-16 10:58:47 -05:00
2016-03-09 14:15:40 -05:00
2016-02-28 21:40:23 -05:00
2015-11-19 14:54:57 -05:00
2016-03-06 11:10:44 -08:00
2016-02-29 10:45:14 -08:00
2015-05-16 00:48:36 -04:00
2015-06-19 01:03:28 -04:00
2015-10-29 15:55:28 +01:00
2015-10-03 22:42:12 -04:00
2015-12-05 12:10:21 -05:00
2015-10-21 15:19:34 -04:00
2015-10-21 15:19:34 -04:00
2015-12-16 04:46:23 +01:00
2016-01-10 17:08:56 -05:00
2016-02-09 08:05:16 +01:00
2016-02-28 21:40:23 -05:00
2016-02-26 15:52:19 -05:00
2015-12-29 16:33:53 -08:00
2016-02-28 21:40:23 -05:00
2016-02-28 21:40:23 -05:00
2016-02-27 17:23:44 +01:00
2015-06-02 09:08:16 -04:00