This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository enlightenment.

View the commit online.

commit 9f9aaa2d34d220e53f6e5409eaada363c905e8d5
Author: Alastair Poole <[email protected]>
AuthorDate: Mon Apr 20 19:37:23 2026 +0100

    gadman: ensure we don't lose our ordering (shelf).
    
    We can lose order (or could). Ensure we update the config when
    we move a agdget on the shelf.
---
 src/modules/gadman/e_mod_gadman.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/modules/gadman/e_mod_gadman.c b/src/modules/gadman/e_mod_gadman.c
index a8ef1d9bb..c1822ff70 100644
--- a/src/modules/gadman/e_mod_gadman.c
+++ b/src/modules/gadman/e_mod_gadman.c
@@ -1713,6 +1713,7 @@ on_move(void *data, Evas_Object *o EINA_UNUSED, const char *em EINA_UNUSED, cons
    E_Gadcon *gc;
    E_Gadcon_Client *drag_gcc;
    E_Drag *drag;
+   Eina_Bool gadman_gc;
    const char *drag_types[] = { "enlightenment/gadcon_client" };
 
    /* DRAG_START */
@@ -1723,7 +1724,15 @@ on_move(void *data, Evas_Object *o EINA_UNUSED, const char *em EINA_UNUSED, cons
    mover = _get_mover(drag_gcc);
 
    drag_gcc->moving = 1;
-   gc->cf->clients = eina_list_remove(gc->cf->clients, drag_gcc->cf);
+
+   gadman_gc = ((gc->id == ID_GADMAN_LAYER_BG) || (gc->id == ID_GADMAN_LAYER_TOP));
+   if (gadman_gc)
+     gc->cf->clients = eina_list_remove(gc->cf->clients, drag_gcc->cf);
+   else
+     {
+        /* Preserve and persist shelf/panel ordering during moves */
+        e_config_save_queue();
+     }
    e_gadcon_client_drag_set(drag_gcc);
    e_object_ref(E_OBJECT(drag_gcc));
    evas_pointer_output_xy_get(gc->evas, &mx, &my);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to