svl/source/numbers/zformat.cxx | 22 ++++++++++++++++++++-- vcl/opengl/win/gdiimpl.cxx | 20 +++++++++++++++++--- 2 files changed, 37 insertions(+), 5 deletions(-)
New commits: commit 45cfa386e312bf70c84fb971a9f7d541353b4809 Author: Caolán McNamara <[email protected]> Date: Tue Sep 5 10:40:18 2017 +0100 Resolves: tdf#107730 ensure per-thread epoxy_handle_external_wglMakeCurrent Change-Id: Idc1e2da3a02715a09b5b8f4e8e736b8806e59f8e Reviewed-on: https://gerrit.libreoffice.org/41927 Tested-by: Jenkins <[email protected]> Reviewed-by: Michael Meeks <[email protected]> Tested-by: Michael Meeks <[email protected]> (cherry picked from commit 4cc634327a752d633ea341252d8f4845157f887b) Reviewed-on: https://gerrit.libreoffice.org/41936 Reviewed-by: Michael Stahl <[email protected]> Tested-by: Michael Stahl <[email protected]> diff --git a/vcl/opengl/win/gdiimpl.cxx b/vcl/opengl/win/gdiimpl.cxx index 41cbda7e7165..58b3178b6c10 100644 --- a/vcl/opengl/win/gdiimpl.cxx +++ b/vcl/opengl/win/gdiimpl.cxx @@ -8,6 +8,7 @@ */ #include <memory> +#include <thread> #include "opengl/win/gdiimpl.hxx" #include <comphelper/windowserrorstring.hxx> @@ -75,11 +76,24 @@ void WinOpenGLContext::resetCurrent() g_bAnyCurrent = false; } +thread_local bool bEpoxyDispatchMakeCurrentCalled = false; + +void ensureDispatchTable() +{ + if (!bEpoxyDispatchMakeCurrentCalled) + { + epoxy_handle_external_wglMakeCurrent(); + bEpoxyDispatchMakeCurrentCalled = true; + } +} + bool WinOpenGLContext::isCurrent() { OpenGLZone aZone; - return g_bAnyCurrent && m_aGLWin.hRC && wglGetCurrentContext() == m_aGLWin.hRC && - wglGetCurrentDC() == m_aGLWin.hDC; + if (!g_bAnyCurrent || !m_aGLWin.hRC) + return false; + ensureDispatchTable(); + return wglGetCurrentContext() == m_aGLWin.hRC && wglGetCurrentDC() == m_aGLWin.hDC; } bool WinOpenGLContext::isAnyCurrent() @@ -96,7 +110,7 @@ void WinOpenGLContext::makeCurrent() clearCurrent(); - epoxy_handle_external_wglMakeCurrent(); + ensureDispatchTable(); if (!wglMakeCurrent(m_aGLWin.hDC, m_aGLWin.hRC)) { commit 8a398429cd7b8369af360def49989623176cd233 Author: Eike Rathke <[email protected]> Date: Mon Sep 4 11:18:49 2017 +0200 Resolves: tdf#52510 handle trailing ';' specifying empty following subformat Change-Id: Ic84065f11619542fe735f45e72c9303897ea5755 (cherry picked from commit 8cb3faca4b1d1d9c68faba103c6c6117853e639e) Reviewed-on: https://gerrit.libreoffice.org/41878 Tested-by: Jenkins <[email protected]> Reviewed-by: Christian Lohmaier <[email protected]> diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx index 734af6294825..361fe5c40571 100644 --- a/svl/source/numbers/zformat.cxx +++ b/svl/source/numbers/zformat.cxx @@ -1189,8 +1189,26 @@ SvNumberformat::SvNumberformat(OUString& rString, } if (sBuff.getLength() == nPos) { - if ( nIndex == 2 && eSymbolType == BRACKET_SYMBOLTYPE_FORMAT && - sBuff[nPos - 1] == ';' ) + if (nIndex < 3 && rString[rString.getLength()-1] == ';') + { + // A trailing ';' is significant and specifies the following + // subformat to be empty. We don't enter the scanning loop + // above again though. + // Note that the operators apply to the current last scanned + // subformat. + if (nIndex == 0 && eOp1 == NUMBERFORMAT_OP_NO) + { + eOp1 = NUMBERFORMAT_OP_GT; // undefined condition, default: > 0 + } + else if (nIndex == 1 && eOp2 == NUMBERFORMAT_OP_NO) + { + eOp2 = NUMBERFORMAT_OP_LT; // undefined condition, default: < 0 + } + NumFor[nIndex+1].Info().eScannedType = css::util::NumberFormat::EMPTY; + if (sBuff[nPos-1] != ';') + sBuff.insert( nPos++, ';'); + } + if (nIndex == 2 && eSymbolType == BRACKET_SYMBOLTYPE_FORMAT && sBuff[nPos-1] == ';') { // #83510# A 4th subformat explicitly specified to be empty // hides any text. Need the type here for HasTextFormat()
_______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
