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