[Libreoffice-commits] core.git: Branch 'libreoffice-7-5' - sdext/source

2023-04-22 Thread Patrick Luby (via logerrit)
 sdext/source/presenter/PresenterProtocolHandler.cxx |5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

New commits:
commit 14c4b0d11211cc27fb3a0cae246d8e971d6d8f9a
Author: Patrick Luby 
AuthorDate: Fri Apr 21 14:34:39 2023 -0400
Commit: Noel Grandin 
CommitDate: Sat Apr 22 10:22:19 2023 +0200

tdf#154546 skip dispatch when presenter controller is not set

mpPresenterController is sometimes unset and this will cause a
crash when pressing the presenter console's Exchange button.

Change-Id: Ibfc866d573ce0c535df5c8fdbd6d358353784854
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150456
Tested-by: Jenkins
Reviewed-by: Noel Grandin 
Reviewed-by: Patrick Luby 
(cherry picked from commit 6f4fb52116c08b0c6247dc4828442f4e3644e9eb)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150775

diff --git a/sdext/source/presenter/PresenterProtocolHandler.cxx 
b/sdext/source/presenter/PresenterProtocolHandler.cxx
index a32a73b6180e..96c538876de6 100644
--- a/sdext/source/presenter/PresenterProtocolHandler.cxx
+++ b/sdext/source/presenter/PresenterProtocolHandler.cxx
@@ -307,7 +307,10 @@ Reference SAL_CALL 
PresenterProtocolHandler::queryDispatch (
 
 Reference xDispatch;
 
-if (rURL.Protocol == "vnd.org.libreoffice.presenterscreen:")
+// tdf#154546 skip dispatch when presenter controller is not set
+// mpPresenterController is sometimes unset and this will cause a
+// crash when pressing the presenter console's Exchange button.
+if (rURL.Protocol == "vnd.org.libreoffice.presenterscreen:" && 
mpPresenterController.is())
 {
 xDispatch.set(Dispatch::Create(rURL.Path, mpPresenterController));
 }


[Libreoffice-commits] core.git: Branch 'libreoffice-7-5' - forms/source

2023-04-22 Thread Julien Nabet (via logerrit)
 forms/source/xforms/convert.cxx   |2 +-
 forms/source/xforms/datatypes.cxx |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 23f54f7089eea0fb500affbed795254cb4ed6a78
Author: Julien Nabet 
AuthorDate: Fri Apr 21 10:13:26 2023 +0200
Commit: Noel Grandin 
CommitDate: Sat Apr 22 10:22:38 2023 +0200

tdf#116451: XML Form: adding 2 values of decimal-fields gives wrong result

Since, depending of the localization decimal separator may be ",",
replace "," by "." before calling ::rtl::math::stringToDouble

Change-Id: I461f3bdf83019d066735e10b3b6b6784e006bc7f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150750
Tested-by: Jenkins
(cherry picked from commit 50837fdd60d3d20b5025d94e243b09d92a166fb4)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150728
Reviewed-by: Noel Grandin 

diff --git a/forms/source/xforms/convert.cxx b/forms/source/xforms/convert.cxx
index 28d30885fc7d..24c1eb869639 100644
--- a/forms/source/xforms/convert.cxx
+++ b/forms/source/xforms/convert.cxx
@@ -77,7 +77,7 @@ namespace
 {
 rtl_math_ConversionStatus eStatus;
 double f = rtl::math::stringToDouble(
-rString, '.', ',', &eStatus );
+rString.replace(',','.'), '.', ',', &eStatus );
 return ( eStatus == rtl_math_ConversionStatus_Ok ) ? Any( f ) : Any();
 }
 
diff --git a/forms/source/xforms/datatypes.cxx 
b/forms/source/xforms/datatypes.cxx
index c372298f0e5f..7d1c9bc126b8 100644
--- a/forms/source/xforms/datatypes.cxx
+++ b/forms/source/xforms/datatypes.cxx
@@ -403,7 +403,7 @@ namespace xforms
 rtl_math_ConversionStatus eStatus;
 sal_Int32 nEnd;
 double f = ::rtl::math::stringToDouble(
-rValue, '.', u'\0', &eStatus, &nEnd );
+rValue.replace(',','.'), '.', u'\0', &eStatus, &nEnd );
 
 // error checking...
 bool bReturn = false;


[Libreoffice-commits] core.git: extras/source

2023-04-22 Thread Julien Nabet (via logerrit)
 extras/source/autocorr/lang/pt-PT/META-INF/manifest.xml |   12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

New commits:
commit 8359aebefe63397001ffcc1b8369d2db81af2f21
Author: Julien Nabet 
AuthorDate: Fri Apr 21 15:00:30 2023 +0200
Commit: Julien Nabet 
CommitDate: Sat Apr 22 10:37:51 2023 +0200

Remove namespace prefix in manifest.xml (extras/pt-PT)

since other languages don't have it

Change-Id: I02dead7abcae1409f756d4daebbd23d4a70efbc6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150762
Tested-by: Jenkins
Reviewed-by: Julien Nabet 

diff --git a/extras/source/autocorr/lang/pt-PT/META-INF/manifest.xml 
b/extras/source/autocorr/lang/pt-PT/META-INF/manifest.xml
index 9bfc7a4065fd..03703c7d31b9 100644
--- a/extras/source/autocorr/lang/pt-PT/META-INF/manifest.xml
+++ b/extras/source/autocorr/lang/pt-PT/META-INF/manifest.xml
@@ -1,7 +1,7 @@
 
-
- 
- 
- 
- 
-
\ No newline at end of file
+
+ 
+ 
+ 
+ 
+


[Libreoffice-commits] core.git: wizards/source

2023-04-22 Thread Andrea Gelmini (via logerrit)
 wizards/source/sfdialogs/SF_DialogUtils.xba |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 5c47997694adbaedfed5c20f861e493b4e07c134
Author: Andrea Gelmini 
AuthorDate: Fri Apr 21 17:31:29 2023 +0200
Commit: Julien Nabet 
CommitDate: Sat Apr 22 10:43:42 2023 +0200

Fix typo

Change-Id: I943dbf7dd8c6ac138ab9fc16638a06b07dcace93
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150766
Tested-by: Jenkins
Reviewed-by: Julien Nabet 

diff --git a/wizards/source/sfdialogs/SF_DialogUtils.xba 
b/wizards/source/sfdialogs/SF_DialogUtils.xba
index 0dc706be60d0..d8dc1b56e2a1 100644
--- a/wizards/source/sfdialogs/SF_DialogUtils.xba
+++ b/wizards/source/sfdialogs/SF_DialogUtils.xba
@@ -15,7 +15,7 @@ Option Private Module
 ''' FOR INTERNAL USE ONLY
 ''' Groups private functions that are common to the 
SF_Dialog and SF_DialogControl class modules
 '''
-''' Topics where SF_DiaogUtils matters:
+''' Topics where SF_DialogUtils matters:
 ''' - resizing dialog and dialog controls
 
'
 
@@ -272,4 +272,4 @@ End Function'  
SFDialogss.SF_DialogUtils._Resize
 
 REM = END OF 
SFDIALOGS.SF_DIALOGUTILS
 
-
\ No newline at end of file
+


[Libreoffice-commits] core.git: wizards/source

2023-04-22 Thread Andrea Gelmini (via logerrit)
 wizards/source/sfdialogs/SF_DialogUtils.xba |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit dabe502c362f528a529e14a90abcc79d95d393be
Author: Andrea Gelmini 
AuthorDate: Fri Apr 21 17:34:07 2023 +0200
Commit: Julien Nabet 
CommitDate: Sat Apr 22 10:44:06 2023 +0200

Fix typo

Change-Id: I59aea5a7b71d6ddf14d4d7d22b61bdc8ab01ae3b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150767
Tested-by: Julien Nabet 
Reviewed-by: Julien Nabet 

diff --git a/wizards/source/sfdialogs/SF_DialogUtils.xba 
b/wizards/source/sfdialogs/SF_DialogUtils.xba
index d8dc1b56e2a1..b5f83632fe45 100644
--- a/wizards/source/sfdialogs/SF_DialogUtils.xba
+++ b/wizards/source/sfdialogs/SF_DialogUtils.xba
@@ -164,7 +164,7 @@ Public Function _Resize(ByRef Control As Object _
, Optional 
ByVal Width As Variant _
, Optional 
ByVal Height As Variant _
) As Boolean
-''' Move the top-left corner of a dialog or a diaog control 
to new coordinates and/or modify its dimensions
+''' Move the top-left corner of a dialog or a dialog 
control to new coordinates and/or modify its dimensions
 ''' Without arguments, the method resets the initial 
dimensions
 ''' Attributes denoting the position and size of a dialog 
are expressed in "Map AppFont" units.
 ''' Map AppFont units are device and resolution independent.


New Defects reported by Coverity Scan for LibreOffice

2023-04-22 Thread scan-admin
Hi,

Please find the latest report on new defect(s) introduced to LibreOffice found 
with Coverity Scan.

7 new defect(s) introduced to LibreOffice found with Coverity Scan.
1 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent 
build analyzed by Coverity Scan.

New defect(s) Reported-by: Coverity Scan
Showing 7 of 7 defect(s)


** CID 1524751:  Null pointer dereferences  (FORWARD_NULL)
/vcl/source/graphic/BinaryDataContainer.cxx: 57 in 
::ReferencedMemoryStream::ReferencedMemoryStream(const 
std::shared_ptr>> &)()



*** CID 1524751:  Null pointer dereferences  (FORWARD_NULL)
/vcl/source/graphic/BinaryDataContainer.cxx: 57 in 
::ReferencedMemoryStream::ReferencedMemoryStream(const 
std::shared_ptr>> &)()
51 class ReferencedMemoryStream : public SvMemoryStream
52 {
53 std::shared_ptr> mpData;
54 
55 public:
56 ReferencedMemoryStream(const 
std::shared_ptr>& rData)
>>> CID 1524751:  Null pointer dereferences  (FORWARD_NULL)
>>> Attempting to access the managed object of an empty smart pointer 
>>> "rData".
57 : SvMemoryStream(rData ? rData->data() : nullptr, rData->size(), 
StreamMode::READ)
58 , mpData(rData)
59 {
60 }
61 };
62 }

** CID 1524750:  Null pointer dereferences  (NULL_RETURNS)



*** CID 1524750:  Null pointer dereferences  (NULL_RETURNS)
/sw/source/core/access/AccessibilityIssue.cxx: 111 in 
sw::AccessibilityIssue::quickFixIssue() const()
105 OUString aDesc = SwResId(STR_ENTER_ALT);
106 SvxNameDialog aNameDialog(m_pParent, "", aDesc);
107 if (aNameDialog.run() == RET_OK)
108 {
109 SwFlyFrameFormat* pFlyFormat
110 = 
const_cast(m_pDoc->FindFlyByName(m_sObjectID));
>>> CID 1524750:  Null pointer dereferences  (NULL_RETURNS)
>>> Dereferencing a pointer that might be "nullptr" "pFlyFormat" when 
>>> calling "SetFlyFrameTitle".
111 m_pDoc->SetFlyFrameTitle(*pFlyFormat, 
aNameDialog.GetName());
112 }
113 }
114 break;
115 default:
116 break;

** CID 1524749:(STRING_OVERFLOW)
/hwpfilter/source/hwpeq.cxx: 715 in eq2ltxconv(rtl::OString &, 
std::basic_istream>*, const char *)()
/hwpfilter/source/hwpeq.cxx: 712 in eq2ltxconv(rtl::OString &, 
std::basic_istream>*, const char *)()



*** CID 1524749:(STRING_OVERFLOW)
/hwpfilter/source/hwpeq.cxx: 715 in eq2ltxconv(rtl::OString &, 
std::basic_istream>*, const char *)()
709 const hwpeq *eq = nullptr;
710 if( (eq = lookup_eqn(key)) != nullptr ) {
711   if( eq->latex )
712 strcpy(key, eq->latex);
713   else {
714 key[0] = '\\';
>>> CID 1524749:(STRING_OVERFLOW)
>>> You might overrun the 256-character fixed-size string "key + 1" by 
>>> copying "eq->key" without checking the length.
715 strcpy(key + 1, eq->key);
716   }
717   if( (eq->flag & EQ_CASE)
718   && rtl::isAsciiUpperCase(static_cast(token[0])) )
719 key[1] = sal::static_int_cast(
720 rtl::toAsciiUpperCase(static_cast(key[1])));
/hwpfilter/source/hwpeq.cxx: 712 in eq2ltxconv(rtl::OString &, 
std::basic_istream>*, const char *)()
706 if( sentinel && (result == 1) && strchr(sentinel, token[0]) )
707   break;
708 make_keyword(key, token);
709 const hwpeq *eq = nullptr;
710 if( (eq = lookup_eqn(key)) != nullptr ) {
711   if( eq->latex )
>>> CID 1524749:(STRING_OVERFLOW)
>>> You might overrun the 256-character fixed-size string "key" by copying 
>>> "eq->latex" without checking the length.
712 strcpy(key, eq->latex);
713   else {
714 key[0] = '\\';
715 strcpy(key + 1, eq->key);
716   }
717   if( (eq->flag & EQ_CASE)

** CID 1524748:  Uninitialized members  (UNINIT_CTOR)
/sfx2/source/accessibility/AccessibilityIssue.cxx: 18 in 
sfx::AccessibilityIssue::AccessibilityIssue(sfx::AccessibilityIssueID)()



*** CID 1524748:  Uninitialized members  (UNINIT_CTOR)
/sfx2/source/accessibility/AccessibilityIssue.cxx: 18 in 
sfx::AccessibilityIssue::AccessibilityIssue(sfx::AccessibilityIssueID)()
12 
13 namespace sfx
14 {
15 AccessibilityIssue::AccessibilityIssue(AccessibilityIssueID eIssueID)
16 : m_eIssueID(eIssueID)
17 {
>>> CID 1524748:  Uninitialized members  (UNINIT_CTOR)
>>> Non-static class member "

Re: ESC meeting agenda: 2023-04-20 16:00 CEST

2023-04-22 Thread Julien Nabet

On 20/04/2023 17:18, Tor Lillqvist wrote:

More generally, what's the status concerning Swift on LO?

Just a thought: Most of our Objective-C files are actually
Objective-C++. That is, they also contain C++, and freely call various
LibreOffice C++ functionality as needed. If they were "converted" to
Swift, that would not be possible, but some complicated glue layer
inbetween would need to be written. Which seems like a lot of pain for
little gain. Or am I outdated, can you use C++ in Swift source files
nowadays?


Hi Tor,

You're completely right, I knew that Swift was a recent language used by 
Apple but had missed the fact it wasn't ready yet to interface with C++, 
I made a comment here:


https://bugs.documentfoundation.org/show_bug.cgi?id=154849#c10

Julien



[Libreoffice-commits] core.git: vcl/inc vcl/qt5

2023-04-22 Thread Michael Weghorn (via logerrit)
 vcl/inc/qt5/QtAccessibleWidget.hxx |   19 +++
 vcl/qt5/QtAccessibleWidget.cxx |  212 -
 2 files changed, 183 insertions(+), 48 deletions(-)

New commits:
commit 84183c84d86456e3c311b35150b1fc9b63a85561
Author: Michael Weghorn 
AuthorDate: Sat Apr 22 09:22:38 2023 +0300
Commit: Michael Weghorn 
CommitDate: Sat Apr 22 11:33:32 2023 +0200

qt a11y: Implement QAccessibleSelectionInterface added in Qt 6.5

This adds an implementation of the
`QAccessibleSelectionInterface` that was added
in Qt 6.5 in commit [1]

commit 9d16d5e2245c26e5746fd7609300b84a2a983457
Author: Michael Weghorn 
Date:   Tue Oct 11 15:23:54 2022 +0200

a11y: Add new QAccessibleSelectionInterface

, s.a. QTBUG-105909 [2].

The `QAccessibleSelectionInterface` is currently still marked as
preliminary in Qt, so changes to the API *might* still happen
and require an update of the implementation here as well).

Quoting from the commit message of the above commit:

> This interface is marked \preliminary until:
>
> 1. There is a working a11y bridge for macOS/VoiceOver
> 2. There is a working a11y bridge for Windows/UI Automation
> 3. There is a working a11y bridge for linux/AT-SPI
> 4. There is at least one implementation (e.g. QAccessibleTable)
>that implements it successfully (second candidate:
>Qt Quick TableView [...])

The AT-SPI bridge (point 3 from above) has been implemented in [3]

commit ece2feee0317b582a56a0bfc783f11fe67d3edee
Author: Michael Weghorn 
Date:   Tue Oct 11 15:24:04 2022 +0200

a11y atspi: Bridge newly introduced QAccessibleSelectionInterface

, an implementation for `QAccessibleTable` (point 4 from above) was
added in [4]

commit 092bbc9ad30c6cd7389053dc4b332cc762693676
Author: Michael Weghorn 
Date:   Wed Oct 12 07:07:48 2022 +0200

a11y: Implement QAccessibleSelectionInterface for item views

. The Qt Gerrit changes for the macOS implementation (point 1 from
above) and the Windows/UIA implementation (point 2 from above)
are currently still awaiting review: [5] [6]

To avoid duplication, just call the newly added methods
`QtAccessibleWidget::selectedItemCount` and
`QtAccessibleWidget::selectedItem` from the
`QAccessibleTableInterface` methods
`QtAccessibleWidget::selectedCellCount` and
and `QtAccessibleWidget::selectedCells`, and
therefore implement the former also for Qt < 6.5.

Sample use of the interface from Accerciser's IPython
console (with 18 cells selected in Calc and the spreadsheet
object selected in Accerciser's a11y object tree; screencast
attached to QTBUG-105909 [2]):

In [10]: acc.get_interfaces()
Out[10]: ['Accessible', 'Component', 'Selection', 'Table']
In [11]: sel = acc.querySelection()
In [12]: sel.nSelectedChildren
Out[12]: 18
In [13]: sel.getSelectedChild(0).name
Out[13]: 'B1'
In [14]: sel.deselectSelectedChild(1)
Out[14]: True
In [15]: sel.deselectChild(1)
Out[15]: True
In [16]: sel.selectChild(0)
Out[16]: True
In [17]: sel.clearSelection()
Out[17]: True
In [18]: sel.selectAll()
Out[18]: True

[1] 
https://code.qt.io/cgit/qt/qtbase.git/commit/?id=9d16d5e2245c26e5746fd7609300b84a2a983457
[2] https://bugreports.qt.io/browse/QTBUG-105909
[3] 
https://code.qt.io/cgit/qt/qtbase.git/commit/?id=ece2feee0317b582a56a0bfc783f11fe67d3edee
[4] 
https://code.qt.io/cgit/qt/qtbase.git/commit/?id=092bbc9ad30c6cd7389053dc4b332cc762693676
[5] https://codereview.qt-project.org/c/qt/qtbase/+/451353
[6] https://codereview.qt-project.org/c/qt/qtbase/+/451646

Change-Id: Iac3c050448183610af3bd3b10a56e82d7d52cb91
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138750
Tested-by: Jenkins
Reviewed-by: Michael Weghorn 

diff --git a/vcl/inc/qt5/QtAccessibleWidget.hxx 
b/vcl/inc/qt5/QtAccessibleWidget.hxx
index 7e7625041c4f..d6d27c9cfcbd 100644
--- a/vcl/inc/qt5/QtAccessibleWidget.hxx
+++ b/vcl/inc/qt5/QtAccessibleWidget.hxx
@@ -40,6 +40,9 @@ class QtAccessibleWidget final : public QAccessibleInterface,
  public QAccessibleActionInterface,
  public QAccessibleTextInterface,
  public QAccessibleEditableTextInterface,
+#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
+ public QAccessibleSelectionInterface,
+#endif
  public QAccessibleTableCellInterface,
  public QAccessibleTableInterface,
  public QAccessibleValueInterface
@@ -147,6 +150,22 @@ public:
 virtual int 

[Libreoffice-commits] help.git: source/text

2023-04-22 Thread Olivier Hallot (via logerrit)
 source/text/shared/guide/classification.xhp |9 ++---
 1 file changed, 2 insertions(+), 7 deletions(-)

New commits:
commit 5dfb463b6d96f4c2077d9565628d5674ec340550
Author: Olivier Hallot 
AuthorDate: Fri Apr 21 12:22:48 2023 -0300
Commit: Olivier Hallot 
CommitDate: Sat Apr 22 12:18:47 2023 +0200

Improve links between pages classification

Change-Id: Ica92e7a69556c15aaf1a77ac6979df214b41672a
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/150765
Tested-by: Jenkins
Reviewed-by: Olivier Hallot 

diff --git a/source/text/shared/guide/classification.xhp 
b/source/text/shared/guide/classification.xhp
index b406b00368..8b19933b33 100644
--- a/source/text/shared/guide/classification.xhp
+++ b/source/text/shared/guide/classification.xhp
@@ -105,16 +105,11 @@
 To 
prevent a breach in the security policy, contents with high classification 
level pasted to documents with lower classification level are not allowed. 
%PRODUCTNAME will display a warning message wherever it detects that the 
contents of the clipboard have higher security classification than the target 
document.
 
 
-
-  
+  
+  
 https://www.tscp.org/about-tscp/";>TSCP (Transglobal Secure Collaboration Participation, 
Inc.) website.
-  
-  
 https://www.tscp.org/wp-content/uploads/2013/08/TSCP_BAFv1.pdf";>Business 
Authentication Framework (BAF) document 
(PDF)
-  
-  
 http://www.tscp.org/wp-content/uploads/2013/08/TSCP_BAILSv1.pdf";>Business 
Authorization Identification and Labeling Scheme (BAILS) document (PDF)
-  
 
 
 


[Libreoffice-commits] core.git: helpcontent2

2023-04-22 Thread Olivier Hallot (via logerrit)
 helpcontent2 |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 1de3c32016ea5509fdab773c984e061c286452a4
Author: Olivier Hallot 
AuthorDate: Sat Apr 22 07:18:48 2023 -0300
Commit: Gerrit Code Review 
CommitDate: Sat Apr 22 12:18:48 2023 +0200

Update git submodules

* Update helpcontent2 from branch 'master'
  to 5dfb463b6d96f4c2077d9565628d5674ec340550
  - Improve links between pages classification

Change-Id: Ica92e7a69556c15aaf1a77ac6979df214b41672a
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/150765
Tested-by: Jenkins
Reviewed-by: Olivier Hallot 

diff --git a/helpcontent2 b/helpcontent2
index 289dce6420de..5dfb463b6d96 16
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit 289dce6420de9491969db0280e82bfac703dc5bd
+Subproject commit 5dfb463b6d96f4c2077d9565628d5674ec340550


[Libreoffice-commits] help.git: AllLangHelp_shared.mk source/text

2023-04-22 Thread Olivier Hallot (via logerrit)
 AllLangHelp_shared.mk  |1 
 source/text/shared/01/ref_pdf_export_digital_signature.xhp |1 
 source/text/shared/01/ref_pdf_export_user_interface.xhp|1 
 source/text/shared/01/ref_pdf_send_as.xhp  |3 
 source/text/shared/guide/pdf_params.xhp| 1113 +
 source/text/shared/guide/start_parameters.xhp  |1 
 6 files changed, 1119 insertions(+), 1 deletion(-)

New commits:
commit 8c0b0a8e0aad857b7089883f7c4fabbe8d9d64de
Author: Olivier Hallot 
AuthorDate: Fri Apr 21 23:53:37 2023 -0300
Commit: Olivier Hallot 
CommitDate: Sat Apr 22 12:20:38 2023 +0200

tdf#147105 Document the various new PDF export options in command-line

Change-Id: Id89e27738d34322e7bab870a5fd247f988be76a4
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/150797
Tested-by: Jenkins
Reviewed-by: Olivier Hallot 

diff --git a/AllLangHelp_shared.mk b/AllLangHelp_shared.mk
index 76b01e4d30..c47fcec4af 100644
--- a/AllLangHelp_shared.mk
+++ b/AllLangHelp_shared.mk
@@ -738,6 +738,7 @@ $(eval $(call gb_AllLangHelp_add_helpfiles,shared,\
 helpcontent2/source/text/shared/guide/palette_files \
 helpcontent2/source/text/shared/guide/paintbrush \
 helpcontent2/source/text/shared/guide/pasting \
+helpcontent2/source/text/shared/guide/pdf_params \
 helpcontent2/source/text/shared/guide/print_blackwhite \
 helpcontent2/source/text/shared/guide/print_faster \
 helpcontent2/source/text/shared/guide/protection \
diff --git a/source/text/shared/01/ref_pdf_export_digital_signature.xhp 
b/source/text/shared/01/ref_pdf_export_digital_signature.xhp
index 3544ac5e26..c9278808cd 100644
--- a/source/text/shared/01/ref_pdf_export_digital_signature.xhp
+++ b/source/text/shared/01/ref_pdf_export_digital_signature.xhp
@@ -81,6 +81,7 @@
 
 
 
+
 
 
 
diff --git a/source/text/shared/01/ref_pdf_export_user_interface.xhp 
b/source/text/shared/01/ref_pdf_export_user_interface.xhp
index 83ac938ccc..1446aa298c 100644
--- a/source/text/shared/01/ref_pdf_export_user_interface.xhp
+++ b/source/text/shared/01/ref_pdf_export_user_interface.xhp
@@ -79,6 +79,7 @@
 Select to show bookmarks down to the selected level when the reader 
opens the PDF file.
 
 
+
 
 
 
diff --git a/source/text/shared/01/ref_pdf_send_as.xhp 
b/source/text/shared/01/ref_pdf_send_as.xhp
index 81a05cf8f2..1038dc98e7 100644
--- a/source/text/shared/01/ref_pdf_send_as.xhp
+++ b/source/text/shared/01/ref_pdf_send_as.xhp
@@ -18,7 +18,7 @@
  *   except in compliance with the License. You may obtain a copy of
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  -->
-   
+
 
 
 
@@ -40,6 +40,7 @@
 
 
 
+
 
 
 
diff --git a/source/text/shared/guide/pdf_params.xhp 
b/source/text/shared/guide/pdf_params.xhp
new file mode 100644
index 00..5cfc5e5c44
--- /dev/null
+++ b/source/text/shared/guide/pdf_params.xhp
@@ -0,0 +1,1113 @@
+
+
+
+
+
+PDF CLI Parameters
+/text/shared/guide/pdf_params.xhp
+
+
+
+OH: info extracted from filter/source/pdf/pdfexport.cxx
+
+PDF;command line parameters
+convert to PDF;command line parameters
+
+
+PDF Export  Command Line 
Parameters
+The PDF filter 
accepts an options string containing PDF properties for export.
+
+
+Examples:
+To skip the first page 
of a Draw document:
+soffice --convert-to 
'pdf:draw_pdf_Export:{"PageRange":{"type":"string","value":"2-"}}' 
test.odg
+
+To add a tiled 
watermark:
+
+soffice --convert-to 
'pdf:draw_pdf_Export:{"TiledWatermark":{"type":"string","value":"draft"}}' 
test.odg
+
+To encrypt 
file:
+
+soffice --convert-to 
'pdf:draw_pdf_Export:{"EncryptFile":{"type":"boolean","value":"true"},"DocumentOpenPassword":{"type":"string","value":"secret"}}'
 test.odg
+
+To set version 1.5 
(instead of the default 1.6):
+
+soffice --convert-to 
'pdf:draw_pdf_Export:{"SelectPdfVersion":{"type":"long","value":"15"}}' 
test.odg
+General Properties
+
+
+
+Name
+
+
+Description
+
+
+Type
+
+
+Default Value
+
+
+
+
+PageRange
+
+
+ If this 
property is set, it indicates the range of pages to be printed. 
+If you 
want to print all the pages, leave this property unset.
+If you 
want to export a selection, leave this property unset, setting only the 
property Selection.
+
+
+string
+
+
+Empty 
(all pages are printed)
+
+
+
+
+Selection
+
+
+An 
any corresponding to the current selection in the 
document.
+
+
+Any
+
+
+
+
+
+
+UseLosslessCompression
+
+
+ 
Specifies if 

[Libreoffice-commits] core.git: helpcontent2

2023-04-22 Thread Olivier Hallot (via logerrit)
 helpcontent2 |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 932e79a43fbf8aa3b5682b3b8c12248970a91cd1
Author: Olivier Hallot 
AuthorDate: Sat Apr 22 07:20:39 2023 -0300
Commit: Gerrit Code Review 
CommitDate: Sat Apr 22 12:20:39 2023 +0200

Update git submodules

* Update helpcontent2 from branch 'master'
  to 8c0b0a8e0aad857b7089883f7c4fabbe8d9d64de
  - tdf#147105 Document the various new PDF export options in command-line

Change-Id: Id89e27738d34322e7bab870a5fd247f988be76a4
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/150797
Tested-by: Jenkins
Reviewed-by: Olivier Hallot 

diff --git a/helpcontent2 b/helpcontent2
index 5dfb463b6d96..8c0b0a8e0aad 16
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit 5dfb463b6d96f4c2077d9565628d5674ec340550
+Subproject commit 8c0b0a8e0aad857b7089883f7c4fabbe8d9d64de


[Libreoffice-commits] core.git: wizards/source

2023-04-22 Thread Andrea Gelmini (via logerrit)
 wizards/source/sfdialogs/SF_DialogControl.xba |   12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

New commits:
commit 8e89ca42f3748e31fb600e6d69f96a6451e8240e
Author: Andrea Gelmini 
AuthorDate: Fri Apr 21 17:35:18 2023 +0200
Commit: Julien Nabet 
CommitDate: Sat Apr 22 12:42:13 2023 +0200

Fix typo in code

Change-Id: Iba5e188204fafa4cd88282d001eea31f277fcc4b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150768
Tested-by: Jenkins
Reviewed-by: Julien Nabet 

diff --git a/wizards/source/sfdialogs/SF_DialogControl.xba 
b/wizards/source/sfdialogs/SF_DialogControl.xba
index 106c4f687687..e7c415f0ba52 100644
--- a/wizards/source/sfdialogs/SF_DialogControl.xba
+++ b/wizards/source/sfdialogs/SF_DialogControl.xba
@@ -2024,19 +2024,19 @@ Const cstSubArgs = ""
_PropertyGet = 
SF_DialogUtils._ConvertToAppFont(_ControlView, False).Width
Else
If oSession.HasUNOProperty(_ControlModel, 
"Width") Then _PropertyGet = _ControlModel.Width
-   End If  
+   End If
Case UCase("X")
If [_parent]._Displayed Then'  Convert PosSize 
view property from pixels to APPFONT units
_PropertyGet = 
SF_DialogUtils._ConvertToAppFont(_ControlView, True).X
Else
-   If oSession.HasUNOProperty(_ControlModel, 
"PoistionX") Then _PropertyGet = _ControlModel.PositionX
-   End If  
+   If oSession.HasUNOProperty(_ControlModel, 
"PositionX") Then _PropertyGet = _ControlModel.PositionX
+   End If
Case UCase("Y")
If [_parent]._Displayed Then'  Convert PosSize 
view property from piYels to APPFONT units
_PropertyGet = 
SF_DialogUtils._ConvertToAppFont(_ControlView, True).Y
Else
-   If oSession.HasUNOProperty(_ControlModel, 
"PoistionY") Then _PropertyGet = _ControlModel.PositionY
-   End If  
+   If oSession.HasUNOProperty(_ControlModel, 
"PositionY") Then _PropertyGet = _ControlModel.PositionY
+   End If
Case UCase("XControlModel")
Set _PropertyGet = _ControlModel
Case UCase("XControlView")
@@ -2415,4 +2415,4 @@ Private Function _Repr() As String
 End Function   '  SFDialogs.SF_DialogControl._Repr
 
 REM  END OF 
SFDIALOGS.SF_DIALOGCONTROL
-
\ No newline at end of file
+


[Libreoffice-commits] core.git: include/o3tl solenv/clang-format

2023-04-22 Thread Mike Kaganski (via logerrit)
 include/o3tl/char16_t2wchar_t.hxx |   32 
 solenv/clang-format/excludelist   |1 -
 2 files changed, 8 insertions(+), 25 deletions(-)

New commits:
commit ab55c7bffddc1a4c8f3d971d24bae297a15f3346
Author: Mike Kaganski 
AuthorDate: Sat Apr 22 10:25:57 2023 +0200
Commit: Mike Kaganski 
CommitDate: Sat Apr 22 12:45:38 2023 +0200

clang-format char16_t2wchar_t.hxx

Change-Id: I5b86fb372702e3a6fdb3e4aa6846c4bc2e754307
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150778
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/include/o3tl/char16_t2wchar_t.hxx 
b/include/o3tl/char16_t2wchar_t.hxx
index 6ffab02e78c9..cf0415343147 100644
--- a/include/o3tl/char16_t2wchar_t.hxx
+++ b/include/o3tl/char16_t2wchar_t.hxx
@@ -7,18 +7,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#ifndef INCLUDED_O3TL_CHAR16_T2WCHAR_T_HXX
-#define INCLUDED_O3TL_CHAR16_T2WCHAR_T_HXX
+#pragma once
 
 #include 
 
-namespace o3tl {
-
+namespace o3tl
+{
 #if defined _WIN32
 // Helpers for safe conversion between wchar_t and char16_t in MSVC
 
 static_assert(sizeof(char16_t) == sizeof(wchar_t),
-"These helper functions are only applicable to implementations with 16-bit 
wchar_t");
+  "These helper functions are only applicable to implementations 
with 16-bit wchar_t");
 
 // While other implementations define wchar_t as 32-bit integral value, and 
mostly use
 // char-based UTF-8 string APIs, in MSVC wchar_t is (non-conformant) 16-bit, 
and Unicode
@@ -34,26 +33,11 @@ static_assert(sizeof(char16_t) == sizeof(wchar_t),
 //
 // Use these helpers for wchar_t (WSTR, WCHAR, OLESTR etc) to char16_t 
(sal_Unicode) string
 // conversions instead of reinterpret-cast in Windows-specific code.
-inline wchar_t * toW(char16_t * p)
-{
-return reinterpret_cast(p);
-}
-inline wchar_t const * toW(char16_t const * p)
-{
-return reinterpret_cast(p);
-}
-inline char16_t * toU(wchar_t * p)
-{
-return reinterpret_cast(p);
-}
-inline char16_t const * toU(wchar_t const * p)
-{
-return reinterpret_cast(p);
-}
+inline wchar_t* toW(char16_t* p) { return reinterpret_cast(p); }
+inline wchar_t const* toW(char16_t const* p) { return reinterpret_cast(p); }
+inline char16_t* toU(wchar_t* p) { return reinterpret_cast(p); }
+inline char16_t const* toU(wchar_t const* p) { return 
reinterpret_cast(p); }
 #endif
-
 }
 
-#endif
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist
index 211e9ca30c04..35d750b22cc9 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -5296,7 +5296,6 @@ include/linguistic/lngprophelp.hxx
 include/linguistic/misc.hxx
 include/linguistic/spelldta.hxx
 include/o3tl/any.hxx
-include/o3tl/char16_t2wchar_t.hxx
 include/o3tl/cow_wrapper.hxx
 include/o3tl/enumarray.hxx
 include/o3tl/enumrange.hxx


[Libreoffice-commits] core.git: include/o3tl lingucomponent/source

2023-04-22 Thread Mike Kaganski (via logerrit)
 include/o3tl/char16_t2wchar_t.hxx   |4 
 lingucomponent/source/numbertext/numbertext.cxx |2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

New commits:
commit 0f6ec3939df6b0e3263fc07a2067bbbfc6421ac7
Author: Mike Kaganski 
AuthorDate: Sat Apr 22 10:28:20 2023 +0200
Commit: Mike Kaganski 
CommitDate: Sat Apr 22 12:46:01 2023 +0200

Introduce o3tl::toU converting wstring_view to u16string_view

Change-Id: I5be9aa767020c2516984e47fcd0f51d4661fdf17
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150779
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/include/o3tl/char16_t2wchar_t.hxx 
b/include/o3tl/char16_t2wchar_t.hxx
index cf0415343147..fcbbaf079ce3 100644
--- a/include/o3tl/char16_t2wchar_t.hxx
+++ b/include/o3tl/char16_t2wchar_t.hxx
@@ -11,6 +11,8 @@
 
 #include 
 
+#include 
+
 namespace o3tl
 {
 #if defined _WIN32
@@ -37,6 +39,8 @@ inline wchar_t* toW(char16_t* p) { return 
reinterpret_cast(p); }
 inline wchar_t const* toW(char16_t const* p) { return reinterpret_cast(p); }
 inline char16_t* toU(wchar_t* p) { return reinterpret_cast(p); }
 inline char16_t const* toU(wchar_t const* p) { return 
reinterpret_cast(p); }
+
+inline std::u16string_view toU(std::wstring_view v) { return { toU(v.data()), 
v.size() }; }
 #endif
 }
 
diff --git a/lingucomponent/source/numbertext/numbertext.cxx 
b/lingucomponent/source/numbertext/numbertext.cxx
index 4f868adb74d8..aec03e1f5e8e 100644
--- a/lingucomponent/source/numbertext/numbertext.cxx
+++ b/lingucomponent/source/numbertext/numbertext.cxx
@@ -128,7 +128,7 @@ OUString SAL_CALL NumberText_Impl::getNumberText(const 
OUString& rText, const Lo
 bool result = m_aNumberText.numbertext(sResult, aLangCode.getStr());
 DBG_ASSERT(result, "numbertext: false");
 #if defined(_WIN32)
-OUString aResult(o3tl::toU(sResult.c_str()));
+OUString aResult(o3tl::toU(sResult));
 #else
 OUString aResult = OUString::fromUtf8(Numbertext::wstring2string(sResult));
 #endif


[Libreoffice-commits] core.git: sw/source

2023-04-22 Thread Justin Luth (via logerrit)
 sw/source/core/layout/tabfrm.cxx |  349 +++
 1 file changed, 172 insertions(+), 177 deletions(-)

New commits:
commit 95c31968efaaefad548d300b216598f51d7a0746
Author: Justin Luth 
AuthorDate: Thu Mar 23 14:16:47 2023 -0400
Commit: Justin Luth 
CommitDate: Sat Apr 22 14:08:56 2023 +0200

NFC flatten/clang-format SwTabFrame::CalcFlyOffsets

No functional change intended

Change-Id: I63a052ad39e7f90a744225d06cc4000ac6fdd602
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149466
Tested-by: Jenkins
Reviewed-by: Justin Luth 

diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 47bbf801dfef..4d9f7f7d1630 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -2832,202 +2832,197 @@ bool SwTabFrame::CalcFlyOffsets( SwTwips& rUpper,
 const bool bWrapAllowed = 
rIDSA.get(DocumentSettingId::USE_FORMER_TEXT_WRAPPING) ||
 ( !IsInFootnote() && nullptr == 
FindFooterOrHeader() );
 
-if ( pPage->GetSortedObjs() && bWrapAllowed )
+if (!bWrapAllowed || !pPage->GetSortedObjs())
+return bInvalidatePrtArea;
+
+SwRectFnSet aRectFnSet(this);
+const bool bConsiderWrapOnObjPos
+= rIDSA.get(DocumentSettingId::CONSIDER_WRAP_ON_OBJECT_POSITION);
+tools::Long nPrtPos = aRectFnSet.GetTop(getFrameArea());
+nPrtPos = aRectFnSet.YInc(nPrtPos, rUpper);
+SwRect aRect(getFrameArea());
+if (pSpaceBelowBottom)
 {
-SwRectFnSet aRectFnSet(this);
-const bool bConsiderWrapOnObjPos = 
rIDSA.get(DocumentSettingId::CONSIDER_WRAP_ON_OBJECT_POSITION);
-tools::Long nPrtPos = aRectFnSet.GetTop(getFrameArea());
-nPrtPos = aRectFnSet.YInc( nPrtPos, rUpper );
-SwRect aRect( getFrameArea() );
-if (pSpaceBelowBottom)
-{   // set to space below table frame
-aRectFnSet.SetTopAndHeight(aRect, aRectFnSet.GetBottom(aRect), 
*pSpaceBelowBottom);
-}
-else
+// set to space below table frame
+aRectFnSet.SetTopAndHeight(aRect, aRectFnSet.GetBottom(aRect), 
*pSpaceBelowBottom);
+}
+else
+{
+tools::Long nYDiff = 
aRectFnSet.YDiff(aRectFnSet.GetTop(getFramePrintArea()), rUpper);
+if (nYDiff > 0)
+aRectFnSet.AddBottom(aRect, -nYDiff);
+}
+
+bool bAddVerticalFlyOffsets = 
rIDSA.get(DocumentSettingId::ADD_VERTICAL_FLY_OFFSETS);
+
+for (size_t i = 0; i < pPage->GetSortedObjs()->size(); ++i)
+{
+SwAnchoredObject* pAnchoredObj = (*pPage->GetSortedObjs())[i];
+auto pFly = pAnchoredObj->DynCastFlyFrame();
+if (!pFly)
+continue;
+
+const SwRect aFlyRect = pFly->GetObjRectWithSpaces();
+// #i26945# - correction of conditions,
+// if Writer fly frame has to be considered:
+// - no need to check, if top of Writer fly frame differs
+//   from FAR_AWAY, because it's also checked, if the Writer
+//   fly frame rectangle overlaps with 
+// - no check, if bottom of anchor frame is prior the top of
+//   the table, because Writer fly frames can be negative positioned.
+// - correct check, if the Writer fly frame is a lower of the
+//   table, because table lines/rows can split and an at-character
+//   anchored Writer fly frame could be positioned in the follow
+//   flow line.
+// - add condition, that an existing anchor character text frame
+//   has to be on the same page as the table.
+//   E.g., it could happen, that the fly frame is still registered
+//   at the page frame, the table is on, but it's anchor character
+//   text frame has already changed its page.
+const SwTextFrame* pAnchorCharFrame = pFly->FindAnchorCharFrame();
+bool bConsiderFly =
+// #i46807# - do not consider invalid
+// Writer fly frames.
+(pFly->isFrameAreaDefinitionValid() || bAddVerticalFlyOffsets)
+// fly anchored at character or at paragraph
+&& pFly->IsFlyAtContentFrame()
+// fly overlaps with corresponding table rectangle
+&& aFlyRect.Overlaps(aRect)
+// fly isn't lower of table and
+// anchor character frame of fly isn't lower of table
+&& (pSpaceBelowBottom // not if in ShouldBwdMoved
+|| (!IsAnLower(pFly) && (!pAnchorCharFrame || 
!IsAnLower(pAnchorCharFrame
+// table isn't lower of fly
+&& !pFly->IsAnLower(this)
+// fly is lower of fly, the table is in
+// #123274# - correction
+// assure that fly isn't a lower of a fly, the table isn't in.
+// E.g., a table in the body doesn't wrap around a graphic,
+// which is inside a frame.
+&& (!pMyFly || pMyFly->IsAnLower(pFly))
+&& pMyFly == 
pFly

[Libreoffice-commits] core.git: scaddins/source

2023-04-22 Thread Mike Kaganski (via logerrit)
 scaddins/source/analysis/analysis.cxx   |   48 +++---
 scaddins/source/analysis/analysisdefs.hxx   |   10 ++-
 scaddins/source/analysis/analysishelper.cxx |   16 ++--
 scaddins/source/analysis/financial.cxx  |   92 ++--
 scaddins/source/pricing/pricing.cxx |   33 --
 scaddins/source/pricing/pricing.hxx |2 
 6 files changed, 101 insertions(+), 100 deletions(-)

New commits:
commit 31486f92f9ec0c2446ad96a4e8228a15797b23ba
Author: Mike Kaganski 
AuthorDate: Sat Apr 22 12:54:32 2023 +0200
Commit: Mike Kaganski 
CommitDate: Sat Apr 22 14:17:59 2023 +0200

Drop some defines in scaddins

Change-Id: I6155ad1c9e4627aad65ae1884e03491902c5d8a6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150780
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/scaddins/source/analysis/analysis.cxx 
b/scaddins/source/analysis/analysis.cxx
index a168ff7c6f59..58f853fa1bae 100644
--- a/scaddins/source/analysis/analysis.cxx
+++ b/scaddins/source/analysis/analysis.cxx
@@ -388,7 +388,7 @@ double SAL_CALL AnalysisAddIn::getYearfrac( const 
uno::Reference< beans::XProper
 sal_Int32 nStartDate, sal_Int32 nEndDate, const uno::Any& rMode )
 {
 double fRet = GetYearFrac( xOpt, nStartDate, nEndDate, getDateMode( xOpt, 
rMode ) );
-RETURN_FINITE( fRet );
+return finiteOrThrow( fRet );
 }
 
 sal_Int32 SAL_CALL AnalysisAddIn::getEdate( const uno::Reference< 
beans::XPropertySet >& xOpt, sal_Int32 nStartDate, sal_Int32 nMonths )
@@ -513,7 +513,7 @@ AnalysisAddIn::getMultinomial( const uno::Reference< 
beans::XPropertySet >& xOpt
 fRet *= BinomialCoefficient(nZ, n);
 }
 }
-RETURN_FINITE( fRet );
+return finiteOrThrow( fRet );
 }
 
 double SAL_CALL AnalysisAddIn::getSeriessum( double fX, double fN, double fM, 
const uno::Sequence< uno::Sequence< double > >& aCoeffList )
@@ -537,7 +537,7 @@ double SAL_CALL AnalysisAddIn::getSeriessum( double fX, 
double fN, double fM, co
 }
 }
 
-RETURN_FINITE( fRet );
+return finiteOrThrow( fRet );
 }
 
 double SAL_CALL AnalysisAddIn::getQuotient( double fNum, double fDenom )
@@ -547,7 +547,7 @@ double SAL_CALL AnalysisAddIn::getQuotient( double fNum, 
double fDenom )
 fRet = ::rtl::math::approxCeil( fNum / fDenom );
 else
 fRet = ::rtl::math::approxFloor( fNum / fDenom );
-RETURN_FINITE( fRet );
+return finiteOrThrow( fRet );
 }
 
 double SAL_CALL AnalysisAddIn::getMround( double fNum, double fMult )
@@ -556,13 +556,13 @@ double SAL_CALL AnalysisAddIn::getMround( double fNum, 
double fMult )
 return fMult;
 
 double fRet = fMult * ::rtl::math::round( ::rtl::math::approxValue( fNum / 
fMult));
-RETURN_FINITE( fRet );
+return finiteOrThrow( fRet );
 }
 
 double SAL_CALL AnalysisAddIn::getSqrtpi( double fNum )
 {
 double fRet = sqrt( fNum * M_PI );
-RETURN_FINITE( fRet );
+return finiteOrThrow( fRet );
 }
 
 double SAL_CALL AnalysisAddIn::getRandbetween( double fMin, double fMax )
@@ -573,7 +573,7 @@ double SAL_CALL AnalysisAddIn::getRandbetween( double fMin, 
double fMax )
 throw lang::IllegalArgumentException();
 
 double fRet = floor(comphelper::rng::uniform_real_distribution(fMin, 
nextafter(fMax+1, -DBL_MAX)));
-RETURN_FINITE( fRet );
+return finiteOrThrow( fRet );
 }
 
 double SAL_CALL AnalysisAddIn::getGcd( const uno::Reference< 
beans::XPropertySet >& xOpt, const uno::Sequence< uno::Sequence< double > >& 
aVLst, const uno::Sequence< uno::Any >& aOptVLst )
@@ -592,7 +592,7 @@ double SAL_CALL AnalysisAddIn::getGcd( const 
uno::Reference< beans::XPropertySet
 f = GetGcd( aValList.Get(i), f );
 }
 
-RETURN_FINITE( f );
+return finiteOrThrow( f );
 }
 
 double SAL_CALL AnalysisAddIn::getLcm( const uno::Reference< 
beans::XPropertySet >& xOpt, const uno::Sequence< uno::Sequence< double > >& 
aVLst, const uno::Sequence< uno::Any >& aOptVLst )
@@ -623,19 +623,19 @@ double SAL_CALL AnalysisAddIn::getLcm( const 
uno::Reference< beans::XPropertySet
 return f;
 }
 
-RETURN_FINITE( f );
+return finiteOrThrow( f );
 }
 
 double SAL_CALL AnalysisAddIn::getBesseli( double fNum, sal_Int32 nOrder )
 {
 double fRet = sca::analysis::BesselI( fNum, nOrder );
-RETURN_FINITE( fRet );
+return finiteOrThrow( fRet );
 }
 
 double SAL_CALL AnalysisAddIn::getBesselj( double fNum, sal_Int32 nOrder )
 {
 double fRet = sca::analysis::BesselJ( fNum, nOrder );
-RETURN_FINITE( fRet );
+return finiteOrThrow( fRet );
 }
 
 double SAL_CALL AnalysisAddIn::getBesselk( double fNum, sal_Int32 nOrder )
@@ -644,7 +644,7 @@ double SAL_CALL AnalysisAddIn::getBesselk( double fNum, 
sal_Int32 nOrder )
 throw lang::IllegalArgumentException();
 
 double fRet = sca::analysis::BesselK( fNum, nOrder );
-RETURN_FINITE( fRet );
+return finiteOrThrow( fRet );
 }
 
 double SAL_CALL AnalysisAddIn::getBessely( double fNu

[Libreoffice-commits] core.git: 2 commits - extensions/source fpicker/source include/systools sal/osl vcl/win xmlsecurity/source

2023-04-22 Thread Mike Kaganski (via logerrit)
 extensions/source/scanner/twain32shim.cxx  |6 -
 fpicker/source/win32/VistaFilePickerImpl.cxx   |   54 +
 include/systools/win32/comtools.hxx|   19 +
 sal/osl/w32/security.cxx   |9 +-
 vcl/win/app/fileregistration.cxx   |   16 +
 xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx |   12 +--
 6 files changed, 52 insertions(+), 64 deletions(-)

New commits:
commit df4255c315f8061fbe7b3771122926589be7dfad
Author: Mike Kaganski 
AuthorDate: Sat Apr 22 16:12:23 2023 +0200
Commit: Mike Kaganski 
CommitDate: Sat Apr 22 17:45:50 2023 +0200

Simplify lcl_getURLFromShellItem

And make the URL returned for the item by system to be the preferred result.

Change-Id: Ifbe8acc0aef8d656526d1ae64010fb6bfa68eefc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150784
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/fpicker/source/win32/VistaFilePickerImpl.cxx 
b/fpicker/source/win32/VistaFilePickerImpl.cxx
index 741fdadb621a..fa58efc6c5d9 100644
--- a/fpicker/source/win32/VistaFilePickerImpl.cxx
+++ b/fpicker/source/win32/VistaFilePickerImpl.cxx
@@ -169,55 +169,33 @@ using TFolderPickerDialogImpl = 
TDialogImplGetDisplayName ( SIGDN_FILESYSPATH, &pStr );
-if (SUCCEEDED(hr))
-{
-::osl::FileBase::getFileURLFromSystemPath( OUString(o3tl::toU(pStr)), 
sURL );
-goto cleanup;
-}
-
-hr = pItem->GetDisplayName ( SIGDN_URL, &pStr );
-if (SUCCEEDED(hr))
-{
-sURL = o3tl::toU(pStr);
-goto cleanup;
-}
+sal::systools::CoTaskMemAllocated pStr;
+if (SUCCEEDED(pItem->GetDisplayName(SIGDN_URL, &pStr)))
+return OUString(o3tl::toU(pStr));
 
-hr = pItem->GetDisplayName ( SIGDN_PARENTRELATIVEPARSING, &pStr );
-if (SUCCEEDED(hr))
+HRESULT hr = pItem->GetDisplayName(SIGDN_FILESYSPATH, &pStr);
+if (FAILED(hr))
 {
-GUID known_folder_id;
-std::wstring aStr = pStr;
-CoTaskMemFree (pStr);
-
-if (0 == aStr.compare(0, 3, L"::{"))
-aStr = aStr.substr(2);
-hr = IIDFromString(aStr.c_str(), &known_folder_id);
+hr = pItem->GetDisplayName(SIGDN_PARENTRELATIVEPARSING, &pStr);
 if (SUCCEEDED(hr))
 {
-hr = SHGetKnownFolderPath(known_folder_id, 0, nullptr, &pStr);
+GUID known_folder_id;
+wchar_t* pStr2 = pStr;
+if (pStr2[0] == ':' && pStr2[1] == ':' && pStr2[2] == '{')
+pStr2 += 2;
+hr = IIDFromString(pStr2, &known_folder_id);
 if (SUCCEEDED(hr))
-{
-
::osl::FileBase::getFileURLFromSystemPath(OUString(o3tl::toU(pStr)), sURL);
-goto cleanup;
-}
+hr = SHGetKnownFolderPath(known_folder_id, 0, nullptr, &pStr);
 }
 }
 
 // Default fallback
-hr = SHGetKnownFolderPath(FOLDERID_Documents, 0, nullptr, &pStr);
+if (FAILED(hr))
+hr = SHGetKnownFolderPath(FOLDERID_Documents, 0, nullptr, &pStr);
+
+OUString sURL;
 if (SUCCEEDED(hr))
 ::osl::FileBase::getFileURLFromSystemPath(OUString(o3tl::toU(pStr)), 
sURL);
-else // shouldn't happen...
-goto bailout;
-
-cleanup:
-CoTaskMemFree (pStr);
-bailout:
 return sURL;
 }
 
commit 8de1bf3674b5f5391ff1be229d99115107514877
Author: Mike Kaganski 
AuthorDate: Sat Apr 22 16:06:07 2023 +0200
Commit: Mike Kaganski 
CommitDate: Sat Apr 22 17:45:40 2023 +0200

Introduce sal::systools::CoTaskMemAllocated to use RAII for CoTaskMemFree

Change-Id: I5553138bfc8dd989e68b8bcc2be981746e8c1e84
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150783
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/extensions/source/scanner/twain32shim.cxx 
b/extensions/source/scanner/twain32shim.cxx
index beca35f4f26b..6e0be8149471 100644
--- a/extensions/source/scanner/twain32shim.cxx
+++ b/extensions/source/scanner/twain32shim.cxx
@@ -28,6 +28,7 @@
 */
 
 #include "twain32shim.hxx"
+#include 
 #include 
 #include 
 #include 
@@ -251,11 +252,10 @@ void ImpTwain::ImplOpenSourceManager()
 if (!m_hMod)
 {
 // Windows directory might not be in DLL search path sometimes, so 
try the full path
-PWSTR sPath;
+sal::systools::CoTaskMemAllocated sPath;
 if (SUCCEEDED(SHGetKnownFolderPath(FOLDERID_Windows, 0, nullptr, 
&sPath)))
 {
-std::wstring sPathAndFile = sPath;
-CoTaskMemFree(sPath);
+std::wstring sPathAndFile(sPath);
 sPathAndFile += L"\\TWAIN_32.DLL";
 m_hMod = LoadLibraryW(sPathAndFile.c_str());
 }
diff --git a/include/systools/win32/comtools.hxx 
b/include/systools/win32/comtools.hxx
index b141842882aa..d54b1a22ce02 100644
--- a/include/systools/win32/comtools.hxx
+++ b/include/systools/w

[Libreoffice-commits] help.git: source/text

2023-04-22 Thread Andrea Gelmini (via logerrit)
 source/text/shared/guide/pdf_params.xhp |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 6c4c5275e8d0d3bf5e590b4093b8bcc67b4d521e
Author: Andrea Gelmini 
AuthorDate: Sat Apr 22 15:20:53 2023 +0200
Commit: Adolfo Jayme Barrientos 
CommitDate: Sat Apr 22 18:33:40 2023 +0200

Fix typo

Change-Id: Ib11ff464bc2ce261aeefaa632a6fc8d3f51e6cd6
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/150806
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos 

diff --git a/source/text/shared/guide/pdf_params.xhp 
b/source/text/shared/guide/pdf_params.xhp
index 5cfc5e5c44..e543d8cd76 100644
--- a/source/text/shared/guide/pdf_params.xhp
+++ b/source/text/shared/guide/pdf_params.xhp
@@ -547,7 +547,7 @@
 0= Opens 
with default zoom magnification.
 1= Opens 
magnified to fit the entire page within the window.
 2= Opens 
magnified to fit the entire page width within the window.
-3= Opens 
magnified to fit the entire width of its boundig box within the window (cuts 
out margins).
+3= Opens 
magnified to fit the entire width of its bounding box within the window (cuts 
out margins).
 4= Opens 
with the zoom level specified in the Zoom property.
 
 


[Libreoffice-commits] core.git: helpcontent2

2023-04-22 Thread Andrea Gelmini (via logerrit)
 helpcontent2 |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit a17ec91d4278afcc1e54ecd85652949c2ff79634
Author: Andrea Gelmini 
AuthorDate: Sat Apr 22 18:33:41 2023 +0200
Commit: Gerrit Code Review 
CommitDate: Sat Apr 22 18:33:41 2023 +0200

Update git submodules

* Update helpcontent2 from branch 'master'
  to 6c4c5275e8d0d3bf5e590b4093b8bcc67b4d521e
  - Fix typo

Change-Id: Ib11ff464bc2ce261aeefaa632a6fc8d3f51e6cd6
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/150806
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos 

diff --git a/helpcontent2 b/helpcontent2
index 8c0b0a8e0aad..6c4c5275e8d0 16
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit 8c0b0a8e0aad857b7089883f7c4fabbe8d9d64de
+Subproject commit 6c4c5275e8d0d3bf5e590b4093b8bcc67b4d521e


[Libreoffice-commits] core.git: drawinglayer/source

2023-04-22 Thread Caolán McNamara (via logerrit)
 drawinglayer/source/processor2d/vclprocessor2d.cxx |   13 +
 1 file changed, 1 insertion(+), 12 deletions(-)

New commits:
commit 0ad8d64478759abce42b0c11024e7460f6eb
Author: Caolán McNamara 
AuthorDate: Fri Apr 21 20:22:12 2023 +0100
Commit: Caolán McNamara 
CommitDate: Sat Apr 22 22:34:17 2023 +0200

tdf#154957 Revert "use OutputDevice clipping if its just a set of 
rectangles"

it was an attempt at an optimization, but if it doesn't work just revert it.

The non-antialias case also doesn't work so the reverted commit
wasn't itself the problem but the existing path has some flaw I'm not
going to invest in figuring out.

This reverts commit ee0d5e7bb8614c50e71dd074b8440f412eb62ff3.

Change-Id: I8d4f126e3bfe135d39a085f28cea6708ae8f833f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150773
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 

diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx 
b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index ecfbf31f7ec4..ad680803438d 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -845,17 +845,6 @@ void VclProcessor2D::RenderPolyPolygonGraphicPrimitive2D(
 }
 }
 
-namespace
-{
-bool isRectangles(const basegfx::B2DPolyPolygon& rPolyPoly)
-{
-for (sal_uInt32 i = 0, nCount = rPolyPoly.count(); i < nCount; ++i)
-if (!basegfx::utils::isRectangle(rPolyPoly.getB2DPolygon(i)))
-return false;
-return true;
-}
-}
-
 // mask group
 void VclProcessor2D::RenderMaskPrimitive2DPixel(const 
primitive2d::MaskPrimitive2D& rMaskCandidate)
 {
@@ -870,7 +859,7 @@ void VclProcessor2D::RenderMaskPrimitive2DPixel(const 
primitive2d::MaskPrimitive
 aMask.transform(maCurrentTransformation);
 
 // Unless smooth edges are needed, simply use clipping.
-if (isRectangles(aMask) || !getViewInformation2D().getUseAntiAliasing())
+if (basegfx::utils::isRectangle(aMask) || 
!getViewInformation2D().getUseAntiAliasing())
 {
 mpOutputDevice->Push(vcl::PushFlags::CLIPREGION);
 mpOutputDevice->IntersectClipRegion(vcl::Region(aMask));


bash script for downloading and installation of libreoffice

2023-04-22 Thread Richard Demattio

I would like to provide my script to the community,
but don't know how to do it and over what channel I can do it.

Where and how can I provide it to the interested community?

The script runs on linux and was developed and tested on Linux Mint
but prepared to run on "rpm based" systems too.

short description :
download the installation files from one of the following sites
#* http://download.documentfoundation.org/libreoffice/stable
#* http://download.documentfoundation.org/libreoffice/testing
#* http://downloadarchive.documentfoundation.org/libreoffice/old/
#* https://dev-builds.libreoffice.org/daily
#*   and generate an installation script

--> the first dialog lets you select the desired version
--> the second dialog lets you select additional languages.

Based on these selections the base package, sdk as well es help and 
language packs are downloaded.


#* calling parameters:
#* --help shows the function"downloadEcho" below
#*    --interactive={yes | no} enables/disables popup of dialog boxes
#*    --maturity={stable | testing | archive | daily} source of LO 
packages
#*    --download="/path/to/destination/" for 
packages to be downloaded
#*   "/maturity-string/version-string"   are appended 
automatically

#* to build the final download destination
#*    defaults to (if called without parameters):
#*  installLO.sh --maturity=stable --interactive=no --download="./"

If you run the script "installLO.sh" without parameters,
there will be no dialog and preselected packages are
--> from the youngest stable version
  --> base package
  --> sdk
  --> depending on the Linux system locales
    --> help packs
    --> language packs

Finally the installation script will be created and will be called 
immediately and stored so, that you can run it at any time later.


I am looking forward to receiving your hints.

--
best regards
Richard Demattio

[Libreoffice-commits] core.git: sw/qa sw/source

2023-04-22 Thread Justin Luth (via logerrit)
 sw/qa/extras/ooxmlexport/data/tdf154703_framePrTextDirection.docx |binary
 sw/qa/extras/ooxmlexport/ooxmlexport18.cxx|   10 
 sw/source/filter/ww8/docxattributeoutput.cxx  |   25 
++
 sw/source/filter/ww8/docxattributeoutput.hxx  |4 +
 4 files changed, 39 insertions(+)

New commits:
commit deb1a14adb115710b5e40dd305dc5da4a4e3b065
Author: Justin Luth 
AuthorDate: Sat Apr 22 15:54:35 2023 -0400
Commit: Justin Luth 
CommitDate: Sun Apr 23 02:56:50 2023 +0200

tdf#97128 tdf#154703 docx export framePr: export frame textDirection

textDirection attributes were lost on framePr round-tripping

No existing unit tests were affected by/matched the change.

make CppunitTest_sw_ooxmlexport18 \
CPPUNIT_TEST_NAME=testTdf154703_framePrTextDirection

Change-Id: I2184b9350391f510c7a2e77096b080e05d3d62da
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150820
Tested-by: Jenkins
Reviewed-by: Justin Luth 

diff --git a/sw/qa/extras/ooxmlexport/data/tdf154703_framePrTextDirection.docx 
b/sw/qa/extras/ooxmlexport/data/tdf154703_framePrTextDirection.docx
new file mode 100644
index ..e01c2cf9f495
Binary files /dev/null and 
b/sw/qa/extras/ooxmlexport/data/tdf154703_framePrTextDirection.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx 
b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx
index 72cfe1723870..22e1f21f5707 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx
@@ -244,6 +244,16 @@ DECLARE_OOXMLEXPORT_TEST(testTdf154703_framePrWrapSpacing, 
"tdf154703_framePrWra
 assertXPath(pXmlDoc, "//w:body/w:p/w:pPr/w:framePr", "hSpace", "2552");
 }
 
+DECLARE_OOXMLEXPORT_TEST(testTdf154703_framePrTextDirection, 
"tdf154703_framePrTextDirection.docx")
+{
+CPPUNIT_ASSERT_EQUAL(sal_Int16(text::WritingMode2::TB_RL), 
getProperty(getShape(1), "WritingMode"));
+if (!isExported())
+return;
+
+xmlDocUniquePtr pXmlDoc = parseExport("word/document.xml");
+assertXPath(pXmlDoc, "//w:body/w:p/w:pPr/w:textDirection", "val", "tbRl");
+}
+
 DECLARE_OOXMLEXPORT_TEST(testTdf153613_anchoredAfterPgBreak, 
"tdf153613_anchoredAfterPgBreak.docx")
 {
 const auto& pLayout = parseLayoutDump();
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx 
b/sw/source/filter/ww8/docxattributeoutput.cxx
index 94ed8bac2ba9..87446d03c786 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -584,6 +584,7 @@ void FramePrHelper::SetFrame(ww8::Frame* pFrame, sal_Int32 
nTableDepth)
 {
 m_bUseFrameBorders = true;
 m_bUseFrameBackground = true;
+m_bUseFrameTextDirection = true;
 }
 }
 
@@ -603,6 +604,14 @@ bool FramePrHelper::UseFrameBackground()
 return m_bUseFrameBackground;
 }
 
+bool FramePrHelper::UseFrameTextDirection(sal_Int32 nTableDepth)
+{
+if (!m_pFrame || m_nTableDepth < nTableDepth)
+return false;
+
+return m_bUseFrameTextDirection;
+}
+
 void SdtBlockHelper::DeleteAndResetTheLists()
 {
 if (m_pTokenChildren.is() )
@@ -1571,9 +1580,24 @@ void DocxAttributeOutput::EndParagraphProperties(const 
SfxItemSet& rParagraphMar
 }
 }
 
+if (m_aFramePr.UseFrameTextDirection(!m_xTableWrt ? -1 : 
m_tableReference.m_nTableDepth))
+{
+const SvxFrameDirectionItem& rFrameDir = 
rFrameFormat.GetFrameDir();
+if (rFrameDir.GetValue() != SvxFrameDirection::Environment)
+{
+assert(!m_rExport.m_bOutPageDescs);
+// hack: use existing variable to write out the full 
TextDirection attribute.
+// This is valid for paragraphs/styles - just not native in 
LO, so hack for now.
+m_rExport.m_bOutPageDescs = true;
+FormatFrameDirection(rFrameDir);
+m_rExport.m_bOutPageDescs = false;
+}
+}
+
 // reset to true in preparation for the next paragraph in the frame
 m_aFramePr.SetUseFrameBorders(true);
 m_aFramePr.SetUseFrameBackground(true);
+m_aFramePr.SetUseFrameTextDirection(true);
 }
 
 m_pSerializer->endElementNS( XML_w, XML_pPr );
@@ -9775,6 +9799,7 @@ void DocxAttributeOutput::FormatFrameDirection( const 
SvxFrameDirectionItem& rDi
 m_pSerializer->singleElementNS(XML_w, XML_bidi, FSNS(XML_w, 
XML_val), "1");
 else
 m_pSerializer->singleElementNS(XML_w, XML_bidi, FSNS(XML_w, 
XML_val), "0");
+m_aFramePr.SetUseFrameTextDirection(false);
 }
 }
 
diff --git a/sw/source/filter/ww8/docxattributeoutput.hxx 
b/sw/source/filter/ww8/docxattributeoutput.hxx
index 5b4708936605..35171507cd38 100644
--- a/sw/source/filter/ww8/docxattributeoutput.hxx
+++ b/sw/source/filter/ww8/docxattributeoutput.hxx
@@ -133,6 +133,7 @@ class FramePrHelper
 sal_Int32 m_nTableDepth;
 

[Libreoffice-commits] core.git: 2 commits - include/sfx2 sfx2/source

2023-04-22 Thread Michael Weghorn (via logerrit)
 include/sfx2/charwin.hxx|4 ++--
 sfx2/source/control/charwin.cxx |   31 ++-
 2 files changed, 20 insertions(+), 15 deletions(-)

New commits:
commit 20c86bd1059b54915190ce2e3dd39206d293aced
Author: Michael Weghorn 
AuthorDate: Sat Apr 22 23:33:57 2023 +0300
Commit: Michael Weghorn 
CommitDate: Sun Apr 23 06:20:06 2023 +0200

tdf#153806 a11y Allow opening context menu of fav/recent char w/ keyboard

This is similar to

commit 1f437264084fd173116965fa4d856aeafdfe7a98
Date:   Sun Apr 2 00:36:44 2023 +0300

tdf#153806 a11y: Allow opening context menu in special char dlg 
using keyboard

, but now for the character views in the "Recent Characters"
and "Favorite Characters" sections in the special character dialog,
and thus addresses this comment from the commit message of the
above-mentioned commit:

> Adding support for opening the context menu for the
> recently used and favorite characters further down
> in the special characters dialog is independent of this
> and would have to be added separately.

Turns out that the position returned by `CommandEvent::GetMousePosPixel`
is good for the keyboard case as well, is right in the middle of the
char view widget.

Change-Id: I9f55b99398d557b19263bf531f6a857d274d3d9f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150815
Tested-by: Jenkins
Reviewed-by: Michael Weghorn 

diff --git a/include/sfx2/charwin.hxx b/include/sfx2/charwin.hxx
index 405af4bd53ad..a2beabc5b2df 100644
--- a/include/sfx2/charwin.hxx
+++ b/include/sfx2/charwin.hxx
@@ -44,6 +44,7 @@ private:
 virtual void GetFocus() override;
 virtual void LoseFocus() override;
 virtual bool KeyInput(const KeyEvent&) override;
+virtual bool Command(const CommandEvent&) override;
 virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override;
 public:
 SvxCharView(const VclPtr& rVirDev);
diff --git a/sfx2/source/control/charwin.cxx b/sfx2/source/control/charwin.cxx
index f80bd30b684d..b94d2bcd1e82 100644
--- a/sfx2/source/control/charwin.cxx
+++ b/sfx2/source/control/charwin.cxx
@@ -19,6 +19,7 @@
 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -65,16 +66,10 @@ bool SvxCharView::MouseButtonDown(const MouseEvent& rMEvt)
 }
 
 maMouseClickHdl.Call(this);
+return true;
 }
 
-if (rMEvt.IsRight())
-{
-GrabFocus();
-Invalidate();
-createContextMenu(rMEvt.GetPosPixel());
-}
-
-return true;
+return CustomWidgetController::MouseButtonDown(rMEvt);
 }
 
 bool SvxCharView::KeyInput(const KeyEvent& rKEvt)
@@ -92,6 +87,19 @@ bool SvxCharView::KeyInput(const KeyEvent& rKEvt)
 return bRet;
 }
 
+bool SvxCharView::Command(const CommandEvent& rCommandEvent)
+{
+if (rCommandEvent.GetCommand() == CommandEventId::ContextMenu)
+{
+GrabFocus();
+Invalidate();
+createContextMenu(rCommandEvent.GetMousePosPixel());
+return true;
+}
+
+return weld::CustomWidgetController::Command(rCommandEvent);
+}
+
 void SvxCharView::InsertCharToDoc()
 {
 if (GetText().isEmpty())
commit da4c97968080707c91a15f53d07e6d062977b19a
Author: Michael Weghorn 
AuthorDate: Sat Apr 22 23:28:58 2023 +0300
Commit: Michael Weghorn 
CommitDate: Sun Apr 23 06:19:58 2023 +0200

sfx2: Pass SvxCharView context menu pos as param

... and drop the `maPosition` member that was used for that
purpose only.

Change-Id: If449a12e6e8e37c28d7b2b139e20c4c307d41eb8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150814
Tested-by: Jenkins
Reviewed-by: Michael Weghorn 

diff --git a/include/sfx2/charwin.hxx b/include/sfx2/charwin.hxx
index bc482af2514f..405af4bd53ad 100644
--- a/include/sfx2/charwin.hxx
+++ b/include/sfx2/charwin.hxx
@@ -30,7 +30,6 @@ class SFX2_DLLPUBLIC SvxCharView final : public 
weld::CustomWidgetController
 private:
 VclPtr mxVirDev;
 tools::LongmnY;
-Point   maPosition;
 vcl::Font   maFont;
 boolmaHasInsert;
 OUStringm_sText;
@@ -56,7 +55,7 @@ public:
 voidSetHasInsert( bool bInsert );
 voidInsertCharToDoc();
 
-voidcreateContextMenu();
+voidcreateContextMenu(const Point& rPosition);
 
 Sizeget_preferred_size() const { return 
GetDrawingArea()->get_preferred_size(); }
 
diff --git a/sfx2/source/control/charwin.cxx b/sfx2/source/control/charwin.cxx
index f0c687082c9a..f80bd30b684d 100644
--- a/sfx2/source/control/charwin.cxx
+++ b/sfx2/source/control/charwin.cxx
@@ -33,7 +33,6 @@ using namespace com::sun::star;
 SvxCharView::SvxCharView(const VclPtr& rVirDev)
 : mxVirDev(rVirDev)
 , mnY(0)
-, maPosition(0, 0)
 , maHasInsert(true)
 {
 }
@@ -70,11 +69,9 @@ bool SvxCharView::MouseButtonDown(const MouseEven