Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.h e_container.c e_int_config_display.c 


Log Message:


fix segv's for display config dialog

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.132
retrieving revision 1.133
diff -u -3 -r1.132 -r1.133
--- e_border.h  8 Mar 2006 10:04:51 -0000       1.132
+++ e_border.h  10 May 2006 14:54:59 -0000      1.133
@@ -380,8 +380,8 @@
    } changes;
 
    struct {
-       unsigned char start : 1;
-       int x, y;
+      unsigned char start : 1;
+      int x, y;
    } drag;
 
    unsigned int layer;
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_container.c,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -3 -r1.98 -r1.99
--- e_container.c       10 May 2006 14:29:41 -0000      1.98
+++ e_container.c       10 May 2006 14:54:59 -0000      1.99
@@ -1198,15 +1198,41 @@
 
             bd = l->data;
 
-            if (bd->w > bd->zone->w)
-              e_border_resize(bd, bd->zone->w, bd->h);
-            if ((bd->x + bd->w) > (bd->zone->x + bd->zone->w))
-              e_border_move(bd, bd->zone->x + bd->zone->w - bd->w, bd->y);
-
-            if (bd->h > bd->zone->h)
-              e_border_resize(bd, bd->w, bd->zone->h);
-            if ((bd->y + bd->h) > (bd->zone->y + bd->zone->h))
-              e_border_move(bd, bd->x, bd->zone->y + bd->zone->h - bd->h);
+            if (bd->saved.w > bd->zone->w)
+              bd->saved.w = bd->zone->w;
+            if ((bd->saved.x + bd->saved.w) > (bd->zone->x + bd->zone->w))
+              bd->saved.x = bd->zone->x + bd->zone->w - bd->saved.w;
+            
+            if (bd->saved.h > bd->zone->h)
+              bd->saved.h = bd->zone->h;
+            if ((bd->saved.y + bd->saved.h) > (bd->zone->y + bd->zone->h))
+              bd->saved.y = bd->zone->y + bd->zone->h - bd->saved.h;
+                 
+            if (bd->fullscreen)
+              {
+                 e_border_unfullscreen(bd);
+                 e_border_fullscreen(bd, e_config->fullscreen_policy);
+              }
+            else if (bd->maximized != E_MAXIMIZE_NONE)
+              {
+                 E_Maximize max;
+                 
+                 max = bd->maximized;
+                 e_border_unmaximize(bd);
+                 e_border_maximize(bd, max);
+              }
+            else
+              {
+                 if (bd->w > bd->zone->w)
+                   e_border_resize(bd, bd->zone->w, bd->h);
+                 if ((bd->x + bd->w) > (bd->zone->x + bd->zone->w))
+                   e_border_move(bd, bd->zone->x + bd->zone->w - bd->w, bd->y);
+                 
+                 if (bd->h > bd->zone->h)
+                   e_border_resize(bd, bd->w, bd->zone->h);
+                 if ((bd->y + bd->h) > (bd->zone->y + bd->zone->h))
+                   e_border_move(bd, bd->x, bd->zone->y + bd->zone->h - bd->h);
+              }
          }
      }
 #endif
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_display.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- e_int_config_display.c      10 May 2006 14:29:41 -0000      1.8
+++ e_int_config_display.c      10 May 2006 14:54:59 -0000      1.9
@@ -53,14 +53,17 @@
 {
    E_Dialog *dia;
    SureBox *sb;
+   E_Config_Dialog *cfd;
    
    dia = win->data;
    sb = dia->data;
    sb->cfdata->surebox = NULL;
+   cfd = sb->cfdata->cfd;
    if (sb->timer) ecore_timer_del(sb->timer);
    sb->timer = NULL;
    free(sb);
    e_object_del(E_OBJECT(dia));
+   e_object_unref(E_OBJECT(cfd));
 }
 
 static void
@@ -165,6 +168,7 @@
    e_win_centered_set(sb->dia->win, 1);
    e_win_sticky_set(sb->dia->win, 1);
    e_dialog_show(sb->dia);
+   e_object_ref(E_OBJECT(cfd));
 }
 
 
@@ -211,7 +215,7 @@
 _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) 
 {
    if (cfdata->surebox)
-     e_object_del(E_OBJECT(cfdata->surebox->dia));
+     _surebox_dialog_cb_delete(cfdata->surebox->dia->win);
    free(cfdata);
 }
 




-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to