[Libreoffice-commits] core.git: 3 commits - basic/source vcl/unx

Caolán McNamara caolanm at redhat.com
Tue Dec 15 05:48:57 PST 2015


 basic/source/inc/rtlproto.hxx              |    1 +
 basic/source/runtime/methods.cxx           |   15 +++++++++++++++
 basic/source/runtime/stdobj.cxx            |    2 +-
 vcl/unx/generic/gdi/x11cairotextrender.cxx |   18 ++++++++++++++++++
 vcl/unx/gtk3/gtk3gtkframe.cxx              |    1 +
 5 files changed, 36 insertions(+), 1 deletion(-)

New commits:
commit 5c19ef214f0f96bc304f3b45168143021b782d3d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Dec 15 13:47:39 2015 +0000

    Resolves: rhbz#1287581 explicitly state we don't want decorated toolbars
    
    Change-Id: Ibbf45b44eba9f5f65db0e7ae26cf6946b32f879d

diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index 7468300..6ae026f 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -1177,6 +1177,7 @@ void GtkSalFrame::Init( SalFrame* pParent, SalFrameStyleFlags nStyle )
         {
             eType = GDK_WINDOW_TYPE_HINT_TOOLBAR;
             gtk_window_set_accept_focus(GTK_WINDOW(m_pWindow), false);
+            gtk_window_set_decorated(GTK_WINDOW(m_pWindow), false);
         }
         else if( (nStyle & SalFrameStyleFlags::FLOAT_FOCUSABLE) )
         {
commit 1d18db339242a535d956b7e944ad1488fd2b4fd8
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Dec 15 12:35:05 2015 +0000

    rhbz#1283420: cairo text + xrender bodge
    
    Change-Id: I926881bcfa4911f3d7f4899711be44a2f6d82026

diff --git a/vcl/unx/generic/gdi/x11cairotextrender.cxx b/vcl/unx/generic/gdi/x11cairotextrender.cxx
index 8734526..17cb462 100644
--- a/vcl/unx/generic/gdi/x11cairotextrender.cxx
+++ b/vcl/unx/generic/gdi/x11cairotextrender.cxx
@@ -42,6 +42,10 @@ struct _XRegion
     BOX extents;
 };
 
+#if CAIRO_VERSION < CAIRO_VERSION_ENCODE(1, 10, 0)
+#    define CAIRO_OPERATOR_DIFFERENCE (static_cast<cairo_operator_t>(23))
+#endif
+
 X11CairoTextRender::X11CairoTextRender(X11SalGraphics& rParent)
     : mrParent(rParent)
 {
@@ -78,6 +82,20 @@ cairo_t* X11CairoTextRender::getCairoContext()
 
     cairo_t *cr = cairo_create(surface);
     cairo_surface_destroy(surface);
+
+    //rhbz#1283420 bodge to draw and undraw something which has the side effect
+    //of making the mysterious xrender related problem go away
+    if (cairo_version() >= CAIRO_VERSION_ENCODE(1, 10, 0))
+    {
+        cairo_save(cr);
+        cairo_set_source_rgb(cr, 1.0, 1.0, 1.0);
+        cairo_set_operator(cr, CAIRO_OPERATOR_DIFFERENCE);
+        cairo_rectangle(cr, 0, 0, 1, 1);
+        cairo_fill_preserve(cr);
+        cairo_fill(cr);
+        cairo_restore(cr);
+    }
+
     return cr;
 }
 
commit 98f0e0eda50690bd01842c806bd13e3bc5af2966
Author: Damjan Jovanovic <damjan at apache.org>
Date:   Tue Dec 15 04:40:45 2015 +0000

    Resolves: #i19221#  Print Tab(5); "Hello" does not work
    
    Implement the Tab() function in AOO Basic.
    
    Patch by: me
    
    (cherry picked from commit fa1315d25186643ea537972609c117e0c9bb1fbc)
    
    Change-Id: Ifa9843661ce3862347c6351a078ddb207169182a

diff --git a/basic/source/inc/rtlproto.hxx b/basic/source/inc/rtlproto.hxx
index 7324e11..aceff73 100644
--- a/basic/source/inc/rtlproto.hxx
+++ b/basic/source/inc/rtlproto.hxx
@@ -199,6 +199,7 @@ extern RTLFUNC(StrComp);
 extern RTLFUNC(String);
 extern RTLFUNC(StrReverse);
 extern RTLFUNC(SYD);
+extern RTLFUNC(Tab);
 extern RTLFUNC(Tan);
 extern RTLFUNC(UCase);
 extern RTLFUNC(Val);
diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx
index aad8410..fb07329 100644
--- a/basic/source/runtime/methods.cxx
+++ b/basic/source/runtime/methods.cxx
@@ -1725,6 +1725,21 @@ RTLFUNC(String)
     }
 }
 
+RTLFUNC(Tab)
+{
+    (void)pBasic;
+    (void)bWrite;
+
+    if ( rPar.Count() < 2 )
+        StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT );
+    else
+    {
+        OUStringBuffer aStr;
+        comphelper::string::padToLength(aStr, rPar.Get(1)->GetLong(), '\t');
+        rPar.Get(0)->PutString(aStr.makeStringAndClear());
+    }
+}
+
 RTLFUNC(Tan)
 {
     (void)pBasic;
diff --git a/basic/source/runtime/stdobj.cxx b/basic/source/runtime/stdobj.cxx
index b6d7d5d..db0275c 100644
--- a/basic/source/runtime/stdobj.cxx
+++ b/basic/source/runtime/stdobj.cxx
@@ -603,7 +603,7 @@ static Methods aMethods[] = {
 { "Switch",         SbxVARIANT,   2 | _FUNCTION, RTLNAME(Switch),0          },
   { "Expression",   SbxVARIANT, 0,nullptr,0 },
   { "Value",        SbxVARIANT, 0,nullptr,0 },
-
+{ "Tab",            SbxSTRING,    1 | _FUNCTION, RTLNAME(Tab),0             },
 { "Tan",            SbxDOUBLE,    1 | _FUNCTION, RTLNAME(Tan),0             },
   { "number",       SbxDOUBLE, 0,nullptr,0 },
 { "Time",           SbxVARIANT,       _LFUNCTION,RTLNAME(Time),0            },


More information about the Libreoffice-commits mailing list