[Libreoffice-commits] core.git: Branch 'libreoffice-4-1' - offapi/com toolkit/source

Noel Grandin noel at peralex.com
Thu Jul 18 04:08:17 PDT 2013


 offapi/com/sun/star/awt/XToolkit.idl |    6 +++++-
 toolkit/source/awt/vclxtoolkit.cxx   |   11 ++++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)

New commits:
commit 48d7af8ad317b1919e83e7925c5809e8a96d5303
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Jul 15 14:49:01 2013 +0200

    fdo#66762 - Other: com.sun.star.awt.DisplayAccess removed
    
    I removed the undocumented internal API
      "com.sun.star.awt.DisplayAccess"
    in commit dde234b6955a421d51d2b37e4fc3972c660146f0
      "fdo#46808, remove awt::DisplayAccess service."
    
    However, it appears someone was actually using this.
    
    Now, at the same time, we have a method in XToolkit, getWorkArea(),
    which looks like it was designed to return this exact information,
    but which has been returning zero for as far back as our commit
    history goes.
    
    So, to kill two birds with one stone, this commit changes
    getWorkArea() to return the information the customer needs.
    
    Change-Id: I76300bac604e9e4b7be95b0872a7f95cb6781903
    (cherry picked from commit 2aaaa5806021c52de1153ca2de0ca721e7eb73c0)

diff --git a/offapi/com/sun/star/awt/XToolkit.idl b/offapi/com/sun/star/awt/XToolkit.idl
index a329c8b..2595ddf 100644
--- a/offapi/com/sun/star/awt/XToolkit.idl
+++ b/offapi/com/sun/star/awt/XToolkit.idl
@@ -50,7 +50,11 @@ published interface XToolkit: com::sun::star::uno::XInterface
     com::sun::star::awt::XWindowPeer getDesktopWindow();
 
 
-    /** returns the complete work area for this toolkit.
+    /**
+     * For LibreOffice versions < 4.1, this method just returned an empty rectangle.
+     * After that, it started returning a valid value.
+     *
+     * @returns the complete work area for this toolkit.
      */
     com::sun::star::awt::Rectangle getWorkArea();
 
diff --git a/toolkit/source/awt/vclxtoolkit.cxx b/toolkit/source/awt/vclxtoolkit.cxx
index 4f38a29..49f3d3f 100644
--- a/toolkit/source/awt/vclxtoolkit.cxx
+++ b/toolkit/source/awt/vclxtoolkit.cxx
@@ -522,9 +522,14 @@ void SAL_CALL VCLXToolkit::disposing()
 
 ::com::sun::star::awt::Rectangle VCLXToolkit::getWorkArea(  ) throw(::com::sun::star::uno::RuntimeException)
 {
-    ::com::sun::star::awt::Rectangle aRect;
-    // 07/00: AppWindow doesn't exist anymore...
-    return aRect;
+    sal_Int32 nDisplay = Application::GetDisplayBuiltInScreen();
+    Rectangle aWorkRect = Application::GetWorkAreaPosSizePixel( nDisplay );
+    com::sun::star::awt::Rectangle aNotherRect;
+    aNotherRect.X = aWorkRect.getX();
+    aNotherRect.Y = aWorkRect.getY();
+    aNotherRect.Width = aWorkRect.getWidth();
+    aNotherRect.Height = aWorkRect.getHeight();
+    return aNotherRect;
 }
 
 ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > VCLXToolkit::createWindow( const ::com::sun::star::awt::WindowDescriptor& rDescriptor ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)


More information about the Libreoffice-commits mailing list