• Miklos Vajna's avatar
    tdf#123505 svx: fix invalidation loop caused by special form control geometry · 5b51aa12
    Miklos Vajna yazdı
    Regression from commit d464d505
    (Refactor calc non-linear ViewToDevice transform, 2018-10-12), the
    problem was that the opengl menu was never painted from the starved idle
    handler as a paint-invalidation loop starved the main loop.
    
    ScGridWindow::Paint() called vcl::Window::ImplPosSizeWindow() for the
    form control of the bugdoc, which triggered an invalidation -> paint ->
    start again.
    
    Checking what adjustControlGeometry_throw() did, the result of the
    transformed points are quite close to each other, but not equivalent:
    
    debug:18521:18521: adjustControlGeometry_throw: aTopLeft before transformation is (1773,426)
    debug:18521:18521: adjustControlGeometry_throw: aTopLeft after transformation is (64.935,16.0382)
    debug:18521:18521: adjustControlGeometry_throw: aPaintRectPixel is 952x586@(64,16)
    
    If we round, rather than truncate, then the size of the control is
    always the same, so no actual resize and invalidation happens during
    paint.
    
    Change-Id: Id55fd227e3ae7fc57d5253bc28f42b9b4315450e
    Reviewed-on: https://gerrit.libreoffice.org/69821Reviewed-by: 's avatarMiklos Vajna <vmiklos@collabora.com>
    Tested-by: Jenkins
    5b51aa12
Adı
Son kayıt (commit)
Son güncelleme
..
complex Loading commit data...
extras Loading commit data...
perf Loading commit data...
python Loading commit data...
uitest Loading commit data...
unit Loading commit data...
unoapi Loading commit data...