e_hints_scale_update();
}
+EAPI void
+e_scale_manual_update(int dpi)
+{
+ char buf[128];
+
+ e_scale = (double)dpi / (double)e_config->scale.base_dpi;
+
+ if (e_scale > e_config->scale.max) e_scale = e_config->scale.max;
+ else if (e_scale < e_config->scale.min)
+ e_scale = e_config->scale.min;
+
+ elm_config_scale_set(e_scale);
+ elm_config_all_flush();
+ edje_scale_set(e_scale);
+ snprintf(buf, sizeof(buf), "%1.3f", e_scale);
+ e_util_env_set("E_SCALE", buf);
+ e_hints_scale_update();
+}
+
EINTERN int e_scale_init(void);
EINTERN int e_scale_shutdown(void);
EAPI void e_scale_update(void);
+EAPI void e_scale_manual_update(int dpi);
extern EAPI double e_scale;
e->phys_width, e->phys_height, e->refresh,
e->subpixel_order, e->transform);
+ /* previous calculation of e_scale gave unsuitable value because
+ * there were no sufficient information to calculate dpi.
+ * so it's considerable to re-calculate e_scale with output geometry.
+ */
+ e_scale_manual_update(((e->w * 254 / e->phys_width) + 5) / 10);
+
end:
return ECORE_CALLBACK_PASS_ON;
}