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.me...@suse.com <><, Pseudo Engineer, itinerant idiot _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice