diff options
author | Colomban Wendling <[email protected]> | 2020-08-04 15:42:18 +0200 |
---|---|---|
committer | rbuj <[email protected]> | 2020-08-04 16:38:38 +0200 |
commit | decfcebaa4a07f38789bca6443479b350d3132df (patch) | |
tree | 6776e0eab7d0c5331462e3a8d43086e3b7d19b3f | |
parent | e9163da19693a6268a83d25ffd4472e8e0590d7d (diff) | |
download | mate-panel-decfcebaa4a07f38789bca6443479b350d3132df.tar.bz2 mate-panel-decfcebaa4a07f38789bca6443479b350d3132df.tar.xz |
Fix creating several launchers at once
When creating a new launcher, we try and find an available object ID by
browsing the existing ones. This however fails to take into account
objects that were created but that didn't make it to the backend yet,
leading to likely re-using the same ID when creating several objects
roughly at the same time. This happens e.g. when dropping several URIs
together.
-rw-r--r-- | mate-panel/panel-profile.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/mate-panel/panel-profile.c b/mate-panel/panel-profile.c index 328ffab7..f7a3331f 100644 --- a/mate-panel/panel-profile.c +++ b/mate-panel/panel-profile.c @@ -1236,6 +1236,11 @@ panel_profile_prepare_object_with_id (PanelObjectType object_type, g_settings_set_int (settings, PANEL_OBJECT_POSITION_KEY, position); g_settings_set_boolean (settings, PANEL_OBJECT_PANEL_RIGHT_STICK_KEY, right_stick); + /* Force writing the settings in order to reserve the object ID *now*, + * so that a later call to panel_profile_find_new_id() won't find the same + * one. */ + g_settings_sync (); + g_free (settings_path); g_object_unref (settings); |