Page MenuHomePhabricator

bryce scaling broken
Closed, ResolvedPublic

Description

As seen in https://www.youtube.com/watch?v=4D878MczVc4&hd=1, ctrl+wheel can be used to scale a bryce. This is now broken in a couple different ways, and no code related to this has changed in Enlightenment since the recording. The issues occur 100% of the time when scaling down to the minimum size (20px):

  • A faded version of the size text remains stuck on the bryce (text of this color is not present anywhere in the theme)
  • Gadgets on the bryce do not correctly resize/render

A cursory glance seems to indicate that evas_object_smart_need_recalculate_set() no longer triggers smart recalc on elm box, which would explain issue #2. #1 seems to be something broken in edje animators I guess, since the text animates from 255 alpha to 0 alpha.

To reproduce:

  • Menu -> Desktop -> Add Bryce
  • Use arrows or click to position bryce on screen
  • Use ctrl+wheel to scale bryce up and down
zmike created this task.Aug 11 2016, 9:37 AM
jpeg added a comment.Aug 17 2016, 7:27 PM

Can't reproduce because:

  • Adding a bryce works ok (but by kb only, click just dismisses it)
  • Scale up works fine, up to 256px
  • No idea how to add gadgets
  • No idea how to remove a bryce

Basically right-click doesn't do anything, ctrl+mouse wheel down either.

Its basically just the same as getting settings of a client, ALT+rightclick.

jpeg added a comment.Aug 18 2016, 1:52 AM

Ok gotcha, I needed to fix my mouse bindings first.

jpeg added a comment.Aug 18 2016, 3:11 AM

Same problem with 1.18.

zmike added a comment.Aug 18 2016, 4:20 AM

The video was recorded just after the 1.17 release, so it was broken sometime since then.

jpeg added a comment.Aug 18 2016, 4:30 AM

I think evas_object_smart_need_recalculate_set() is not even called on the Elm_Box.
Some Edje_Object is resized to 20px, but the Elm_Box is not marked as need_recalculate.

zmike added a comment.Aug 18 2016, 4:33 AM

Resizing it will resize the edje object, which calls _bryce_zone_moveresize(), which triggers _bryce_autosize(), and this calls it.

zmike added a comment.Aug 18 2016, 4:34 AM

Oops, I meant _bryce_act_resize() instead of _bryce_zone_moveresize()

jpeg added a comment.Aug 18 2016, 6:21 AM

I think you'll have to bisect.
3 hours in and no idea.

zmike added a comment.Aug 19 2016, 6:40 AM

I'm pretty confident that this is actually an edje bug given the random text artifacts which persist from the animations. This would also explain why, when the issue exhibits, the gadgets look like they're misrendered.

zmike added a comment.Aug 19 2016, 7:56 AM

And it was broken as of May...

zmike claimed this task.Aug 19 2016, 8:01 AM
zmike added a subscriber: jpeg.

Aha, okay, so this was a map-related thing in zoomap, aka evas map x10.

zmike added a comment.Aug 19 2016, 8:32 AM

...sort of. It looks like something changed with evas callback ordering; previously a callback I was setting would be called before edje internal callbacks, but this is no longer the case.

jpeg added a comment.Aug 21 2016, 6:32 PM
In T4339#67041, @zmike wrote:

...sort of. It looks like something changed with evas callback ordering; previously a callback I was setting would be called before edje internal callbacks, but this is no longer the case.

If you set priorities on those callbacks then they should be called in the proper order. Otherwise, it's indeed not defined and the order may change.