pager fixups...

1. dont use a livethumb resolution OF THE SCREEN! per pager desktop
that means u alloc width*height*4 bytes... u have 6 desktops,
1920x1080 screen... thats 48mb for the backing images at full res. no!
bad bad! so i cut it down to 1/16th of the screen res. ie 1920/16 x
1080/16 for the full rest "livethumb". at least its much more
managable (i woke up to find after an update my e was using an EXTRA
100mb of ram! (2560x1440*4desk + 1920x1200*4desk).
2. dont create the livethumbs at all unless you have the bg preview
on! (i had it off and i still paid the price of the mem usage).
3. make the live preview inverted in the cfg gui - ie enable the live
preview, not disable it.
4. fix theme to preview bg fills the pager base box correctly within
the border bounds.
5. dont enforce aspect handling in livethumb as pager is "master" of
aspect (taken from desktop anyway).



SVN revision: 75154
This commit is contained in:
Carsten Haitzler 2012-08-11 04:40:30 +00:00
parent c02739d6c0
commit 4ea769764a
3 changed files with 36 additions and 26 deletions

View File

@ -10632,13 +10632,14 @@ collections {
clip_to: "bg_clip";
description {
state: "default" 0.0;
visible: 1;
color: 255 255 255 255;
rel1 {
to: "zoom";
offset: -1 -1;
to: "base";
offset: 3 3;
}
rel2 {
to: "base";
offset: -4 -4;
}
rel2.to: "zoom";
}
description {
state: "hidden" 0.0;
@ -10651,7 +10652,7 @@ collections {
type: RECT;
description {
state: "default" 0.0;
color: 200 200 200 200;
color: 255 255 255 200;
rel1.to: "e.background";
rel2.to: "e.background";
}

View File

@ -29,7 +29,7 @@ struct _E_Config_Dialog_Data
Evas_Object *ob1, *ob2, *ob3;
Eina_List *popup_list, *urgent_list;
} gui;
int drag_resist, flip_desk, show_desk_names, disable_live_preview;
int drag_resist, flip_desk, show_desk_names, live_preview;
};
/* local function prototypes */
@ -104,7 +104,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->btn.noplace = pager_config->btn_noplace;
cfdata->btn.desk = pager_config->btn_desk;
cfdata->flip_desk = pager_config->flip_desk;
cfdata->disable_live_preview = pager_config->disable_live_preview;
cfdata->live_preview = !pager_config->disable_live_preview;
cfdata->show_desk_names = pager_config->show_desk_names;
}
@ -131,8 +131,8 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
ow = e_widget_check_add(evas, _("Always show desktop names"),
&(cfdata->show_desk_names));
e_widget_framelist_object_append(of, ow);
ow = e_widget_check_add(evas, _("Disable live preview"),
&(cfdata->disable_live_preview));
ow = e_widget_check_add(evas, _("Live preview"),
&(cfdata->live_preview));
e_widget_framelist_object_append(of, ow);
e_widget_list_object_append(ol, of, 1, 0, 0.5);
@ -153,7 +153,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
{
pager_config->popup = cfdata->popup.show;
pager_config->flip_desk = cfdata->flip_desk;
pager_config->disable_live_preview = cfdata->disable_live_preview;
pager_config->disable_live_preview = !cfdata->live_preview;
pager_config->show_desk_names = cfdata->show_desk_names;
pager_config->popup_urgent = cfdata->popup.urgent_show;
_pager_cb_config_updated();
@ -166,7 +166,7 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfda
{
if ((int)pager_config->popup != cfdata->popup.show) return 1;
if ((int)pager_config->flip_desk != cfdata->flip_desk) return 1;
if ((int)pager_config->disable_live_preview != cfdata->disable_live_preview) return 1;
if ((int)pager_config->disable_live_preview != !cfdata->live_preview) return 1;
if ((int)pager_config->show_desk_names != cfdata->show_desk_names) return 1;
if ((int)pager_config->popup_urgent != cfdata->popup.urgent_show) return 1;
@ -189,8 +189,8 @@ _adv_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *c
ow = e_widget_check_add(evas, _("Always show desktop names"),
&(cfdata->show_desk_names));
e_widget_list_object_append(ol, ow, 1, 0, 0.5);
ow = e_widget_check_add(evas, _("Disable live preview"),
&(cfdata->disable_live_preview));
ow = e_widget_check_add(evas, _("Live preview"),
&(cfdata->live_preview));
e_widget_list_object_append(ol, ow, 1, 0, 0.5);
ow = e_widget_label_add(evas, _("Resistance to dragging"));
e_widget_list_object_append(ol, ow, 1, 0, 0.5);
@ -300,7 +300,7 @@ _adv_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
pager_config->popup = cfdata->popup.show;
pager_config->popup_speed = cfdata->popup.speed;
pager_config->flip_desk = cfdata->flip_desk;
pager_config->disable_live_preview = cfdata->disable_live_preview;
pager_config->disable_live_preview = !cfdata->live_preview;
pager_config->popup_urgent = cfdata->popup.urgent_show;
pager_config->popup_urgent_stick = cfdata->popup.urgent_stick;
pager_config->popup_urgent_focus = cfdata->popup.urgent_focus;
@ -321,7 +321,7 @@ static int
_adv_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
{
if ((int)pager_config->popup != cfdata->popup.show) return 1;
if ((int)pager_config->disable_live_preview != cfdata->disable_live_preview) return 1;
if ((int)pager_config->disable_live_preview != !cfdata->live_preview) return 1;
if ((int)pager_config->show_desk_names != cfdata->show_desk_names) return 1;
if ((int)pager_config->popup_urgent != cfdata->popup.urgent_show) return 1;
if (pager_config->popup_speed != cfdata->popup.speed) return 1;

View File

@ -357,9 +357,9 @@ _pager_desk_livethumb_setup(Pager_Desk *pd)
if (!pd->o_bg)
{
pd->o_bg = e_livethumb_add(e);
e_livethumb_vsize_set(pd->o_bg, pd->desk->zone->w, pd->desk->zone->h);
edje_extern_object_aspect_set(pd->o_bg, EDJE_ASPECT_CONTROL_NEITHER,
pd->desk->zone->w, pd->desk->zone->h);
e_livethumb_vsize_set(pd->o_bg, pd->desk->zone->w / 16, pd->desk->zone->h / 16);
// edje_extern_object_aspect_set(pd->o_bg, EDJE_ASPECT_CONTROL_NEITHER,
// pd->desk->zone->w / 16, pd->desk->zone->h / 16);
edje_object_part_swallow(pd->o_desk, "e.background", pd->o_bg);
}
@ -368,10 +368,6 @@ _pager_desk_livethumb_setup(Pager_Desk *pd)
bgfile = e_bg_file_get(pd->desk->zone->container->num, pd->desk->zone->num, pd->desk->x, pd->desk->y);
edje_object_file_set(o, bgfile, "e/desktop/background");
e_livethumb_thumb_set(pd->o_bg, o);
if (pager_config->disable_live_preview)
edje_object_signal_emit(pd->o_desk, "e,preview,off", "e");
else
edje_object_signal_emit(pd->o_desk, "e,preview,on", "e");
}
static Pager_Desk *
@ -403,7 +399,13 @@ _pager_desk_new(Pager *p, E_Desk *desk, int xpos, int ypos)
if (pager_config->show_desk_names)
edje_object_signal_emit(o, "e,name,show", "e");
_pager_desk_livethumb_setup(pd);
if (pager_config->disable_live_preview)
edje_object_signal_emit(pd->o_desk, "e,preview,off", "e");
else
{
_pager_desk_livethumb_setup(pd);
edje_object_signal_emit(pd->o_desk, "e,preview,on", "e");
}
edje_object_size_min_calc(o, &w, &h);
e_table_pack(p->o_table, o, xpos, ypos, 1, 1);
@ -914,9 +916,16 @@ _pager_cb_config_updated(void)
EINA_LIST_FOREACH(p->desks, ll, pd)
{
if (pager_config->disable_live_preview)
edje_object_signal_emit(pd->o_desk, "e,preview,off", "e");
{
if (pd->o_bg) evas_object_del(pd->o_bg);
pd->o_bg = NULL;
edje_object_signal_emit(pd->o_desk, "e,preview,off", "e");
}
else
edje_object_signal_emit(pd->o_desk, "e,preview,on", "e");
{
_pager_desk_livethumb_setup(pd);
edje_object_signal_emit(pd->o_desk, "e,preview,on", "e");
}
if (pd->current)
edje_object_signal_emit(pd->o_desk, "e,state,selected", "e");
else