Fix external background on root at startup with CM enabled. Cleanups.
SVN revision: 20891
This commit is contained in:
parent
d092ff2f43
commit
ad52858fbb
|
@ -63,6 +63,9 @@ struct _background
|
||||||
static Ecore_List *bg_list = NULL;
|
static Ecore_List *bg_list = NULL;
|
||||||
static unsigned int bg_seq_no = 0;
|
static unsigned int bg_seq_no = 0;
|
||||||
|
|
||||||
|
#define N_BG_ASSIGNED 32
|
||||||
|
static Background *bg_assigned[N_BG_ASSIGNED];
|
||||||
|
|
||||||
char *
|
char *
|
||||||
BackgroundGetUniqueString(const Background * bg)
|
BackgroundGetUniqueString(const Background * bg)
|
||||||
{
|
{
|
||||||
|
@ -337,7 +340,7 @@ BackgroundFind(const char *name)
|
||||||
return ecore_list_find(bg_list, _BackgroundMatchName, name);
|
return ecore_list_find(bg_list, _BackgroundMatchName, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
Background *
|
static Background *
|
||||||
BackgroundCheck(Background * bg)
|
BackgroundCheck(Background * bg)
|
||||||
{
|
{
|
||||||
return ecore_list_goto(bg_list, bg);
|
return ecore_list_goto(bg_list, bg);
|
||||||
|
@ -1121,7 +1124,7 @@ BackgroundsInvalidate(int refresh)
|
||||||
ECORE_LIST_FOR_EACH(bg_list, bg) BackgroundInvalidate(bg, refresh);
|
ECORE_LIST_FOR_EACH(bg_list, bg) BackgroundInvalidate(bg, refresh);
|
||||||
}
|
}
|
||||||
|
|
||||||
Background *
|
static Background *
|
||||||
BackgroundGetRandom(void)
|
BackgroundGetRandom(void)
|
||||||
{
|
{
|
||||||
Background *bg;
|
Background *bg;
|
||||||
|
@ -1140,6 +1143,32 @@ BackgroundGetRandom(void)
|
||||||
return bg;
|
return bg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
BackgroundSetForDesk(Background * bg, unsigned int desk)
|
||||||
|
{
|
||||||
|
if (desk >= N_BG_ASSIGNED)
|
||||||
|
return;
|
||||||
|
|
||||||
|
bg_assigned[desk] = bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
Background *
|
||||||
|
BackgroundGetForDesk(unsigned int desk)
|
||||||
|
{
|
||||||
|
Background *bg;
|
||||||
|
|
||||||
|
if (desk >= N_BG_ASSIGNED)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
bg = bg_assigned[desk];
|
||||||
|
if (bg)
|
||||||
|
bg = BackgroundCheck(bg);
|
||||||
|
if (!bg)
|
||||||
|
bg = BackgroundGetRandom();
|
||||||
|
|
||||||
|
return bg;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Config load/save
|
* Config load/save
|
||||||
*/
|
*/
|
||||||
|
@ -1262,20 +1291,18 @@ BackgroundsConfigLoad(FILE * fs)
|
||||||
|
|
||||||
case BG_DESKNUM:
|
case BG_DESKNUM:
|
||||||
desk = atoi(s2);
|
desk = atoi(s2);
|
||||||
if (desk < DesksGetNumber())
|
if (desk >= N_BG_ASSIGNED)
|
||||||
|
break;
|
||||||
|
if (!bg_assigned[desk] || Conf.backgrounds.user)
|
||||||
{
|
{
|
||||||
if ((DeskBackgroundGet(DeskGet(desk)) == NULL) ||
|
if (!ignore)
|
||||||
(Conf.backgrounds.user))
|
|
||||||
{
|
{
|
||||||
if (!ignore)
|
if (!bg)
|
||||||
{
|
bg = BackgroundCreate(name, &xclr, bg1, i1, i2,
|
||||||
if (!bg)
|
i3, i4, i5, i6, bg2, j1,
|
||||||
bg = BackgroundCreate(name, &xclr, bg1, i1, i2,
|
j2, j3, j4, j5);
|
||||||
i3, i4, i5, i6, bg2, j1,
|
|
||||||
j2, j3, j4, j5);
|
|
||||||
}
|
|
||||||
DeskBackgroundAssign(desk, bg);
|
|
||||||
}
|
}
|
||||||
|
bg_assigned[desk] = bg;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1434,13 +1461,9 @@ BackgroundsConfigSave(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (j = 0; j < DesksGetNumber(); j++)
|
for (j = 0; j < N_BG_ASSIGNED; j++)
|
||||||
{
|
{
|
||||||
Desk *dsk = DeskGet(j);
|
if (bg == bg_assigned[j])
|
||||||
|
|
||||||
if (BackgroundIsNone(bg) && !DeskBackgroundGet(dsk))
|
|
||||||
fprintf(fs, "564 %d\n", j);
|
|
||||||
if (DeskBackgroundGet(dsk) == bg)
|
|
||||||
fprintf(fs, "564 %d\n", j);
|
fprintf(fs, "564 %d\n", j);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,8 +28,7 @@ typedef struct _background Background;
|
||||||
|
|
||||||
/* backgrounds.c */
|
/* backgrounds.c */
|
||||||
Background *BackgroundFind(const char *name);
|
Background *BackgroundFind(const char *name);
|
||||||
Background *BackgroundCheck(Background * bg);
|
|
||||||
Background *BackgroundGetRandom(void);
|
|
||||||
char *BackgroundGetUniqueString(const Background * bg);
|
char *BackgroundGetUniqueString(const Background * bg);
|
||||||
void BackgroundPixmapSet(Background * bg, Pixmap pmap);
|
void BackgroundPixmapSet(Background * bg, Pixmap pmap);
|
||||||
void BackgroundDestroyByName(const char *name);
|
void BackgroundDestroyByName(const char *name);
|
||||||
|
@ -54,6 +53,9 @@ Background *BrackgroundCreateFromImage(const char *bgid,
|
||||||
const char *file, char *thumb,
|
const char *file, char *thumb,
|
||||||
int thlen);
|
int thlen);
|
||||||
|
|
||||||
|
void BackgroundSetForDesk(Background * bg, unsigned int desk);
|
||||||
|
Background *BackgroundGetForDesk(unsigned int desk);
|
||||||
|
|
||||||
void BackgroundsInvalidate(int refresh);
|
void BackgroundsInvalidate(int refresh);
|
||||||
int BackgroundsConfigLoad(FILE * fs);
|
int BackgroundsConfigLoad(FILE * fs);
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,6 @@ typedef struct _desktops
|
||||||
Desk *previous;
|
Desk *previous;
|
||||||
Desk *desk[ENLIGHTENMENT_CONF_NUM_DESKTOPS];
|
Desk *desk[ENLIGHTENMENT_CONF_NUM_DESKTOPS];
|
||||||
unsigned int order[ENLIGHTENMENT_CONF_NUM_DESKTOPS];
|
unsigned int order[ENLIGHTENMENT_CONF_NUM_DESKTOPS];
|
||||||
Background *bg[ENLIGHTENMENT_CONF_NUM_DESKTOPS];
|
|
||||||
int drag_x0, drag_y0;
|
int drag_x0, drag_y0;
|
||||||
}
|
}
|
||||||
Desktops;
|
Desktops;
|
||||||
|
@ -370,11 +369,7 @@ DeskConfigure(Desk * dsk)
|
||||||
DeskControlsCreate(dsk);
|
DeskControlsCreate(dsk);
|
||||||
DeskControlsShow(dsk, 1);
|
DeskControlsShow(dsk, 1);
|
||||||
|
|
||||||
bg = desks.bg[dsk->num];
|
bg = BackgroundGetForDesk(dsk->num);
|
||||||
if (bg)
|
|
||||||
bg = BackgroundCheck(bg);
|
|
||||||
if (!bg)
|
|
||||||
bg = BackgroundGetRandom();
|
|
||||||
DeskBackgroundSet(dsk, bg);
|
DeskBackgroundSet(dsk, bg);
|
||||||
|
|
||||||
if (dsk->num > 0)
|
if (dsk->num > 0)
|
||||||
|
@ -427,8 +422,6 @@ DeskCreate(int desk, int configure)
|
||||||
EventCallbackRegister(EobjGetWin(eo), 0, DeskHandleEvents, dsk);
|
EventCallbackRegister(EobjGetWin(eo), 0, DeskHandleEvents, dsk);
|
||||||
dsk->bg.o_bg = eo;
|
dsk->bg.o_bg = eo;
|
||||||
#endif
|
#endif
|
||||||
if (Mode.root.ext_pmap_valid)
|
|
||||||
dsk->bg.pmap_set = Mode.root.ext_pmap;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -500,15 +493,6 @@ DeskGetBackgroundWin(const Desk * dsk)
|
||||||
return EobjGetWin(dsk->bg.o);
|
return EobjGetWin(dsk->bg.o);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
DeskBackgroundAssign(unsigned int desk, Background * bg)
|
|
||||||
{
|
|
||||||
if (desk >= ENLIGHTENMENT_CONF_NUM_DESKTOPS)
|
|
||||||
return;
|
|
||||||
|
|
||||||
desks.bg[desk] = bg;
|
|
||||||
}
|
|
||||||
|
|
||||||
Background *
|
Background *
|
||||||
DeskBackgroundGet(const Desk * dsk)
|
DeskBackgroundGet(const Desk * dsk)
|
||||||
{
|
{
|
||||||
|
@ -677,6 +661,7 @@ DeskBackgroundSet(Desk * dsk, Background * bg)
|
||||||
if (!dsk)
|
if (!dsk)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
BackgroundSetForDesk(bg, dsk->num);
|
||||||
if (bg && BackgroundIsNone(bg))
|
if (bg && BackgroundIsNone(bg))
|
||||||
bg = NULL;
|
bg = NULL;
|
||||||
|
|
||||||
|
|
|
@ -79,8 +79,6 @@ void DeskGotoNum(unsigned int desk);
|
||||||
void DeskRestack(Desk * dsk);
|
void DeskRestack(Desk * dsk);
|
||||||
Window DeskGetBackgroundWin(const Desk * dsk);
|
Window DeskGetBackgroundWin(const Desk * dsk);
|
||||||
|
|
||||||
void DeskBackgroundAssign(unsigned int desk,
|
|
||||||
struct _background *bg);
|
|
||||||
struct _background *DeskBackgroundGet(const Desk * dsk);
|
struct _background *DeskBackgroundGet(const Desk * dsk);
|
||||||
void DeskBackgroundSet(Desk * dsk, struct _background *bg);
|
void DeskBackgroundSet(Desk * dsk, struct _background *bg);
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,6 @@
|
||||||
|
|
||||||
#include "E.h"
|
#include "E.h"
|
||||||
#if USE_COMPOSITE
|
#if USE_COMPOSITE
|
||||||
#include "backgrounds.h"
|
|
||||||
#include "desktops.h"
|
#include "desktops.h"
|
||||||
#include "ecompmgr.h"
|
#include "ecompmgr.h"
|
||||||
#include "emodule.h"
|
#include "emodule.h"
|
||||||
|
|
Loading…
Reference in New Issue