Dear Myungjae,

I'm sorry for my overly late response. I was swamped with other stuff 
recently and only now got to this.

After the intro, time to get to business: :P

On 25/11/11 02:17, 이명재 wrote:
> After applying the previous changeset 64721, the cursor geometry is wrong
> in a char-wrapped or a mixed mode entry contented in a scroller (not a
> scrolled entry).
> In other words, a word-wrapped entry or a scrolled entry (when
> elm_entry_scrollable_set is set to TRUE) doesn't have this problem.

That commit seems problematic to me because it adds unneeded relayouts 
and (heavy) computations that slow everything down dramatically.

To be honest, I missed that commit until now, and I'm very happy your 
mail got me to notice it.

After consulting with WooHyun on the issues commit 64721 introduced, we 
devised a solution we hope will solve both of your issues.

>
> Because the cursor geometry that comes from the
> evas_textblock_cursor_geometry_get function(en->cursor, ...) is wrong (w is
> fixed to small value and h is getting bigger when text is written
> horizontally), when we type texts into the entry near the top lines, entry
> is scrolled to the bottom lines.

The geometry is correct, just taken in a wrong time, because of the 
issue you described below.
>
> Please apply attached patch file, "entry_test.patch.txt" (patch to
> elm_entry.c and test_entry.c files) and see what happens in the below test
> path.
>
> Test path : 'Elementary Test' ->  'Entry 5' ->  Insert any text into the 1st
> line
> Result : Entry is scrolled to the bottom line so inserted texts in the 1st
> line are not shown until entry is scrolled to the top
>

I very appreciate the time you took to create a working test, solved me 
so much trouble. Also, the printfs were very convenient, I wish all bug 
reports would be like this.
>
> I also attached a quick patch for this problem. ("elm_entry.patch.txt")
> In the patch file, I just changed the order of these 2 function calls and
> now it works fine in all line wrapping mode.
>
>     edje_object_size_min_restricted_calc(wd->ent,&fw,&fh, 0, 0);
>     edje_object_size_min_restricted_calc(wd->ent,&minw,&minh, resw, 0);
>

As I said, I intend on removing the former, so this patch won't be 
relevant anymore, but yes, your solution will surely solve it, will 
explain below.
> It's really weird that changing the order of calling
> 'edje_object_size_min_restricted_calc' functions affects the size of
> textblock cursor geometry in entry.

It's complicated. :P The functions above also resize the textblock 
itself and don't resize it back (this is actually a good thing, for 
speed). This means, that the call below to get the textblock geometry 
will calculate according to the current state of the textblock (not 
actual state as will be set soon), which in turn means it'll be wrong if 
the textblock is set to a state it wouldn't end up remaining in.
>
> Please look into this bug and if you find the main problem on textblock's
> side, please fix it.

So it's really is just a matter of who you call last, not an issue in 
textblock/edje.
>
> If it takes time to fix this, please apply the attached quick patch file
> and fix it when you're available because we have some scroll issues with
> entry in scroller here at this moment.

I'm very sorry it took me this long, fix is now committed (commits 
65959-65960).

Sorry to keep you waiting.

--
Tom.


------------------------------------------------------------------------------
Cloud Services Checklist: Pricing and Packaging Optimization
This white paper is intended to serve as a reference, checklist and point of 
discussion for anyone considering optimizing the pricing and packaging model 
of a cloud services business. Read Now!
http://www.accelacomm.com/jaw/sfnl/114/51491232/
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to