? e_int_config_theme.c
? e_int_config_theme.h
Index: Makefile.am
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/Makefile.am,v
retrieving revision 1.87
diff -u -r1.87 Makefile.am
--- Makefile.am	17 Dec 2005 02:14:19 -0000	1.87
+++ Makefile.am	19 Dec 2005 07:47:36 -0000
@@ -121,6 +121,7 @@
 e_int_config_window_manipulation.h \
 e_int_config_window_display.h \
 e_int_config_background.h \
+e_int_config_theme.h \
 e_int_config_menus.h \
 e_deskpreview.h \
 e_exebuf.h
@@ -225,6 +226,7 @@
 e_int_config_window_manipulation.c \
 e_int_config_window_display.c \
 e_int_config_background.c \
+e_int_config_theme.c \
 e_int_config_menus.c \
 e_deskpreview.c \
 e_exebuf.c \
Index: e_configure.c
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_configure.c,v
retrieving revision 1.15
diff -u -r1.15 e_configure.c
--- e_configure.c	17 Dec 2005 02:14:19 -0000	1.15
+++ e_configure.c	19 Dec 2005 07:47:44 -0000
@@ -63,7 +63,8 @@
    e_configure_standard_item_add(eco, "enlightenment/e", _("Menu Settings"), e_int_config_menus);
    e_configure_standard_item_add(eco, "enlightenment/e", _("Window Manipulation"), e_int_config_window_manipulation);
    e_configure_standard_item_add(eco, "enlightenment/e", _("Window Display"), e_int_config_window_display);
-   //e_configure_standard_item_add(eco, "enlightenment/desktops", _("Background Settings"), e_int_config_background);
+   e_configure_standard_item_add(eco, "enlightenment/desktops", _("Background Settings"), e_int_config_background);
+   e_configure_standard_item_add(eco, "enlightenment/themes", _("Theme Selector"), e_int_config_theme);
    
    /* FIXME: we should have a way for modules to hook in here and add their
     * own entries
Index: e_icon.c
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_icon.c,v
retrieving revision 1.10
diff -u -r1.10 e_icon.c
--- e_icon.c	22 Nov 2005 09:27:25 -0000	1.10
+++ e_icon.c	19 Dec 2005 07:47:54 -0000
@@ -42,6 +42,7 @@
    E_Smart_Data *sd;
    
    sd = evas_object_smart_data_get(obj);
+   if (!sd) return;
    /* smart code here */
    evas_object_image_file_set(sd->obj, file, NULL);
    _e_icon_smart_reconfigure(sd);
@@ -53,6 +54,7 @@
    E_Smart_Data *sd;
    
    sd = evas_object_smart_data_get(obj);
+   if (!sd) return;
    /* smart code here */
    evas_object_image_file_set(sd->obj, file, key);
    _e_icon_smart_reconfigure(sd);
@@ -64,6 +66,7 @@
    E_Smart_Data *sd;
    
    sd = evas_object_smart_data_get(obj);
+   if (!sd) return;
    /* smart code here */
    if (sd->obj) evas_object_del(sd->obj);
    sd->obj = edje_object_add(evas_object_evas_get(obj));
@@ -77,6 +80,7 @@
    E_Smart_Data *sd;
    
    sd = evas_object_smart_data_get(obj);
+   if (!sd) return;
    /* smart code here */
    if (sd->obj) evas_object_del(sd->obj);
    sd->obj = o;
@@ -90,6 +94,7 @@
    char *file;
    
    sd = evas_object_smart_data_get(obj);
+   if (!sd) return NULL;
    if (!strcmp(evas_object_type_get(sd->obj), "edje"))
      {
 	edje_object_file_get(sd->obj, (const char **)&file, NULL);
@@ -105,6 +110,7 @@
    E_Smart_Data *sd;
    
    sd = evas_object_smart_data_get(obj);
+   if (!sd) return;
    if (!strcmp(evas_object_type_get(sd->obj), "edje"))
      return;
    evas_object_image_smooth_scale_set(sd->obj, smooth);
@@ -116,6 +122,7 @@
    E_Smart_Data *sd;
 
    sd = evas_object_smart_data_get(obj);   
+   if (!sd) return 0;
    if (!strcmp(evas_object_type_get(sd->obj), "edje"))
      return 0;   
    return evas_object_image_smooth_scale_get(sd->obj);
@@ -127,6 +134,7 @@
    E_Smart_Data *sd;
    
    sd = evas_object_smart_data_get(obj);
+   if (!sd) return;
    if (!strcmp(evas_object_type_get(sd->obj), "edje"))
      return;   
    evas_object_image_alpha_set(sd->obj, alpha);
@@ -138,6 +146,7 @@
    E_Smart_Data *sd;
    
    sd = evas_object_smart_data_get(obj);
+   if (!sd) return 0;
    if (!strcmp(evas_object_type_get(sd->obj), "edje"))
      return 0;   
    return evas_object_image_alpha_get(sd->obj);
@@ -149,6 +158,7 @@
    E_Smart_Data *sd;
    
    sd = evas_object_smart_data_get(obj);
+   if (!sd) return;
    return evas_object_image_size_get(sd->obj, w, h);
 }
 
@@ -168,6 +178,7 @@
    E_Smart_Data *sd;
    
    sd = evas_object_smart_data_get(obj);
+   if (!sd) return;
    if (((sd->fill_inside) && (fill_inside)) ||
        ((!sd->fill_inside) && (!fill_inside))) return;
    sd->fill_inside = fill_inside;
@@ -180,6 +191,7 @@
    E_Smart_Data *sd;
    
    sd = evas_object_smart_data_get(obj);
+   if (!sd) return;
    if (!strcmp(evas_object_type_get(sd->obj), "edje"))
      return;   
    evas_object_image_size_set(sd->obj, w, h);
@@ -192,6 +204,7 @@
    E_Smart_Data *sd;
    
    sd = evas_object_smart_data_get(obj);
+   if (!sd) return NULL;
    if (!strcmp(evas_object_type_get(sd->obj), "edje"))
      return NULL;   
    evas_object_image_size_get(sd->obj, w, h);
Index: e_includes.h
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_includes.h,v
retrieving revision 1.71
diff -u -r1.71 e_includes.h
--- e_includes.h	17 Dec 2005 02:14:19 -0000	1.71
+++ e_includes.h	19 Dec 2005 07:47:56 -0000
@@ -101,6 +101,7 @@
 #include "e_int_config_window_manipulation.h"
 #include "e_int_config_window_display.h"
 #include "e_int_config_background.h"
+#include "e_int_config_theme.h"
 #include "e_int_config_menus.h"
 #include "e_deskpreview.h"
 #include "e_exebuf.h"
Index: e_int_config_background.c
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_config_background.c,v
retrieving revision 1.2
diff -u -r1.2 e_int_config_background.c
--- e_int_config_background.c	4 Dec 2005 12:03:58 -0000	1.2
+++ e_int_config_background.c	19 Dec 2005 07:47:56 -0000
@@ -93,6 +93,7 @@
    if (e_config->desktop_default_background) evas_stringshare_del(e_config->desktop_default_background);
    e_config->desktop_default_background = evas_stringshare_add(cfdata->file);
    e_bg_update();   
+   e_config_save_queue();
    return 1; /* Apply was OK */
 }
 
@@ -108,11 +109,9 @@
 _e_config_bg_cb_standard(void *data)
 {
    E_Cfg_Bg_Data *d;
-   char *thumb;
    
    d = data;
    e_widget_image_object_set(d->cfd->data, e_thumb_evas_object_get(d->file, d->cfd->dia->win->evas, 160, 120, 1));
-   free(thumb);
 }
 
 
@@ -195,7 +194,7 @@
 		       cb_data->file = strdup(fullbg);
 		       e_widget_ilist_append(il, o, noext, _e_config_bg_cb_standard, cb_data, fullbg);
 		       
-		       if (!strcmp(e_config->desktop_default_background, fullbg))
+		       if ((e_config->desktop_default_background) && !(strcmp(e_config->desktop_default_background, fullbg)))
 			 {
 			    e_widget_ilist_select_set(il, i);
 			    bg = edje_object_add(evas);
@@ -213,7 +212,6 @@
 	     ecore_list_destroy(bgs);
 	  }
      }
-   cfd->data = im;
    e_widget_ilist_go(il);   
    e_widget_min_size_set(il, 240, 320);
    e_widget_table_object_append(o, il, 0, 0, 1, 2, 1, 1, 1, 1);
@@ -224,6 +222,7 @@
 	e_theme_edje_object_set(bg, "base/theme/background", "desktop/background");
 	im = e_widget_image_add_from_object(evas, bg, 160, 120);
      }
+   cfd->data = im;
    e_widget_min_size_set(fr, 180, 150);
    e_widget_table_object_append(o, fr, 1, 0, 1, 1, 1, 1, 1, 1);   
    e_widget_framelist_object_append(fr, im);   
Index: e_thumb.c
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_thumb.c,v
retrieving revision 1.18
diff -u -r1.18 e_thumb.c
--- e_thumb.c	8 Dec 2005 11:16:47 -0000	1.18
+++ e_thumb.c	19 Dec 2005 07:48:11 -0000
@@ -325,7 +325,7 @@
    evas_object_move(clock, (w * 0.9), (h * 0.9));
    evas_object_resize(clock, w * 0.1, h * 0.1);
    /* start */
-   evas_object_move(start, (w * 0.9), (h * 0.9));
+   evas_object_move(start, 0.1, (h * 0.9));
    evas_object_resize(start, w * 0.1, h * 0.1);   
    /* pager */
    evas_object_move(pager[0], (w * 0.3), (h * 0.9));
@@ -593,12 +593,16 @@
 				      t->w,
 				      t->h,
 				      1);
-	data = e_icon_data_get(tmp, &w, &h);
-	e_icon_data_set(t->obj, data, w, h);
-	evas_object_del(tmp);
-	if(t->cb)
-	  t->cb(t->obj, t->data);
-	free(t);
+	if (tmp && t)
+	  {
+	     data = e_icon_data_get(tmp, &w, &h);
+	     e_icon_data_set(t->obj, data, w, h);
+	     evas_object_del(tmp);
+	     if(t->cb)
+	        t->cb(t->obj, t->data);
+ 	     free(t);
+	  }
      }
    
    pid = -1;






