forked from enlightenment/terminology
make fonts delay loaded .. with soem randomness so they dont batch all
at once... SVN revision: 81658
This commit is contained in:
parent
20ce6a52f6
commit
7720a2e4f0
22
configure.ac
22
configure.ac
|
@ -19,17 +19,17 @@ AM_PROG_CC_C_O
|
||||||
AC_C___ATTRIBUTE__
|
AC_C___ATTRIBUTE__
|
||||||
|
|
||||||
requirements="\
|
requirements="\
|
||||||
elementary >= 1.7.99 \
|
elementary >= 1.7.0 \
|
||||||
eina >= 1.7.99 \
|
eina >= 1.7.0 \
|
||||||
eet >= 1.7.99 \
|
eet >= 1.7.0 \
|
||||||
evas >= 1.7.99 \
|
evas >= 1.7.0 \
|
||||||
ecore >= 1.7.99 \
|
ecore >= 1.7.0 \
|
||||||
edje >= 1.7.99 \
|
edje >= 1.7.0 \
|
||||||
emotion >= 1.7.99 \
|
emotion >= 1.7.0 \
|
||||||
ecore-input >= 1.7.99 \
|
ecore-input >= 1.7.0 \
|
||||||
ecore-imf >= 1.7.99 \
|
ecore-imf >= 1.7.0 \
|
||||||
ecore-imf-evas >= 1.7.99 \
|
ecore-imf-evas >= 1.7.0 \
|
||||||
efreet >= 1.7.99
|
efreet >= 1.7.0
|
||||||
"
|
"
|
||||||
|
|
||||||
PKG_CHECK_MODULES([TERMINOLOGY], [${requirements}])
|
PKG_CHECK_MODULES([TERMINOLOGY], [${requirements}])
|
||||||
|
|
|
@ -89,21 +89,27 @@ _cb_op_font_preview_del(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_cb_op_font_preview_eval(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event __UNUSED__)
|
_cb_op_font_preview_delayed_eval(void *data)
|
||||||
{
|
{
|
||||||
Font *f = data;
|
Evas_Object *obj = data;
|
||||||
|
Font *f;
|
||||||
Evas_Object *o;
|
Evas_Object *o;
|
||||||
Evas_Coord ox, oy, ow, oh, vx, vy, vw, vh;
|
Evas_Coord ox, oy, ow, oh, vx, vy, vw, vh;
|
||||||
Config *config = termio_config_get(f->term);
|
Config *config;
|
||||||
char buf[4096];
|
|
||||||
|
|
||||||
if (!evas_object_visible_get(obj)) return;
|
if (!evas_object_visible_get(obj)) goto done;
|
||||||
if (edje_object_part_swallow_get(obj, "terminology.text.preview")) return;
|
if (edje_object_part_swallow_get(obj, "terminology.text.preview")) goto done;
|
||||||
evas_object_geometry_get(obj, &ox, &oy, &ow, &oh);
|
evas_object_geometry_get(obj, &ox, &oy, &ow, &oh);
|
||||||
if ((ow < 2) || (oh < 2)) return;
|
if ((ow < 2) || (oh < 2)) goto done;
|
||||||
evas_output_viewport_get(evas_object_evas_get(obj), &vx, &vy, &vw, &vh);
|
evas_output_viewport_get(evas_object_evas_get(obj), &vx, &vy, &vw, &vh);
|
||||||
|
f = evas_object_data_get(obj, "font");
|
||||||
|
if (!f) goto done;
|
||||||
|
config = termio_config_get(f->term);
|
||||||
|
if (!config) goto done;
|
||||||
if (ELM_RECTS_INTERSECT(ox, oy, ow, oh, vx, vy, vw, vh))
|
if (ELM_RECTS_INTERSECT(ox, oy, ow, oh, vx, vy, vw, vh))
|
||||||
{
|
{
|
||||||
|
char buf[4096];
|
||||||
|
|
||||||
o = evas_object_text_add(evas_object_evas_get(obj));
|
o = evas_object_text_add(evas_object_evas_get(obj));
|
||||||
evas_object_color_set(o, 0, 0, 0, 255);
|
evas_object_color_set(o, 0, 0, 0, 255);
|
||||||
evas_object_text_text_set(o, TEST_STRING);
|
evas_object_text_text_set(o, TEST_STRING);
|
||||||
|
@ -120,6 +126,34 @@ _cb_op_font_preview_eval(void *data, Evas *e __UNUSED__, Evas_Object *obj, void
|
||||||
evas_object_size_hint_min_set(o, ow, oh);
|
evas_object_size_hint_min_set(o, ow, oh);
|
||||||
edje_object_part_swallow(obj, "terminology.text.preview", o);
|
edje_object_part_swallow(obj, "terminology.text.preview", o);
|
||||||
}
|
}
|
||||||
|
done:
|
||||||
|
evas_object_data_del(obj, "delay");
|
||||||
|
return EINA_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_op_font_preview_eval(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event __UNUSED__)
|
||||||
|
{
|
||||||
|
Font *f = data;
|
||||||
|
Evas_Coord ox, oy, ow, oh, vx, vy, vw, vh;
|
||||||
|
|
||||||
|
if (!evas_object_visible_get(obj)) return;
|
||||||
|
if (edje_object_part_swallow_get(obj, "terminology.text.preview")) return;
|
||||||
|
evas_object_geometry_get(obj, &ox, &oy, &ow, &oh);
|
||||||
|
if ((ow < 2) || (oh < 2)) return;
|
||||||
|
evas_output_viewport_get(evas_object_evas_get(obj), &vx, &vy, &vw, &vh);
|
||||||
|
if (ELM_RECTS_INTERSECT(ox, oy, ow, oh, vx, vy, vw, vh))
|
||||||
|
{
|
||||||
|
Ecore_Timer *timer;
|
||||||
|
double rnd = 0.2;
|
||||||
|
|
||||||
|
timer = evas_object_data_get(obj, "delay");
|
||||||
|
if (timer) return;
|
||||||
|
else evas_object_data_set(obj, "font", f);
|
||||||
|
rnd += (double)(rand() % 100) / 500.0;
|
||||||
|
timer = ecore_timer_add(rnd, _cb_op_font_preview_delayed_eval, obj);
|
||||||
|
evas_object_data_set(obj, "delay", timer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -773,16 +773,7 @@ _getsel_cb(void *data, Evas_Object *obj __UNUSED__, Elm_Selection_Data *ev)
|
||||||
for (i = 0; i < ev->len; i++)
|
for (i = 0; i < ev->len; i++)
|
||||||
{
|
{
|
||||||
tmp[i] = s[i];
|
tmp[i] = s[i];
|
||||||
if (tmp[i] == '\n')
|
if (tmp[i] == '\n') tmp[i] = '\r';
|
||||||
{
|
|
||||||
// remove trailing new line
|
|
||||||
if (i != (ev->len - 2)) tmp[i] = '\r';
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tmp[i] = '\0';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
termpty_write(sd->pty, tmp, ev->len - 1);
|
termpty_write(sd->pty, tmp, ev->len - 1);
|
||||||
free(tmp);
|
free(tmp);
|
||||||
|
|
Loading…
Reference in New Issue