billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=7ce4416311ac37ec148f1dfc748b9ca961867346

commit 7ce4416311ac37ec148f1dfc748b9ca961867346
Author: Boris Faure <[email protected]>
Date:   Tue Apr 14 23:40:08 2020 +0200

    win: save split position when dragging tab
---
 src/bin/win.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/bin/win.c b/src/bin/win.c
index c3ad730..b096e9d 100644
--- a/src/bin/win.c
+++ b/src/bin/win.c
@@ -94,6 +94,7 @@ struct _Tab_Drag
         };
         struct {
              Term_Container *other;
+             double left_size;
              Eina_Bool is_horizontal;
              Eina_Bool is_first_child;
         }; };
@@ -218,7 +219,8 @@ static Tab_Drag *_tab_drag = NULL;
 
 static Eina_Bool _win_is_focused(Win *wn);
 static Term_Container *_solo_new(Term *term, Win *wn);
-static Term_Container *_split_new(Term_Container *tc1, Term_Container *tc2, 
Eina_Bool is_horizontal);
+static Term_Container *_split_new(Term_Container *tc1, Term_Container *tc2,
+                                  double left_size, Eina_Bool is_horizontal);
 static Term_Container *_tabs_new(Term_Container *child, Term_Container 
*parent);
 static void _term_free(Term *term);
 static void _term_media_update(Term *term, const Config *config);
@@ -1519,7 +1521,7 @@ _win_split(Term_Container *tc, Term_Container *child,
 
         elm_layout_content_unset(wn->base, "terminology.content");
 
-        tc_split = _split_new(child, tc_solo_new, is_horizontal);
+        tc_split = _split_new(child, tc_solo_new, 0.5, is_horizontal);
         if (wn->config->show_tabs)
           {
              if (child->type == TERM_CONTAINER_TYPE_SOLO)
@@ -1576,7 +1578,7 @@ _win_split_direction(Term_Container *tc,
 
    wn->tc.unfocus(&wn->tc, NULL); /* unfocus from top */
 
-   tc_split = _split_new(child1, child2, is_horizontal);
+   tc_split = _split_new(child1, child2, 0.5, is_horizontal);
 
    if (wn->config->show_tabs)
      {
@@ -2861,7 +2863,7 @@ _split_split(Term_Container *tc, Term_Container *child,
      elm_object_part_content_unset(split->panes, PANES_BOTTOM);
 
    child->unfocus(child, tc);
-   tc_split = _split_new(child, tc_solo_new, is_horizontal);
+   tc_split = _split_new(child, tc_solo_new, 0.5, is_horizontal);
 
    obj_split = tc_split->get_evas_object(tc_split);
 
@@ -2920,7 +2922,7 @@ _split_split_direction(Term_Container *tc,
 
    wn->tc.unfocus(&wn->tc, NULL); /* unfocus from top */
 
-   tc_split = _split_new(child1, child2, is_horizontal);
+   tc_split = _split_new(child1, child2, 0.5, is_horizontal);
 
    if (wn->config->show_tabs)
      {
@@ -2966,6 +2968,7 @@ _split_detach(Term_Container *tc, Term_Container 
*solo_child)
 
 static Term_Container *
 _split_new(Term_Container *tc1, Term_Container *tc2,
+           double left_size,
            Eina_Bool is_horizontal)
 {
    Evas_Object *o;
@@ -3029,6 +3032,7 @@ _split_new(Term_Container *tc1, Term_Container *tc2,
                                tc1->get_evas_object(tc1));
    elm_object_part_content_set(o, PANES_BOTTOM,
                                tc2->get_evas_object(tc2));
+   elm_panes_content_left_size_set(o, left_size);
 
    tc->is_focused = tc1->is_focused | tc2->is_focused;
    return tc;
@@ -3337,7 +3341,7 @@ _tab_drag_rollback_split(void)
         child2 = tc;
      }
 
-   tc_split = _split_new(child1, child2, is_horizontal);
+   tc_split = _split_new(child1, child2, _tab_drag->left_size, is_horizontal);
    parent->swallow(parent, other, tc_split);
    tc_win->unfocus(tc_win, NULL);
    tc->focus(tc, NULL);
@@ -3782,6 +3786,8 @@ _tab_drag_save_state(Term_Container *tc)
                 _tab_drag->other = split->tc2;
               else
                 _tab_drag->other = split->tc1;
+              _tab_drag->left_size = elm_panes_content_left_size_get(
+                 split->panes);
            }
          break;
       default:

-- 


Reply via email to