Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_actions.c e_border.c e_int_border_border.c 
        e_int_border_menu.c 


Log Message:
Only regenerate the border if it really changes.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_actions.c,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -3 -r1.72 -r1.73
--- e_actions.c 17 Jul 2006 20:30:48 -0000      1.72
+++ e_actions.c 18 Jul 2006 13:35:07 -0000      1.73
@@ -641,11 +641,6 @@
        E_Border *bd;
 
        bd = (E_Border *)obj;
-       if ((bd->client.border.name))
-         {
-            evas_stringshare_del(bd->client.border.name);
-            bd->client.border.name = NULL;
-         }
        if (bd->borderless)
          bd->borderless = 0;
        else
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.515
retrieving revision 1.516
diff -u -3 -r1.515 -r1.516
--- e_border.c  17 Jul 2006 20:34:20 -0000      1.515
+++ e_border.c  18 Jul 2006 13:35:07 -0000      1.516
@@ -1962,10 +1962,8 @@
 
        e_hints_window_fullscreen_set(bd, 1);
        e_hints_window_size_unset(bd);
-       if (bd->client.border.name)
-         evas_stringshare_del(bd->client.border.name);
-       bd->client.border.name = NULL;
        bd->client.border.changed = 1;
+       bd->changed = 1;
      }
 }
 
@@ -1996,10 +1994,8 @@
        e_border_layer_set(bd, 100);
 
        e_hints_window_fullscreen_set(bd, 0);
-       if (bd->client.border.name)
-         evas_stringshare_del(bd->client.border.name);
-       bd->client.border.name = NULL;
        bd->client.border.changed = 1;
+       bd->changed = 1;
      }
 }
 
@@ -4727,8 +4723,6 @@
        e_hints_window_type_get(bd);
        if ((!bd->lock_border) || (!bd->client.border.name))
          {
-            if (bd->client.border.name) 
evas_stringshare_del(bd->client.border.name);
-            bd->client.border.name = NULL;
             bd->client.border.changed = 1;
          }
        if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DOCK)
@@ -5063,9 +5057,6 @@
          {
             if ((!bd->lock_border) || (!bd->client.border.name))
               {
-                 if (bd->client.border.name)
-                   evas_stringshare_del(bd->client.border.name);
-                 bd->client.border.name = NULL;
                  bd->client.border.changed = 1;
               }
          }
@@ -5078,9 +5069,6 @@
        if (((!bd->lock_border) || (!bd->client.border.name)) &&
            (!(((bd->maximized & E_MAXIMIZE_TYPE) == E_MAXIMIZE_FULLSCREEN))))
          {
-            if (bd->client.border.name)
-              evas_stringshare_del(bd->client.border.name);
-            bd->client.border.name = NULL;
             bd->client.border.changed = 1;
          }
        if (bd->parent)
@@ -5129,9 +5117,6 @@
 
        if ((!bd->lock_border) || (!bd->client.border.name))
          {
-            if (bd->client.border.name)
-              evas_stringshare_del(bd->client.border.name);
-            bd->client.border.name = NULL;
             bd->client.border.changed = 1;
          }
        if (!bd->remember)
@@ -5202,8 +5187,6 @@
               {
                  if (rem->prop.border)
                    {
-                      if (bd->client.border.name) 
evas_stringshare_del(bd->client.border.name);
-                      bd->client.border.name = NULL;
                       if (bd->bordername) evas_stringshare_del(bd->bordername);
                       bd->bordername = evas_stringshare_add(rem->prop.border);
                       bd->client.border.changed = 1;
@@ -5258,76 +5241,89 @@
      {
        Evas_Object *o;
        char buf[4096];
+       const char *bordername;
        Evas_Coord cx, cy, cw, ch;
        int l, r, t, b;
        int ok;
-       
-       if (!bd->client.border.name)
-         {
-            if (bd->fullscreen)
-              bd->client.border.name = evas_stringshare_add("borderless");
-            else if (bd->bordername)
-              bd->client.border.name = evas_stringshare_add(bd->bordername);
-            else if ((bd->client.mwm.borderless) || (bd->borderless))
-              bd->client.border.name = evas_stringshare_add("borderless");
-            else if (((bd->client.icccm.transient_for != 0) ||
-                      (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DIALOG)) &&
-                     (bd->client.icccm.min_w == bd->client.icccm.max_w) &&
-                     (bd->client.icccm.min_h == bd->client.icccm.max_h))
-              bd->client.border.name = evas_stringshare_add("noresize_dialog");
-            else if ((bd->client.icccm.min_w == bd->client.icccm.max_w) &&
-                     (bd->client.icccm.min_h == bd->client.icccm.max_h))
-              bd->client.border.name = evas_stringshare_add("noresize");
-            else if (bd->client.shaped)
-              bd->client.border.name = evas_stringshare_add("shaped");
-            else if ((!bd->client.icccm.accepts_focus) &&
-                     (!bd->client.icccm.take_focus))
-              bd->client.border.name = evas_stringshare_add("nofocus");
-            else if (bd->client.icccm.urgent)
-              bd->client.border.name = evas_stringshare_add("urgent");
-            else if ((bd->client.icccm.transient_for != 0) ||
-                     (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DIALOG))
-              bd->client.border.name = evas_stringshare_add("dialog");
-            else if (bd->client.netwm.state.modal)
-              bd->client.border.name = evas_stringshare_add("modal");
-            else if ((bd->client.netwm.state.skip_taskbar) ||
-                     (bd->client.netwm.state.skip_pager))
-              bd->client.border.name = evas_stringshare_add("skipped");
-            else
-              bd->client.border.name = evas_stringshare_add("default");
-         }
-       if (bd->bg_object)
-         {
-            bd->w -= (bd->client_inset.l + bd->client_inset.r);
-            bd->h -= (bd->client_inset.t + bd->client_inset.b);
-            bd->client_inset.l = 0;
-            bd->client_inset.r = 0;
-            bd->client_inset.t = 0;
-            bd->client_inset.b = 0;
-            bd->changes.size = 1;
-            evas_object_del(bd->bg_object);
-         }
-        o = edje_object_add(bd->bg_evas);
-       snprintf(buf, sizeof(buf), "widgets/border/%s/border",
-                bd->client.border.name);
-       ok = e_theme_edje_object_set(o, "base/theme/borders", buf);
-       if ((!ok) && (strcmp(bd->client.border.name, "borderless")))
-         ok = e_theme_edje_object_set(o, "base/theme/borders",
-                                      "widgets/border/default/border");
-       if (ok)
+
+       if (bd->fullscreen)
+         bordername = "borderless";
+       else if (bd->bordername)
+         bordername = bd->bordername;
+       else if ((bd->client.mwm.borderless) || (bd->borderless))
+         bordername = "borderless";
+       else if (((bd->client.icccm.transient_for != 0) ||
+                 (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DIALOG)) &&
+                (bd->client.icccm.min_w == bd->client.icccm.max_w) &&
+                (bd->client.icccm.min_h == bd->client.icccm.max_h))
+         bordername = "noresize_dialog";
+       else if ((bd->client.icccm.min_w == bd->client.icccm.max_w) &&
+                (bd->client.icccm.min_h == bd->client.icccm.max_h))
+         bordername = "noresize";
+       else if (bd->client.shaped)
+         bordername = "shaped";
+       else if ((!bd->client.icccm.accepts_focus) &&
+                (!bd->client.icccm.take_focus))
+         bordername = "nofocus";
+       else if (bd->client.icccm.urgent)
+         bordername = "urgent";
+       else if ((bd->client.icccm.transient_for != 0) ||
+                (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DIALOG))
+         bordername = "dialog";
+       else if (bd->client.netwm.state.modal)
+         bordername = "modal";
+       else if ((bd->client.netwm.state.skip_taskbar) ||
+                (bd->client.netwm.state.skip_pager))
+         bordername = "skipped";
+       else
+         bordername = "default";
+
+       if ((!bd->client.border.name) || (strcmp(bd->client.border.name, 
bordername)))
          {
-            const char *shape_option;
-            
-            bd->bg_object = o;
-            shape_option = edje_object_data_get(o, "shaped");
-            if (shape_option)
+            if (bd->client.border.name) 
evas_stringshare_del(bd->client.border.name);
+            bd->client.border.name = evas_stringshare_add(bordername);
+
+            if (bd->bg_object)
               {
-                 if (!strcmp(shape_option, "1"))
+                 bd->w -= (bd->client_inset.l + bd->client_inset.r);
+                 bd->h -= (bd->client_inset.t + bd->client_inset.b);
+                 bd->client_inset.l = 0;
+                 bd->client_inset.r = 0;
+                 bd->client_inset.t = 0;
+                 bd->client_inset.b = 0;
+                 bd->changes.size = 1;
+                 evas_object_del(bd->bg_object);
+              }
+            o = edje_object_add(bd->bg_evas);
+            snprintf(buf, sizeof(buf), "widgets/border/%s/border",
+                     bd->client.border.name);
+            ok = e_theme_edje_object_set(o, "base/theme/borders", buf);
+            if ((!ok) && (strcmp(bd->client.border.name, "borderless")))
+              ok = e_theme_edje_object_set(o, "base/theme/borders",
+                                           "widgets/border/default/border");
+            if (ok)
+              {
+                 const char *shape_option;
+
+                 bd->bg_object = o;
+                 shape_option = edje_object_data_get(o, "shaped");
+                 if (shape_option)
                    {
-                      if (!bd->shaped)
+                      if (!strcmp(shape_option, "1"))
                         {
-                           bd->shaped = 1;
-                           ecore_evas_shaped_set(bd->bg_ecore_evas, 
bd->shaped);
+                           if (!bd->shaped)
+                             {
+                                bd->shaped = 1;
+                                ecore_evas_shaped_set(bd->bg_ecore_evas, 
bd->shaped);
+                             }
+                        }
+                      else
+                        {
+                           if (bd->shaped)
+                             {
+                                bd->shaped = 0;
+                                ecore_evas_shaped_set(bd->bg_ecore_evas, 
bd->shaped);
+                             }
                         }
                    }
                  else
@@ -5338,73 +5334,65 @@
                            ecore_evas_shaped_set(bd->bg_ecore_evas, 
bd->shaped);
                         }
                    }
+
+                 if (bd->client.netwm.name)
+                   edje_object_part_text_set(o, "title_text",
+                                             bd->client.netwm.name);
+                 else if (bd->client.icccm.title)
+                   edje_object_part_text_set(o, "title_text",
+                                             bd->client.icccm.title);
+                 evas_object_resize(o, 1000, 1000);
+                 edje_object_calc_force(o);
+                 edje_object_part_geometry_get(o, "client", &cx, &cy, &cw, 
&ch);
+                 l = cx;
+                 r = 1000 - (cx + cw);
+                 t = cy;
+                 b = 1000 - (cy + ch);
               }
             else
               {
-                 if (bd->shaped)
+                 evas_object_del(o);
+                 bd->bg_object = NULL;
+                 l = 0;
+                 r = 0;
+                 t = 0;
+                 b = 0;
+              }
+            bd->client_inset.l = l;
+            bd->client_inset.r = r;
+            bd->client_inset.t = t;
+            bd->client_inset.b = b;
+            ecore_x_netwm_frame_size_set(bd->client.win, l, r, t, b);
+            ecore_x_e_frame_size_set(bd->client.win, l, r, t, b);
+            bd->w += (bd->client_inset.l + bd->client_inset.r);
+            bd->h += (bd->client_inset.t + bd->client_inset.b);
+            bd->changes.size = 1;
+            ecore_x_window_move(bd->client.shell_win, l, t);
+            if (bd->bg_object)
+              {
+                 edje_object_signal_callback_add(bd->bg_object, "*", "*",
+                                                 _e_border_cb_signal_bind, bd);
+                 if (bd->focused)
                    {
-                      bd->shaped = 0;
-                      ecore_evas_shaped_set(bd->bg_ecore_evas, bd->shaped);
+                      edje_object_signal_emit(bd->bg_object, "active", "");
+                      if (bd->icon_object)
+                        edje_object_signal_emit(bd->icon_object, "active", "");
                    }
+                 if (bd->shaded)
+                   edje_object_signal_emit(bd->bg_object, "shaded", "");
+                 if ((bd->maximized & E_MAXIMIZE_TYPE) == 
E_MAXIMIZE_FULLSCREEN)
+                   edje_object_signal_emit(bd->bg_object, 
"maximize,fullscreen", "");
+                 else if ((bd->maximized & E_MAXIMIZE_TYPE) != E_MAXIMIZE_NONE)
+                   edje_object_signal_emit(bd->bg_object, "maximize", "");
+                 if (bd->hung)
+                   edje_object_signal_emit(bd->bg_object, "hung", "");
+                 if (bd->client.icccm.urgent)
+                   edje_object_signal_emit(bd->bg_object, "urgent", "");
+
+                 evas_object_move(bd->bg_object, 0, 0);
+                 evas_object_resize(bd->bg_object, bd->w, bd->h);
+                 evas_object_show(bd->bg_object);
               }
-            
-            if (bd->client.netwm.name)
-              edje_object_part_text_set(o, "title_text",
-                                        bd->client.netwm.name);
-            else if (bd->client.icccm.title)
-              edje_object_part_text_set(o, "title_text",
-                                        bd->client.icccm.title);
-            evas_object_resize(o, 1000, 1000);
-            edje_object_calc_force(o);
-            edje_object_part_geometry_get(o, "client", &cx, &cy, &cw, &ch);
-            l = cx;
-            r = 1000 - (cx + cw);
-            t = cy;
-            b = 1000 - (cy + ch);
-         }
-       else
-         {
-            evas_object_del(o);
-            bd->bg_object = NULL;
-            l = 0;
-            r = 0;
-            t = 0;
-            b = 0;
-         }
-       bd->client_inset.l = l;
-       bd->client_inset.r = r;
-       bd->client_inset.t = t;
-       bd->client_inset.b = b;
-       ecore_x_netwm_frame_size_set(bd->client.win, l, r, t, b);
-       ecore_x_e_frame_size_set(bd->client.win, l, r, t, b);
-       bd->w += (bd->client_inset.l + bd->client_inset.r);
-       bd->h += (bd->client_inset.t + bd->client_inset.b);
-       bd->changes.size = 1;
-       ecore_x_window_move(bd->client.shell_win, l, t);
-       if (bd->bg_object)
-         {
-            edje_object_signal_callback_add(bd->bg_object, "*", "*",
-                                            _e_border_cb_signal_bind, bd);
-            if (bd->focused)
-              {
-                 edje_object_signal_emit(bd->bg_object, "active", "");
-                 if (bd->icon_object)
-                   edje_object_signal_emit(bd->icon_object, "active", "");
-              }
-            if (bd->shaded)
-              edje_object_signal_emit(bd->bg_object, "shaded", "");
-            if ((bd->maximized & E_MAXIMIZE_TYPE) == E_MAXIMIZE_FULLSCREEN)
-              edje_object_signal_emit(bd->bg_object, "maximize,fullscreen", 
"");
-            else if ((bd->maximized & E_MAXIMIZE_TYPE) != E_MAXIMIZE_NONE)
-              edje_object_signal_emit(bd->bg_object, "maximize", "");
-            if (bd->hung)
-              edje_object_signal_emit(bd->bg_object, "hung", "");
-            if (bd->client.icccm.urgent)
-              edje_object_signal_emit(bd->bg_object, "urgent", "");
-            
-            evas_object_move(bd->bg_object, 0, 0);
-            evas_object_resize(bd->bg_object, bd->w, bd->h);
-            evas_object_show(bd->bg_object);
          }
        bd->client.border.changed = 0;
        
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_border_border.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- e_int_border_border.c       17 Jul 2006 19:04:01 -0000      1.13
+++ e_int_border_border.c       18 Jul 2006 13:35:08 -0000      1.14
@@ -115,8 +115,6 @@
      }
    if ((!cfdata->border->lock_border) && (!cfdata->border->shaded))
      {  
-       if (cfdata->border->client.border.name) 
evas_stringshare_del(cfdata->border->client.border.name);
-       cfdata->border->client.border.name = NULL;
        if (cfdata->border->bordername) 
evas_stringshare_del(cfdata->border->bordername);
        cfdata->border->bordername = evas_stringshare_add(cfdata->bordername);
        cfdata->border->client.border.changed = 1;
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_border_menu.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -3 -r1.28 -r1.29
--- e_int_border_menu.c 2 Jul 2006 16:19:51 -0000       1.28
+++ e_int_border_menu.c 18 Jul 2006 13:35:08 -0000      1.29
@@ -653,11 +653,6 @@
    if (!bd->lock_border)
      {
        toggle = e_menu_item_toggle_get(mi);
-       if (bd->client.border.name)
-         {
-            evas_stringshare_del(bd->client.border.name);
-            bd->client.border.name = NULL;
-         }
        if (toggle)
          bd->borderless = 1;
        else



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to