resize handling / layout on timeout?

classic Classic list List threaded Threaded
4 messages Options
Ivan Timofeev Ivan Timofeev
Reply | Threaded
Open this post in threaded view
|

resize handling / layout on timeout?

Hi,

looking at fdo#38814 "Snappier rendering: paint at idle, not on timeout"
  https://bugs.freedesktop.org/show_bug.cgi?id=38814
it is not clear to me why we handle resize asynchronously.

It was introduced in

http://cgit.freedesktop.org/libreoffice/core/commit/?id=fb72a53dc6ff64001cbdebbdd908b7cf71aa8723
  "#83524# buffer resize events to handle opaque resize WMs better"
only for vcl/unx/generic.

Then there was a bug
  https://issues.apache.org/ooo/show_bug.cgi?id=30571
  "VCL plugin: slow painting of help application if main window is resized"
- turned out the help app is super-slow on Resize -> the solution was to
resize on timer for *all* platforms/vcl plugins:
  http://cgit.freedesktop.org/libreoffice/core/log/?qt=grep&q=i30571

So - #83524# is dead, I don't know what is "opaque resize WM"... But if
there is a problem with the help application only, wouldn't it better to
fix *its* resize handling?

FWIW, I've disabled the resize timer (i.e. bool bStartTimer = false in
vcl/source/window/winproc.cxx) and don't see any problem so far (except
the help app).

Same for layout - I guess it can be done immediately..? (Well, the
printdialog will need some love then).

Opinions?

Regards,
Ivan
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Caolán McNamara Caolán McNamara
Reply | Threaded
Open this post in threaded view
|

Re: resize handling / layout on timeout?

On Sat, 2013-10-05 at 18:44 +0400, Ivan Timofeev wrote:
> So - #83524# is dead, I don't know what is "opaque resize WM"...

Opaque resize is the (now) normal case where window contents are shown
while moving as opposed to old-school drawing a simple empty wireframe
box like twm (used to ?) does.

> But if there is a problem with the help application only, wouldn't it better to
> fix *its* resize handling?

Sounds reasonable.

> FWIW, I've disabled the resize timer (i.e. bool bStartTimer = false in
> vcl/source/window/winproc.cxx) and don't see any problem so far (except
> the help app).
>
> Same for layout - I guess it can be done immediately..? (Well, the
> printdialog will need some love then)

Is the print dialog ultra slow after that or is there some other
problem ?

Are you just on Linux or are you able to see what the general situation
is like on Windows/MacOSX too ?

C.

_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Caolán McNamara Caolán McNamara
Reply | Threaded
Open this post in threaded view
|

Re: resize handling / layout on timeout?

In reply to this post by Ivan Timofeev

On Sat, 2013-10-05 at 18:44 +0400, Ivan Timofeev wrote:

> Hi,
>
> looking at fdo#38814 "Snappier rendering: paint at idle, not on timeout"
>   https://bugs.freedesktop.org/show_bug.cgi?id=38814
> it is not clear to me why we handle resize asynchronously.
>
> It was introduced in
>
> http://cgit.freedesktop.org/libreoffice/core/commit/?id=fb72a53dc6ff64001cbdebbdd908b7cf71aa8723
>   "#83524# buffer resize events to handle opaque resize WMs better"
> only for vcl/unx/generic.
>
> Then there was a bug
>   https://issues.apache.org/ooo/show_bug.cgi?id=30571
>   "VCL plugin: slow painting of help application if main window is resized"
> - turned out the help app is super-slow on Resize -> the solution was to
> resize on timer for *all* platforms/vcl plugins:
>   http://cgit.freedesktop.org/libreoffice/core/log/?qt=grep&q=i30571
>
> So - #83524# is dead, I don't know what is "opaque resize WM"...

Opaque resize is the now normal case where window contents are shown
while moving as opposed to old-school drawing a simple empty wireframe
box.

> But if there is a problem with the help application only, wouldn't it better to
> fix *its* resize handling?

Sounds reasonable.

> FWIW, I've disabled the resize timer (i.e. bool bStartTimer = false in
> vcl/source/window/winproc.cxx) and don't see any problem so far (except
> the help app).
>
> Same for layout - I guess it can be done immediately..? (Well, the
> printdialog will need some love then)

Is the print dialog ultra slow after that or is there some other
problem ?

Are you just on Linux or are you able to see what the general situation
is like on Windows/MacOSX too ?

C.


_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Ivan Timofeev Ivan Timofeev
Reply | Threaded
Open this post in threaded view
|

Re: resize handling / layout on timeout?

Hi Caolán,

On 07.10.2013 17:36, Caolán McNamara wrote:
> Opaque resize is the now normal case where window contents are shown
> while moving as opposed to old-school drawing a simple empty wireframe
> box.

OK, thanks.

>> FWIW, I've disabled the resize timer (i.e. bool bStartTimer = false in
>> vcl/source/window/winproc.cxx) and don't see any problem so far (except
>> the help app).
>>
>> Same for layout - I guess it can be done immediately..? (Well, the
>> printdialog will need some love then)
>
> Is the print dialog ultra slow after that or is there some other
> problem ?

Oops, my bad, it's alright actually, as it scales the preview in Paint,
not Resize. =)

> Are you just on Linux or are you able to see what the general situation
> is like on Windows/MacOSX too ?

I can set up a build environment on Windows (or at least run a daily
build), but I don't have a Mac at all. :( So I'll have to upload patches
for review on MacOSX.

Regards,
Ivan
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice