Hello!
Attached is a patch that solves the Edje jittery issue. The question
is, why was it working with 387?
Well, now it seems to work as well with 387 and sse.
But (there's always a but ;D), it now seems that there are problems
with some widgets.
There were positionning issues with ilist items, they should look as
before (thank you again boneyfrog for your screenshot) with attached
patch (e_ilist_edje_jittery_update.patch).
Menu items, when focused, seem to move down and right by 1px, and of
course don't go back where they should be when unfocused, but I was
unable to find a workaround :'(.
I'm pretty sure that other things may have broken. :(
Cheers!
ilLogict
Index: edje_calc.c
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_calc.c,v
retrieving revision 1.76
diff -u -r1.76 edje_calc.c
--- edje_calc.c 23 Jan 2006 15:13:44 -0000 1.76
+++ edje_calc.c 3 Mar 2006 20:55:16 -0000
@@ -970,45 +970,45 @@
p3.smooth = (pos < 0.5) ? p1.smooth : p2.smooth;
/* FIXME: do x and y separately base on flag */
- p3.x = (p1.x * (1.0 - pos)) + (p2.x * (pos));
- p3.y = (p1.y * (1.0 - pos)) + (p2.y * (pos));
- p3.w = (p1.w * (1.0 - pos)) + (p2.w * (pos));
- p3.h = (p1.h * (1.0 - pos)) + (p2.h * (pos));
+ p3.x = (p1.x * (1.0 - pos)) + (p2.x * (pos)) + .5;
+ p3.y = (p1.y * (1.0 - pos)) + (p2.y * (pos)) + .5;
+ p3.w = (p1.w * (1.0 - pos)) + (p2.w * (pos)) + .5;
+ p3.h = (p1.h * (1.0 - pos)) + (p2.h * (pos)) + .5;
- p3.req.x = (p1.req.x * (1.0 - pos)) + (p2.req.x * (pos));
- p3.req.y = (p1.req.y * (1.0 - pos)) + (p2.req.y * (pos));
- p3.req.w = (p1.req.w * (1.0 - pos)) + (p2.req.w * (pos));
- p3.req.h = (p1.req.h * (1.0 - pos)) + (p2.req.h * (pos));
+ p3.req.x = (p1.req.x * (1.0 - pos)) + (p2.req.x * (pos)) + .5;
+ p3.req.y = (p1.req.y * (1.0 - pos)) + (p2.req.y * (pos)) + .5;
+ p3.req.w = (p1.req.w * (1.0 - pos)) + (p2.req.w * (pos)) + .5;
+ p3.req.h = (p1.req.h * (1.0 - pos)) + (p2.req.h * (pos)) + .5;
- p3.req_drag.x = (p1.req_drag.x * (1.0 - pos)) + (p2.req_drag.x * (pos));
- p3.req_drag.y = (p1.req_drag.y * (1.0 - pos)) + (p2.req_drag.y * (pos));
- p3.req_drag.w = (p1.req_drag.w * (1.0 - pos)) + (p2.req_drag.w * (pos));
- p3.req_drag.h = (p1.req_drag.h * (1.0 - pos)) + (p2.req_drag.h * (pos));
-
- p3.fill.x = (p1.fill.x * (1.0 - pos)) + (p2.fill.x * (pos));
- p3.fill.y = (p1.fill.y * (1.0 - pos)) + (p2.fill.y * (pos));
- p3.fill.w = (p1.fill.w * (1.0 - pos)) + (p2.fill.w * (pos));
- p3.fill.h = (p1.fill.h * (1.0 - pos)) + (p2.fill.h * (pos));
+ p3.req_drag.x = (p1.req_drag.x * (1.0 - pos)) + (p2.req_drag.x * (pos)) + .5;
+ p3.req_drag.y = (p1.req_drag.y * (1.0 - pos)) + (p2.req_drag.y * (pos)) + .5;
+ p3.req_drag.w = (p1.req_drag.w * (1.0 - pos)) + (p2.req_drag.w * (pos)) + .5;
+ p3.req_drag.h = (p1.req_drag.h * (1.0 - pos)) + (p2.req_drag.h * (pos)) + .5;
+
+ p3.fill.x = (p1.fill.x * (1.0 - pos)) + (p2.fill.x * (pos)) + .5;
+ p3.fill.y = (p1.fill.y * (1.0 - pos)) + (p2.fill.y * (pos)) + .5;
+ p3.fill.w = (p1.fill.w * (1.0 - pos)) + (p2.fill.w * (pos)) + .5;
+ p3.fill.h = (p1.fill.h * (1.0 - pos)) + (p2.fill.h * (pos)) + .5;
- p3.color.r = (p1.color.r * (1.0 - pos)) + (p2.color.r * (pos));
- p3.color.g = (p1.color.g * (1.0 - pos)) + (p2.color.g * (pos));
- p3.color.b = (p1.color.b * (1.0 - pos)) + (p2.color.b * (pos));
- p3.color.a = (p1.color.a * (1.0 - pos)) + (p2.color.a * (pos));
-
- p3.color2.r = (p1.color2.r * (1.0 - pos)) + (p2.color2.r * (pos));
- p3.color2.g = (p1.color2.g * (1.0 - pos)) + (p2.color2.g * (pos));
- p3.color2.b = (p1.color2.b * (1.0 - pos)) + (p2.color2.b * (pos));
- p3.color2.a = (p1.color2.a * (1.0 - pos)) + (p2.color2.a * (pos));
-
- p3.color3.r = (p1.color3.r * (1.0 - pos)) + (p2.color3.r * (pos));
- p3.color3.g = (p1.color3.g * (1.0 - pos)) + (p2.color3.g * (pos));
- p3.color3.b = (p1.color3.b * (1.0 - pos)) + (p2.color3.b * (pos));
- p3.color3.a = (p1.color3.a * (1.0 - pos)) + (p2.color3.a * (pos));
-
- p3.border.l = (p1.border.l * (1.0 - pos)) + (p2.border.l * (pos));
- p3.border.r = (p1.border.r * (1.0 - pos)) + (p2.border.r * (pos));
- p3.border.t = (p1.border.t * (1.0 - pos)) + (p2.border.t * (pos));
- p3.border.b = (p1.border.b * (1.0 - pos)) + (p2.border.b * (pos));
+ p3.color.r = (p1.color.r * (1.0 - pos)) + (p2.color.r * (pos)) + .5;
+ p3.color.g = (p1.color.g * (1.0 - pos)) + (p2.color.g * (pos)) + .5;
+ p3.color.b = (p1.color.b * (1.0 - pos)) + (p2.color.b * (pos)) + .5;
+ p3.color.a = (p1.color.a * (1.0 - pos)) + (p2.color.a * (pos)) + .5;
+
+ p3.color2.r = (p1.color2.r * (1.0 - pos)) + (p2.color2.r * (pos)) + .5;
+ p3.color2.g = (p1.color2.g * (1.0 - pos)) + (p2.color2.g * (pos)) + .5;
+ p3.color2.b = (p1.color2.b * (1.0 - pos)) + (p2.color2.b * (pos)) + .5;
+ p3.color2.a = (p1.color2.a * (1.0 - pos)) + (p2.color2.a * (pos)) + .5;
+
+ p3.color3.r = (p1.color3.r * (1.0 - pos)) + (p2.color3.r * (pos)) + .5;
+ p3.color3.g = (p1.color3.g * (1.0 - pos)) + (p2.color3.g * (pos)) + .5;
+ p3.color3.b = (p1.color3.b * (1.0 - pos)) + (p2.color3.b * (pos)) + .5;
+ p3.color3.a = (p1.color3.a * (1.0 - pos)) + (p2.color3.a * (pos)) + .5;
+
+ p3.border.l = (p1.border.l * (1.0 - pos)) + (p2.border.l * (pos)) + .5;
+ p3.border.r = (p1.border.r * (1.0 - pos)) + (p2.border.r * (pos)) + .5;
+ p3.border.t = (p1.border.t * (1.0 - pos)) + (p2.border.t * (pos)) + .5;
+ p3.border.b = (p1.border.b * (1.0 - pos)) + (p2.border.b * (pos)) + .5;
p3.text.align.x = (p1.text.align.x * (1.0 - pos)) + (p2.text.align.x * (pos));
p3.text.align.y = (p1.text.align.y * (1.0 - pos)) + (p2.text.align.y * (pos));
Index: default_ilist.edc
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/data/themes/default_ilist.edc,v
retrieving revision 1.3
diff -u -r1.3 default_ilist.edc
--- default_ilist.edc 6 Nov 2005 05:48:50 -0000 1.3
+++ default_ilist.edc 3 Mar 2006 22:18:44 -0000
@@ -29,7 +29,7 @@
}
rel2 {
relative: 1.0 1.0;
- offset: -1 -1;
+ offset: -2 -2;
to: "title_bar";
}
image {
@@ -43,24 +43,8 @@
}
description {
state: "active" 0.0;
+ inherit: "default" 0.0;
visible: 1;
- rel1 {
- relative: 0.0 0.0;
- offset: 0 0;
- to: "title_bar";
- }
- rel2 {
- relative: 1.0 1.0;
- offset: -1 -1;
- to: "title_bar";
- }
- image {
- normal: "e17_titlebar_shadow2.png";
- border: 8 8 8 8;
- }
- fill {
- smooth: 0;
- }
color: 255 255 255 255;
}
}
@@ -77,7 +61,7 @@
}
rel2 {
relative: 1.0 1.0;
- offset: -1 -1;
+ offset: -2 -2;
to: "title_bar";
}
image {
@@ -91,24 +75,8 @@
}
description {
state: "active" 0.0;
+ inherit: "default" 0.0;
visible: 1;
- rel1 {
- relative: 0.0 0.0;
- offset: 0 0;
- to: "title_bar";
- }
- rel2 {
- relative: 1.0 1.0;
- offset: -1 -1;
- to: "title_bar";
- }
- image {
- normal: "e17_titlebar_shadow1.png";
- border: 8 8 8 8;
- }
- fill {
- smooth: 0;
- }
color: 255 255 255 255;
}
}
@@ -123,10 +91,10 @@
border: 8 8 8 8;
}
rel1 {
- offset: -4 -4;
+ offset: -5 -5;
}
rel2 {
- offset: 3 3;
+ offset: 2 2;
}
color: 255 255 255 0;
}
@@ -495,7 +463,7 @@
}
rel2 {
relative: 1.0 1.0;
- offset: -1 -1;
+ offset: -2 -2;
to: "title_bar";
}
image {
@@ -509,24 +477,8 @@
}
description {
state: "active" 0.0;
+ inherit: "default" 0.0;
visible: 1;
- rel1 {
- relative: 0.0 0.0;
- offset: 0 0;
- to: "title_bar";
- }
- rel2 {
- relative: 1.0 1.0;
- offset: -1 -1;
- to: "title_bar";
- }
- image {
- normal: "e17_titlebar_shadow2.png";
- border: 8 8 8 8;
- }
- fill {
- smooth: 0;
- }
color: 255 255 255 255;
}
}
@@ -543,7 +495,7 @@
}
rel2 {
relative: 1.0 1.0;
- offset: -1 -1;
+ offset: -2 -2;
to: "title_bar";
}
image {
@@ -557,24 +509,8 @@
}
description {
state: "active" 0.0;
+ inherit: "default" 0.0;
visible: 1;
- rel1 {
- relative: 0.0 0.0;
- offset: 0 0;
- to: "title_bar";
- }
- rel2 {
- relative: 1.0 1.0;
- offset: -1 -1;
- to: "title_bar";
- }
- image {
- normal: "e17_titlebar_shadow1.png";
- border: 8 8 8 8;
- }
- fill {
- smooth: 0;
- }
color: 255 255 255 255;
}
}
@@ -589,10 +525,10 @@
border: 8 8 8 8;
}
rel1 {
- offset: -4 -4;
+ offset: -5 -5;
}
rel2 {
- offset: 3 3;
+ offset: 2 2;
}
color: 255 255 255 0;
}