Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


Hi Andor,

On Wed, 2012-08-29 at 12:50 +0000, Andor E wrote:
We're currently in the process of switching from OpenOffice.org 3.2.1
to LibreOffice. As a part of this, we're testing our extension WollMux
(www.wollmux.org) with LO.

        Great news :-)

During these tests we found a change in the behaviour of the
isHidden-Property of frames.

        That's annoying, sorry about that.

We're using a com.sun.star.document.XEventListener to listen to the
onViewCreated-Event. We then test, if the document is visible, and
only then WollMux will process the document.
In OOo 3.2.1 a new document created with File/New would have isHidden
== false. In LO the document now returns isHidden == true.

        Odd indeed. Can you be more specific ?

I have searched in the sources of LO and found a change in
./framework/source/services/frame.cxx. This was introduced with the
commit        74ffe76476d5b8941454a2acce569737237fc1d7.

        Interesting; that's a change we inherited around Frank's autorecovery
re-write.

I believe that this change is wrong and should be reverted. Before the
change isHidden represented the intended state of a frame. A document
that was openened hidden, returned hidden. A document opened visible
returned not hidden. Now it will always return isHidden == true. If
this isn't changed back,  there needs to be another property to check
the intended visibilty.

        Interesting - it merits deeper investigation - thanks so much for
getting down to the commit that caused the issue. I suppose it's
necessary to poke with and read the auto-recovery code to see why that
was done. Adding a new property on the frame to return a more helpful
setting is certainly possible; I wonder if that is already there via
some other interface.

        I suspect that if you use:

        virtual css::uno::Reference< css::awt::XWindow >  SAL_CALL getContainerWindow ();

        on the XFrame interface - then you have an XWindow interface to the
top-level window on which you can interrogate a visibility property of
some sort something like:

        awt::XWindow xFoo = xFrame->getContainerWindow();
        bool bVisible = xFoo->isVisible();

        Of course perhaps that is not what you want ? :-) but if you want to
see if the window is actually visible on the screen, that -might- do
what you want (untested but sniffing around there might help).

        HTH,

                Michael.

-- 
michael.meeks@suse.com  <><, Pseudo Engineer, itinerant idiot


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.