Project

General

Profile

Bug #3390

Eliminate unnecessary frame redraws due to inconsistent calculated height

Added by Hynek Cihlar over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
-
Start date:
Due date:
% Done:

100%

billable:
No
vendor_id:
GCD
case_num:
version_reported:
version_resolved:

History

#1 Updated by Hynek Cihlar over 6 years ago

On 11/25/2017 09:37 PM, Hynek Cihlar wrote:

Constantin,

the problem is caused by the char->pixel->char round trip. The frame layout logic calculates the height as 11.72, but when the value is saved in the frame config it is converted and rounded to 246 pixels and the char value recalculated and rounded to 11.71. The difference causes the unnecessary repaints as you noted but the frame height of 246 pixels and 11.71 chars is correct. The solution I think is to return the "round trip adjusted" char value right from the frame layout logic.

Thanks,
Hynek

On 24.11.2017 23:02, Constantin Asofiei wrote:

Correct

On 11/25/2017 12:02 AM, Hynek Cihlar wrote:

I assume this is the date dialog as can be seen in Hotel GUI, correct?

On 24.11.2017 23:00, Constantin Asofiei wrote:

Hynek,

Yes, I'll leave it to you.

Thanks,

Constantin

On 11/24/2017 11:57 PM, Hynek Cihlar wrote:

Constantin,

the number 1 seems to be likely the cause of the issue, the rounding of intermediate results is problematic. You can leave this one on me if you like, but I expect to have any results sometime during tomorrow.

Thanks,
Hynek

On 24.11.2017 22:51, Constantin Asofiei wrote:

Hynek,

I've been looking for unnecessary repaints and it struck me a case in the date dialog: the height is computed differently with a difference of only 0.01 units, by these two code paths:

1. Frame.adjustDown - which gets a height of 11.72 . A possible problem I see here is that the delta (EXTRA_DLG_PIXELS) is 4px, and we have 0.18 units converts to 4px which converts to 0.19 units ... is it possible to be from here?

2. FrameGuiImpl.setInnerSize - which gets a height of 11.71

This forces a full frame repaint on each pushScreenDefinition... which is very expensive.

Any idea what would be the correct frame height? I haven't tried running this on 4GL to explicitly measure it, yet.

Thanks,

Constantin

#2 Updated by Hynek Cihlar over 6 years ago

A fix checked in to 3390a revision 11206. Please review.

#3 Updated by Constantin Asofiei over 6 years ago

Hynek Cihlar wrote:

A fix checked in to 3390a revision 11206. Please review.

I'm OK with the changes.

#4 Updated by Hynek Cihlar over 6 years ago

3390a passed regression tests and was rebased against trunk 11206. No more changes are expected in the branch.

#5 Updated by Greg Shah over 6 years ago

Please merge to trunk.

#6 Updated by Hynek Cihlar over 6 years ago

3390a was merged to trunk as revision 11207 and archived.

#7 Updated by Hynek Cihlar over 6 years ago

  • % Done changed from 0 to 100

#8 Updated by Greg Shah over 6 years ago

  • Assignee set to Hynek Cihlar
  • Status changed from New to Closed

Also available in: Atom PDF