Enlightenment CVS committal
Author : kwo
Project : e16
Module : e
Dir : e16/e/src
Modified Files:
backgrounds.c backgrounds.h desktops.c desktops.h iclass.c
startup.c
Log Message:
Fix incorrect or invalid background pixmaps in certain situations.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/backgrounds.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -3 -r1.52 -r1.53
--- backgrounds.c 22 Nov 2005 23:21:47 -0000 1.52
+++ backgrounds.c 27 Nov 2005 11:02:05 -0000 1.53
@@ -27,7 +27,6 @@
#include "desktops.h"
#include "dialog.h"
#include "emodule.h"
-#include "hints.h" /* FIXME - Should not be here */
#include "iclass.h"
#include "tclass.h"
#include "xwin.h"
@@ -55,11 +54,12 @@
ColorModifierClass *cmclass;
#endif
char keepim;
- unsigned int ref_count;
+ unsigned int ref_count; /* bg */
+ unsigned int use_count; /* pmap */
};
char *
-BackgroundGetUniqueString(Background * bg)
+BackgroundGetUniqueString(const Background * bg)
{
char s[256];
const char *chmap =
@@ -147,17 +147,50 @@
}
void
+BackgroundPixmapSet(Background * bg, Pixmap pmap)
+{
+ if (bg->pmap != pmap)
+ {
+ if (bg->use_count || bg->pmap != None)
+ Eprintf("*** BackgroundPixmapSet %s: pmap mismatch %#lx/%#lx\n",
+ bg->name, bg->pmap, pmap);
+ bg->pmap = pmap;
+ }
+ bg->use_count++;
+}
+
+void
+BackgroundPixmapUnset(Background * bg, Pixmap pmap)
+{
+ if (bg->pmap != pmap || !bg->use_count)
+ {
+ Eprintf("*** BackgroundPixmapUnset %s: pmap mismatch %#lx/%#lx\n",
+ bg->name, bg->pmap, pmap);
+ }
+ if (bg->use_count)
+ bg->use_count--;
+}
+
+static void
BackgroundPixmapFree(Background * bg)
{
- if (bg && bg->pmap)
+ if (!bg)
+ return;
+
+ if (bg->use_count)
+ {
+ Eprintf("*** BackgroundPixmapFree %s: still referenced(%d)\n",
+ bg->name, bg->use_count);
+ }
+ if (bg->pmap)
{
imlib_free_pixmap_and_mask(bg->pmap);
- bg->pmap = 0;
+ bg->pmap = None;
}
}
-void
-BackgroundImagesFree(Background * bg, int free_pmap)
+static void
+BackgroundImagesFree(Background * bg)
{
if (bg->bg.im)
{
@@ -171,8 +204,6 @@
imlib_free_image();
bg->top.im = NULL;
}
- if (free_pmap && bg->pmap)
- BackgroundPixmapFree(bg);
}
static void
@@ -185,12 +216,12 @@
else
{
bg->keepim = 0;
- BackgroundImagesFree(bg, 0);
+ BackgroundImagesFree(bg);
}
}
static void
-BackgroundImagesRemove(Background * bg)
+BackgroundFilesRemove(Background * bg)
{
if (bg->bg.file)
Efree(bg->bg.file);
@@ -208,7 +239,7 @@
Efree(bg->top.real_file);
bg->top.real_file = NULL;
- BackgroundImagesFree(bg, 1);
+ BackgroundImagesFree(bg);
bg->keepim = 0;
}
@@ -227,7 +258,8 @@
}
RemoveItemByPtr(bg, LIST_TYPE_BACKGROUND);
- BackgroundImagesRemove(bg);
+ BackgroundFilesRemove(bg);
+ BackgroundPixmapFree(bg);
if (bg->name)
Efree(bg->name);
@@ -311,6 +343,19 @@
BackgroundDestroy(FindItem(name, 0, LIST_FINDBY_NAME,
LIST_TYPE_BACKGROUND));
}
+static void
+BackgroundInvalidate(Background * bg, int refresh)
+{
+ int used;
+
+ used = bg->ref_count;
+ if (used)
+ DesksBackgroundFree(bg, 1);
+ BackgroundPixmapFree(bg);
+ if (used && refresh)
+ DesksBackgroundRefresh(bg);
+}
+
static int
BackgroundModify(Background * bg, XColor * solid, const char *bgn, char tile,
char keep_aspect, int xjust, int yjust, int xperc,
@@ -383,7 +428,7 @@
bg->top.yperc = typerc;
if (updated)
- BackgroundPixmapFree(bg);
+ BackgroundInvalidate(bg, 1);
return updated;
}
@@ -734,7 +779,7 @@
done:
if (!bg->keepim)
- BackgroundImagesFree(bg, 0);
+ BackgroundImagesFree(bg);
imlib_context_set_dither(rt);
@@ -763,15 +808,20 @@
BackgroundRealize(bg, win, w, h, 1, &pmap, &pixel);
if (pmap != None)
- ESetWindowBackgroundPixmap(win, pmap);
+ {
+ ESetWindowBackgroundPixmap(win, pmap);
+ imlib_free_pixmap_and_mask(pmap);
+ }
else
- ESetWindowBackground(win, pixel);
+ {
+ ESetWindowBackground(win, pixel);
+ }
EClearWindow(win);
}
/*
* Apply a background to window.
- * The (scaled) BG pixmap is stored in bg->pmap.
+ * The BG pixmap is stored in bg->pmap.
*/
void
BackgroundSet(Background * bg, Window win, unsigned int w, unsigned int h)
@@ -935,6 +985,12 @@
bg->last_viewed = time(NULL);
}
+static time_t
+BackgroundGetTimestamp(const Background * bg)
+{
+ return bg->last_viewed;
+}
+
const char *
BackgroundGetName(const Background * bg)
{
@@ -971,12 +1027,6 @@
return (bg) ? !strcmp(bg->name, "NONE") : 1;
}
-static time_t
-BackgroundGetTimestamp(const Background * bg)
-{
- return bg->last_viewed;
-}
-
static Imlib_Image *
BackgroundCacheMini(Background * bg, int keep, int nuke)
{
@@ -1056,18 +1106,16 @@
}
void
-BackgroundsInvalidate(void)
+BackgroundsInvalidate(int refresh)
{
int i, num;
- Desk *dsk;
+ Background **lst;
- num = DesksGetNumber();
+ lst = (Background **) ListItemType(&num, LIST_TYPE_BACKGROUND);
for (i = 0; i < num; i++)
- {
- dsk = DeskGet(i);
- BackgroundPixmapFree(DeskBackgroundGet(dsk));
- DeskRefresh(dsk);
- }
+ BackgroundInvalidate(lst[i], refresh);
+ if (lst)
+ Efree(lst);
}
/*
@@ -1395,8 +1443,7 @@
time_t now;
int i, num;
unsigned int j;
- Background **lst;
- Window win;
+ Background **lst, *bg;
Desk *dsk;
now = time(NULL);
@@ -1411,38 +1458,16 @@
lst = (Background **) ListItemType(&num, LIST_TYPE_BACKGROUND);
for (i = 0; i < num; i++)
{
+ bg = lst[i];
+
/* Skip if no pixmap or not timed out */
- if ((BackgroundGetPixmap(lst[i]) == 0) ||
- ((now - BackgroundGetTimestamp(lst[i])) <=
- Conf.backgrounds.timeout))
+ if ((bg->pmap == None) ||
+ ((now - BackgroundGetTimestamp(bg)) <= Conf.backgrounds.timeout))
continue;
- /* Skip if associated with any viewable desktop */
- for (j = 0; j < DesksGetNumber(); j++)
- {
- dsk = DeskGet(j);
- if (lst[i] == DeskBackgroundGet(dsk) && DeskIsViewable(dsk))
- goto next;
- }
-
- for (j = 0; j < DesksGetNumber(); j++)
- {
- dsk = DeskGet(j);
- if (lst[i] != DeskBackgroundGet(dsk) || DeskIsViewable(dsk))
- continue;
-
- /* Unviewable desktop - update the virtual root hints */
- win = EoGetWin(dsk);
- if (!Conf.hints.set_xroot_info_on_root_window)
- HintsSetRootInfo(win, 0, 0);
- ESetWindowBackground(win, 0);
- EClearWindow(win);
- }
-
- BackgroundPixmapFree(lst[i]);
-
- next:
- ;
+ if (bg->ref_count)
+ DesksBackgroundFree(bg, 0);
+ BackgroundPixmapFree(bg);
}
if (lst)
Efree(lst);
@@ -1453,7 +1478,8 @@
{
BackgroundsAccounting();
/* RemoveTimerEvent("BACKGROUND_ACCOUNTING_TIMEOUT"); */
- DoIn("BACKGROUND_ACCOUNTING_TIMEOUT", 30.0, BackgroundsTimeout, 0, NULL);
+ DoIn("BACKGROUND_ACCOUNTING_TIMEOUT", 1.0 * Conf.backgrounds.timeout,
+ BackgroundsTimeout, 0, NULL);
}
static void
@@ -1518,8 +1544,6 @@
static void
CB_ConfigureBG(Dialog * d __UNUSED__, int val, void *data __UNUSED__)
{
- unsigned int i;
-
if (val < 0)
{
BackgroundImagesKeep(tmp_bg, 0);
@@ -1543,20 +1567,13 @@
tmp_bg->bg.yjust = 1024 - tmp_bg_yjust;
tmp_bg->bg.xperc = tmp_bg_xperc;
tmp_bg->bg.yperc = 1024 - tmp_bg_yperc;
+ if (!tmp_bg_image)
+ BackgroundFilesRemove(tmp_bg);
- for (i = 0; i < DesksGetNumber(); i++)
- {
- Desk *dsk = DeskGet(i);
-
- if (DeskBackgroundGet(dsk) == tmp_bg)
- DeskBackgroundSet(dsk, tmp_bg, 1);
- }
+ BackgroundInvalidate(tmp_bg, 1);
BackgroundCacheMini(tmp_bg, 0, 1);
BG_RedrawView();
-
- if (!tmp_bg_image)
- BackgroundImagesRemove(tmp_bg);
}
autosave();
@@ -1705,7 +1722,7 @@
DialogItemSliderSetVal(bg_sel_slider, 0);
DialogDrawItems(bg_sel_dialog, bg_sel_slider, 0, 0, 99999, 99999);
- DeskBackgroundSet(DesksGetCurrent(), tmp_bg, 0);
+ DeskBackgroundSet(DesksGetCurrent(), tmp_bg);
BG_RedrawView();
@@ -1743,7 +1760,7 @@
}
}
- DeskBackgroundSet(DesksGetCurrent(), bg, 0);
+ DeskBackgroundSet(DesksGetCurrent(), bg);
if (val == 0)
BackgroundDestroy(tmp_bg);
else
@@ -1899,7 +1916,7 @@
if ((tmp_bg_selected >= 0) && (tmp_bg_selected < num))
{
BgDialogSetNewCurrent(bglist[tmp_bg_selected]);
- DeskBackgroundSet(DesksGetCurrent(), tmp_bg, 0);
+ DeskBackgroundSet(DesksGetCurrent(), tmp_bg);
autosave();
}
Efree(bglist);
@@ -1963,7 +1980,7 @@
if ((bglist[i] == tmp_bg) && (i > 0))
{
BGSettingsGoTo(bglist[i - 1]);
- DeskBackgroundSet(DesksGetCurrent(), bglist[i - 1], 0);
+ DeskBackgroundSet(DesksGetCurrent(), bglist[i - 1]);
break;
}
}
@@ -1983,7 +2000,7 @@
if ((bglist[i] == tmp_bg) && (i < (num - 1)))
{
BGSettingsGoTo(bglist[i + 1]);
- DeskBackgroundSet(DesksGetCurrent(), bglist[i + 1], 0);
+ DeskBackgroundSet(DesksGetCurrent(), bglist[i + 1]);
break;
}
}
@@ -2511,7 +2528,7 @@
unsigned int i;
int r, g, b;
char bgf[FILEPATH_LEN_MAX], topf[FILEPATH_LEN_MAX];
- int updated, tile, keep_aspect, tkeep_aspect;
+ int tile, keep_aspect, tkeep_aspect;
int xjust, yjust, xperc, yperc;
int txjust, tyjust, txperc, typerc;
@@ -2530,19 +2547,9 @@
bg = FindItem(name, 0, LIST_FINDBY_NAME, LIST_TYPE_BACKGROUND);
if (bg)
{
- updated = BackgroundModify(bg, &xclr, bgf, tile, keep_aspect, xjust,
- yjust, xperc, yperc, topf, tkeep_aspect,
- txjust, tyjust, txperc, typerc);
- if (updated)
- {
- for (i = 0; i < DesksGetNumber(); i++)
- {
- Desk *dsk = DeskGet(i);
-
- if (DeskBackgroundGet(dsk) == bg)
- DeskBackgroundSet(dsk, bg, 0);
- }
- }
+ BackgroundModify(bg, &xclr, bgf, tile, keep_aspect, xjust,
+ yjust, xperc, yperc, topf, tkeep_aspect,
+ txjust, tyjust, txperc, typerc);
}
else
{
@@ -2648,7 +2655,7 @@
num = DesksGetCurrentNum();
sscanf(p, "%d %n", &num, &len);
- DeskBackgroundSet(DeskGet(num), bg, 1);
+ DeskBackgroundSet(DeskGet(num), bg);
autosave();
}
else if (!strncmp(cmd, "xget", 2))
@@ -2694,7 +2701,7 @@
if (!w[0])
break;
i = atoi(w);
- DeskBackgroundSet(DeskGet(i), bg, 1);
+ DeskBackgroundSet(DeskGet(i), bg);
}
autosave();
}
@@ -2727,13 +2734,7 @@
bg->cmclass = cm;
}
- BackgroundPixmapFree(bg);
-
- for (i = 0; i < DesksGetNumber(); i++)
- {
- if ((desks.desk[i].bg == bg) && (desks.desk[i].viewable))
- DeskRefresh(DeskGet(i));
- }
+ BackgroundInvalidate(bg, 1);
}
}
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/backgrounds.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- backgrounds.h 22 Nov 2005 23:21:47 -0000 1.3
+++ backgrounds.h 27 Nov 2005 11:02:05 -0000 1.4
@@ -26,9 +26,9 @@
#define _BACKGROUNDS_H_
/* backgrounds.c */
-char *BackgroundGetUniqueString(Background * bg);
-void BackgroundPixmapFree(Background * bg);
-void BackgroundImagesFree(Background * bg, int free_pmap);
+char *BackgroundGetUniqueString(const Background * bg);
+void BackgroundPixmapSet(Background * bg, Pixmap pmap);
+void BackgroundPixmapUnset(Background * bg, Pixmap pmap);
void BackgroundDestroyByName(const char *name);
void BackgroundRealize(Background * bg, Drawable draw,
unsigned int rw, unsigned int rh,
@@ -40,6 +40,7 @@
unsigned int rh);
void BackgroundIncRefcount(Background * bg);
void BackgroundDecRefcount(Background * bg);
+
void BackgroundTouch(Background * bg);
const char *BackgroundGetName(const Background * bg);
int BackgroundGetColor(const Background * bg);
@@ -49,7 +50,7 @@
const char *file, char *thumb,
int thlen);
-void BackgroundsInvalidate(void);
+void BackgroundsInvalidate(int refresh);
int BackgroundsConfigLoad(FILE * fs);
#endif /* _BACKGROUNDS_H_ */
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/desktops.c,v
retrieving revision 1.200
retrieving revision 1.201
diff -u -3 -r1.200 -r1.201
--- desktops.c 21 Nov 2005 17:48:44 -0000 1.200
+++ desktops.c 27 Nov 2005 11:02:05 -0000 1.201
@@ -406,7 +406,7 @@
Efree(lst);
}
}
- DeskBackgroundSet(dsk, bg, 0);
+ DeskBackgroundSet(dsk, bg);
if (dsk->num > 0)
{
@@ -473,7 +473,11 @@
DeskControlsDestroy(dsk, 2);
if (dsk->bg)
- BackgroundDecRefcount(dsk->bg);
+ {
+ if (dsk->pmap != None)
+ BackgroundPixmapUnset(dsk->bg, dsk->pmap);
+ BackgroundDecRefcount(dsk->bg);
+ }
EoFini(dsk);
@@ -481,6 +485,163 @@
Efree(dsk);
}
+void
+DeskBackgroundAssign(unsigned int desk, Background * bg)
+{
+ if (desk >= ENLIGHTENMENT_CONF_NUM_DESKTOPS)
+ return;
+
+ desks.bg[desk] = bg;
+}
+
+Background *
+DeskBackgroundGet(const Desk * dsk)
+{
+ return (dsk) ? dsk->bg : NULL;
+}
+
+static void
+DeskBackgroundFree(Desk * dsk, int force)
+{
+ Window win;
+
+ if (!dsk->bg_isset)
+ return;
+
+ dsk->bg_isset = 0;
+
+ if (EventDebug(EDBUG_TYPE_DESKS))
+ Eprintf("DeskBackgroundFree %d v=%d force=%d\n", dsk->num,
+ dsk->viewable, force);
+
+ if (!dsk->viewable || force)
+ {
+ if (dsk->pmap != None)
+ {
+ BackgroundPixmapUnset(dsk->bg, dsk->pmap);
+ dsk->pmap = None;
+ }
+ }
+
+ if (!dsk->viewable)
+ {
+ win = EoGetWin(dsk);
+ if (!Conf.hints.set_xroot_info_on_root_window)
+ HintsSetRootInfo(win, None, 0);
+ ESetWindowBackgroundPixmap(win, None);
+ }
+}
+
+static void
+DeskBackgroundRefresh(Desk * dsk)
+{
+ Background *bg;
+ Pixmap pmap;
+ unsigned long pixel;
+
+ if (!dsk->viewable)
+ return;
+
+ if (EventDebug(EDBUG_TYPE_DESKS))
+ Eprintf("DeskBackgroundRefresh %d v=%d - %dx%d\n", dsk->num,
+ dsk->viewable, EoGetW(dsk), EoGetH(dsk));
+
+ bg = dsk->bg;
+ if (!bg)
+ return;
+
+ pmap = BackgroundGetPixmap(bg);
+ pixel = 0;
+ if (dsk->bg_isset && dsk->pmap == pmap)
+ return;
+
+ if (pmap == None)
+ BackgroundRealize(bg, EoGetWin(dsk), EoGetW(dsk), EoGetH(dsk), 1,
+ &pmap, &pixel);
+
+ if (pmap != None)
+ {
+ ESetWindowBackgroundPixmap(EoGetWin(dsk), pmap);
+ BackgroundPixmapSet(dsk->bg, pmap);
+ }
+ else
+ {
+ ESetWindowBackground(EoGetWin(dsk), pixel);
+ }
+ EClearWindow(EoGetWin(dsk));
+
+ HintsSetRootInfo(EoGetWin(dsk), pmap, pixel);
+ dsk->pmap = pmap;
+ dsk->bg_isset = 1;
+}
+
+static void
+DeskBackgroundUpdate(Desk * dsk)
+{
+ if (dsk->viewable)
+ DeskBackgroundRefresh(dsk);
+ else
+ DeskBackgroundFree(dsk, 0);
+}
+
+void
+DeskBackgroundSet(Desk * dsk, Background * bg)
+{
+ if (!dsk)
+ return;
+
+ if (bg && BackgroundIsNone(bg))
+ bg = NULL;
+
+ if (dsk->bg != bg)
+ {
+ if (dsk->bg)
+ {
+ DeskBackgroundFree(dsk, 1);
+ BackgroundDecRefcount(dsk->bg);
+ }
+ if (bg)
+ BackgroundIncRefcount(bg);
+ }
+
+ dsk->bg = bg;
+
+ if (dsk->viewable)
+ DeskBackgroundRefresh(dsk);
+
+ ModulesSignal(ESIGNAL_BACKGROUND_CHANGE, dsk);
+}
+
+void
+DesksBackgroundFree(Background * bg, int force)
+{
+ Desk *dsk;
+ unsigned int i;
+
+ for (i = 0; i < Conf.desks.num; i++)
+ {
+ dsk = _DeskGet(i);
+ if (dsk->bg != bg)
+ continue;
+ DeskBackgroundFree(dsk, force);
+ }
+}
+
+void
+DesksBackgroundRefresh(Background * bg)
+{
+ Desk *dsk;
+ unsigned int i;
+
+ for (i = 0; i < Conf.desks.num; i++)
+ {
+ dsk = _DeskGet(i);
+ if (dsk->bg != bg)
+ continue;
+ DeskBackgroundUpdate(dsk);
+ }
+}
+
static void
DeskResize(int desk, int w, int h)
{
@@ -498,8 +659,7 @@
x = (dsk->viewable) ? EoGetX(dsk) : VRoot.w;
EoMoveResize(dsk, x, 0, w, h);
}
- BackgroundPixmapFree(dsk->bg);
- DeskRefresh(dsk);
+ DeskBackgroundUpdate(dsk);
DeskControlsDestroy(dsk, 1);
DeskControlsCreate(dsk);
DeskControlsShow(dsk, 1);
@@ -526,12 +686,6 @@
return _DeskGet(desk);
}
-Background *
-DeskBackgroundGet(const Desk * dsk)
-{
- return (dsk) ? dsk->bg : NULL;
-}
-
void
DeskGetArea(const Desk * dsk, int *ax, int *ay)
{
@@ -629,6 +783,8 @@
{
unsigned int i;
+ BackgroundsInvalidate(0);
+
for (i = 0; i < Conf.desks.num; i++)
DeskResize(i, w, h);
@@ -829,68 +985,6 @@
}
}
-void
-DeskRefresh(Desk * dsk)
-{
- Background *bg;
-
- if (!dsk || !dsk->viewable)
- return;
-
- if (EventDebug(EDBUG_TYPE_DESKS))
- Eprintf("DeskRefresh %d - %dx%d\n", dsk->num, EoGetW(dsk), EoGetH(dsk));
-
- bg = dsk->bg;
- if (!bg)
- return;
-
- if (dsk->bg_isset && dsk->pmap == BackgroundGetPixmap(bg))
- return;
-
- BackgroundSet(bg, EoGetWin(dsk), EoGetW(dsk), EoGetH(dsk));
- dsk->bg_isset = 1;
- dsk->pmap = BackgroundGetPixmap(bg);
- HintsSetRootInfo(EoGetWin(dsk),
- BackgroundGetPixmap(bg), BackgroundGetColor(bg));
-}
-
-void
-DeskBackgroundAssign(unsigned int desk, Background * bg)
-{
- if (desk >= ENLIGHTENMENT_CONF_NUM_DESKTOPS)
- return;
-
- desks.bg[desk] = bg;
-}
-
-void
-DeskBackgroundSet(Desk * dsk, Background * bg, int refresh)
-{
- if (!dsk)
- return;
-
- if (refresh)
- BackgroundPixmapFree(dsk->bg);
-
- if (bg && BackgroundIsNone(bg))
- bg = NULL;
-
- if (dsk->bg != bg)
- {
- if (dsk->bg)
- BackgroundDecRefcount(dsk->bg);
- if (bg)
- BackgroundIncRefcount(bg);
- }
-
- dsk->bg = bg;
-
- if (dsk->viewable)
- DeskRefresh(dsk);
-
- ModulesSignal(ESIGNAL_BACKGROUND_CHANGE, dsk);
-}
-
Desk *
DesktopAt(int x, int y)
{
@@ -969,7 +1063,7 @@
if (!dd->viewable && v)
{
dd->viewable = 1;
- DeskRefresh(_DeskGet(desks.order[i]));
+ DeskBackgroundRefresh(_DeskGet(desks.order[i]));
}
else if (dd->viewable && !v)
{
@@ -1021,7 +1115,7 @@
EGrabServer();
dsk->viewable = 1;
- DeskRefresh(dsk);
+ DeskBackgroundRefresh(dsk);
MoveToDeskTop(dsk->num);
desks.previous = desks.current = dsk;
@@ -1156,7 +1250,7 @@
dsk = _DeskGet(desk);
dsk->viewable = 1;
- DeskRefresh(dsk);
+ DeskBackgroundRefresh(dsk);
}
static void
@@ -1226,7 +1320,7 @@
dsk = _DeskGet(desk);
dsk->viewable = 1;
- DeskRefresh(dsk);
+ DeskBackgroundRefresh(dsk);
MoveToDeskTop(desk);
if (desk == 0)
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/desktops.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- desktops.h 21 Nov 2005 17:48:44 -0000 1.13
+++ desktops.h 27 Nov 2005 11:02:05 -0000 1.14
@@ -57,14 +57,15 @@
void DeskSetArea(Desk * dsk, int ax, int ay);
int DeskIsViewable(const Desk * dsk);
void DeskSetDirtyStack(Desk * dsk, EObj * eo);
-void DeskRefresh(Desk * dsk);
void DeskGoto(Desk * dsk);
void DeskGotoNum(unsigned int desk);
void DeskRestack(Desk * dsk);
void DeskBackgroundAssign(unsigned int desk, Background * bg);
Background *DeskBackgroundGet(const Desk * dsk);
-void DeskBackgroundSet(Desk * dsk, Background * bg, int
refresh);
+void DeskBackgroundSet(Desk * dsk, Background * bg);
+void DesksBackgroundFree(Background * bg, int force);
+void DesksBackgroundRefresh(Background * bg);
void DeskCurrentGetArea(int *ax, int *ay);
void DeskCurrentGotoArea(int ax, int ay);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/iclass.c,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -3 -r1.84 -r1.85
--- iclass.c 22 Nov 2005 23:21:47 -0000 1.84
+++ iclass.c 27 Nov 2005 11:02:05 -0000 1.85
@@ -163,7 +163,7 @@
if (prev_alpha == 0)
{
/* Hack to get tiled backgrounds regenerated at full size */
- BackgroundsInvalidate();
+ BackgroundsInvalidate(1);
}
ModulesSignal(ESIGNAL_THEME_TRANS_CHANGE, NULL);
}
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/startup.c,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -3 -r1.65 -r1.66
--- startup.c 30 Oct 2005 19:40:49 -0000 1.65
+++ startup.c 27 Nov 2005 11:02:05 -0000 1.66
@@ -108,7 +108,8 @@
BackgroundSet(bg, win1, VRoot.w, VRoot.h);
BackgroundSet(bg, win2, VRoot.w, VRoot.h);
- BackgroundImagesFree(bg, 1);
+ BackgroundDestroyByName("STARTUP_BACKGROUND_SIDEWAYS");
+ BackgroundDestroyByName("STARTUP_BACKGROUND");
EobjMap(init_win1, 0);
EobjMap(init_win2, 0);
@@ -173,9 +174,6 @@
EobjWindowDestroy(init_win2);
init_win1 = NULL;
init_win2 = NULL;
-
- BackgroundDestroyByName("STARTUP_BACKGROUND_SIDEWAYS");
- BackgroundDestroyByName("STARTUP_BACKGROUND");
}
void
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs