Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        backgrounds.c 


Log Message:
Fix missing/too many draws of the background selector window.

===================================================================
RCS file: /cvs/e/e16/e/src/backgrounds.c,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -3 -r1.83 -r1.84
--- backgrounds.c       20 Aug 2006 17:39:32 -0000      1.83
+++ backgrounds.c       2 Sep 2006 14:33:14 -0000       1.84
@@ -1444,8 +1444,8 @@
 
 static Background  *tmp_bg;    /* The background being configured */
 static Pixmap       tmp_bg_mini_pixmap = None;
-static int          tmp_bg_sel_sliderval = 0;
-static int          tmp_bg_sel_sliderval_old = -1;
+static int          tmp_bg_sel_sliderval;
+static int          tmp_bg_sel_sliderval_old;
 static int          tmp_bg_r;
 static int          tmp_bg_g;
 static int          tmp_bg_b;
@@ -1466,8 +1466,10 @@
 static void
 CB_ConfigureBG(Dialog * d __UNUSED__, int val, void *data __UNUSED__)
 {
-   if (val < 0)
+   if (val == 2)
      {
+       bg_sel = bg_sel_slider = bg_mini_disp = bg_filename = NULL;
+       memset(tmp_w, 0, sizeof(tmp_w));
        BackgroundImagesKeep(tmp_bg, 0);
        tmp_bg = NULL;
        if (tmp_bg_mini_pixmap != None)
@@ -1846,7 +1848,7 @@
 {
    int                 i, num;
 
-   if (!DialogFind("CONFIGURE_BG"))
+   if (!bg_sel_slider)
       return;
 
    bg = ecore_list_goto(bg_list, bg);
@@ -1862,7 +1864,6 @@
       i = 4 * num;
    DialogItemSliderSetVal(bg_sel_slider, i);
    DialogDrawItems(bg_sel_dialog, bg_sel_slider, 0, 0, 99999, 99999);
-   DialogItemCallCallback(NULL, bg_sel_slider);
    BgDialogSetNewCurrent(bg);
 }
 
@@ -1994,10 +1995,16 @@
 }
 
 static void
-CB_DesktopMiniDisplayAreaRedraw(DItem * di, int val __UNUSED__,
-                               void *data __UNUSED__)
+CB_DesktopMiniDisplayAreaInit(DItem * di, int val __UNUSED__,
+                             void *data __UNUSED__)
 {
    CB_DesktopMiniDisplayRedraw(DialogItemGetDialog(di), 1, di);
+}
+
+static void
+CB_InitView(DItem * di __UNUSED__, int val __UNUSED__, void *data __UNUSED__)
+{
+   tmp_bg_sel_sliderval_old = tmp_bg_sel_sliderval = -1;
    BGSettingsGoTo(tmp_bg);
 }
 
@@ -2011,6 +2018,8 @@
    char                s[1024];
 
    if (!bg)
+      bg = DeskBackgroundGet(DesksGetCurrent());
+   if (!bg)
       bg = BackgroundFind("NONE");
    tmp_bg = bg;
 
@@ -2133,7 +2142,7 @@
 
    di = bg_mini_disp = area = DialogAddItem(table2, DITEM_AREA);
    DialogItemAreaSetSize(di, 64, 48);
-   DialogItemAreaSetInitFunc(di, CB_DesktopMiniDisplayAreaRedraw);
+   DialogItemAreaSetInitFunc(di, CB_DesktopMiniDisplayAreaInit);
 
    DialogItemSetCallback(w1, CB_DesktopMiniDisplayRedraw, 0, (void *)area);
    DialogItemSetCallback(w2, CB_DesktopMiniDisplayRedraw, 0, (void *)area);
@@ -2241,6 +2250,7 @@
    DialogItemSetColSpan(di, 3);
    DialogItemAreaSetSize(di, 160, 56);
    DialogItemAreaSetEventFunc(di, CB_BGAreaEvent);
+   DialogItemAreaSetInitFunc(di, CB_InitView);
 
    num = ecore_list_nodes(bg_list);
    di = bg_sel_slider = DialogAddItem(table, DITEM_SLIDER);



-------------------------------------------------------------------------
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