summaryrefslogtreecommitdiffstats
path: root/vcl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--vcl/inc/osx/salnsmenu.h10
-rw-r--r--vcl/inc/osx/salprn.h2
-rw-r--r--vcl/inc/salprn.hxx2
-rw-r--r--vcl/inc/unx/genprn.h2
-rw-r--r--vcl/inc/win/salprn.h2
-rw-r--r--vcl/osx/salmenu.cxx13
-rw-r--r--vcl/osx/salnsmenu.mm80
-rw-r--r--vcl/osx/salprn.cxx5
-rw-r--r--vcl/osx/vclnsapp.mm49
-rw-r--r--vcl/qa/cppunit/pdfexport/data/tdf159817.fodt607
-rw-r--r--vcl/qa/cppunit/pdfexport/pdfexport2.cxx56
-rw-r--r--vcl/qt5/QtFrame.cxx14
-rw-r--r--vcl/qt5/QtInstance.cxx5
-rw-r--r--vcl/source/control/button.cxx6
-rw-r--r--vcl/source/control/combobox.cxx9
-rw-r--r--vcl/source/gdi/mtfxmldump.cxx2
-rw-r--r--vcl/source/gdi/pdfwriter_impl.cxx2
-rw-r--r--vcl/source/gdi/print.cxx8
-rw-r--r--vcl/source/outdev/stack.cxx6
-rw-r--r--vcl/source/window/paint.cxx2
-rw-r--r--vcl/source/window/tabpage.cxx5
-rw-r--r--vcl/source/window/window.cxx1
-rw-r--r--vcl/unx/generic/print/genprnpsp.cxx5
-rw-r--r--vcl/unx/gtk3/salnativewidgets-gtk.cxx20
-rw-r--r--vcl/win/gdi/salprn.cxx16
25 files changed, 863 insertions, 66 deletions
diff --git a/vcl/inc/osx/salnsmenu.h b/vcl/inc/osx/salnsmenu.h
index 696abca2fc..9e0f9acf68 100644
--- a/vcl/inc/osx/salnsmenu.h
+++ b/vcl/inc/osx/salnsmenu.h
@@ -35,17 +35,25 @@ class AquaSalMenuItem;
{
AquaSalMenu* mpMenu;
}
++ (BOOL)dispatchSpecialKeyEquivalents:(NSEvent*)pEvent;
- (id)initWithMenu:(AquaSalMenu*)pMenu;
- (void)menuNeedsUpdate:(NSMenu*)pMenu;
- (void)setSalMenu:(AquaSalMenu*)pMenu;
@end
-@interface SalNSMenuItem : NSMenuItem
+@interface SalNSMenuItem : NSMenuItem <NSMenuItemValidation>
{
AquaSalMenuItem* mpMenuItem;
}
- (id)initWithMenuItem:(AquaSalMenuItem*)pMenuItem;
- (void)menuItemTriggered:(id)aSender;
+- (BOOL)validateMenuItem:(NSMenuItem*)pMenuItem;
+@end
+
+@interface SalNSMainMenu : NSMenu
+{
+}
+- (BOOL)performKeyEquivalent:(NSEvent*)pEvent;
@end
#endif // INCLUDED_VCL_INC_OSX_SALNSMENU_H
diff --git a/vcl/inc/osx/salprn.h b/vcl/inc/osx/salprn.h
index 9c26e171db..cd26279517 100644
--- a/vcl/inc/osx/salprn.h
+++ b/vcl/inc/osx/salprn.h
@@ -84,6 +84,8 @@ class AquaSalInfoPrinter : public SalInfoPrinter
virtual OUString GetPaperBinName( const ImplJobSetup* i_pSetupData, sal_uInt16 i_nPaperBin ) override;
virtual sal_uInt16 GetPaperBinBySourceIndex(const ImplJobSetup* pSetupData,
sal_uInt16 nPaperSource) override;
+ virtual sal_uInt16 GetSourceIndexByPaperBin(const ImplJobSetup* pSetupData,
+ sal_uInt16 nPaperBin) override;
virtual void InitPaperFormats( const ImplJobSetup* i_pSetupData ) override;
virtual int GetLandscapeAngle( const ImplJobSetup* i_pSetupData ) override;
diff --git a/vcl/inc/salprn.hxx b/vcl/inc/salprn.hxx
index ae0b313dab..05dca2fcab 100644
--- a/vcl/inc/salprn.hxx
+++ b/vcl/inc/salprn.hxx
@@ -84,6 +84,8 @@ public:
virtual OUString GetPaperBinName( const ImplJobSetup* pSetupData, sal_uInt16 nPaperBin ) = 0;
virtual sal_uInt16 GetPaperBinBySourceIndex(const ImplJobSetup* pSetupData,
sal_uInt16 nPaperSource) = 0;
+ virtual sal_uInt16 GetSourceIndexByPaperBin(const ImplJobSetup* pSetupData,
+ sal_uInt16 nPaperSource) = 0;
// fills m_aPaperFormats and sets m_bPapersInit to true
virtual void InitPaperFormats( const ImplJobSetup* pSetupData ) = 0;
diff --git a/vcl/inc/unx/genprn.h b/vcl/inc/unx/genprn.h
index abe84b71ca..b4fb2c8b35 100644
--- a/vcl/inc/unx/genprn.h
+++ b/vcl/inc/unx/genprn.h
@@ -47,6 +47,8 @@ public:
virtual OUString GetPaperBinName( const ImplJobSetup* pSetupData, sal_uInt16 nPaperBin ) override;
virtual sal_uInt16 GetPaperBinBySourceIndex(const ImplJobSetup* pSetupData,
sal_uInt16 nPaperSource) override;
+ virtual sal_uInt16 GetSourceIndexByPaperBin(const ImplJobSetup* pSetupData,
+ sal_uInt16 nPaperBin) override;
virtual void InitPaperFormats( const ImplJobSetup* pSetupData ) override;
virtual int GetLandscapeAngle( const ImplJobSetup* pSetupData ) override;
};
diff --git a/vcl/inc/win/salprn.h b/vcl/inc/win/salprn.h
index b0ec1697c3..d44687d8e0 100644
--- a/vcl/inc/win/salprn.h
+++ b/vcl/inc/win/salprn.h
@@ -71,6 +71,8 @@ public:
virtual OUString GetPaperBinName( const ImplJobSetup* pSetupData, sal_uInt16 nPaperBin ) override;
virtual sal_uInt16 GetPaperBinBySourceIndex(const ImplJobSetup* pSetupData,
sal_uInt16 nPaperSource) override;
+ virtual sal_uInt16 GetSourceIndexByPaperBin(const ImplJobSetup* pSetupData,
+ sal_uInt16 nPaperBin) override;
virtual void InitPaperFormats( const ImplJobSetup* pSetupData ) override;
virtual int GetLandscapeAngle( const ImplJobSetup* pSetupData ) override;
diff --git a/vcl/osx/salmenu.cxx b/vcl/osx/salmenu.cxx
index b3d02587f4..6ea16a6588 100644
--- a/vcl/osx/salmenu.cxx
+++ b/vcl/osx/salmenu.cxx
@@ -125,7 +125,9 @@ static void initAppMenu()
NSMenu* pAppMenu = nil;
NSMenuItem* pNewItem = nil;
- NSMenu* pMainMenu = [[[NSMenu alloc] initWithTitle: @"Main Menu"] autorelease];
+ // Related: tdf#126638 use NSMenu subclass to catch and redirect key
+ // shortcuts when a modal window is displayed
+ SalNSMainMenu* pMainMenu = [[[SalNSMainMenu alloc] initWithTitle: @"Main Menu"] autorelease];
pNewItem = [pMainMenu addItemWithTitle: @"Application"
action: nil
keyEquivalent: @""];
@@ -230,12 +232,19 @@ AquaSalMenu::AquaSalMenu( bool bMenuBar ) :
{
mpMenu = [[SalNSMenu alloc] initWithMenu: this];
[mpMenu setDelegate: reinterpret_cast< id<NSMenuDelegate> >(mpMenu)];
+
+ // Related: tdf#126638 enable the menu's "autoenabledItems" property
+ // Enable the menu's "autoenabledItems" property so that
+ // -[SalNSMenuItem validateMenuItem:] will be called before handling
+ // a key shortcut and the menu item can be temporarily disabled if a
+ // modal window is displayed.
+ [mpMenu setAutoenablesItems: YES];
}
else
{
mpMenu = [NSApp mainMenu];
+ [mpMenu setAutoenablesItems: NO];
}
- [mpMenu setAutoenablesItems: NO];
}
AquaSalMenu::~AquaSalMenu()
diff --git a/vcl/osx/salnsmenu.mm b/vcl/osx/salnsmenu.mm
index b2df2da7e5..31627a35ea 100644
--- a/vcl/osx/salnsmenu.mm
+++ b/vcl/osx/salnsmenu.mm
@@ -30,6 +30,53 @@
#include <osx/salnsmenu.h>
@implementation SalNSMenu
+
++(BOOL)dispatchSpecialKeyEquivalents: (NSEvent*)pEvent
+{
+ if( pEvent && [pEvent type] == NSEventTypeKeyDown )
+ {
+ unsigned int nModMask = ([pEvent modifierFlags] & (NSEventModifierFlagShift|NSEventModifierFlagControl|NSEventModifierFlagOption|NSEventModifierFlagCommand));
+ if( nModMask == NSEventModifierFlagCommand )
+ {
+ if( [[pEvent charactersIgnoringModifiers] isEqualToString: @"v"] )
+ {
+ if( [NSApp sendAction: @selector(paste:) to: nil from: nil] )
+ return YES;
+ }
+ else if( [[pEvent charactersIgnoringModifiers] isEqualToString: @"c"] )
+ {
+ if( [NSApp sendAction: @selector(copy:) to: nil from: nil] )
+ return YES;
+ }
+ else if( [[pEvent charactersIgnoringModifiers] isEqualToString: @"x"] )
+ {
+ if( [NSApp sendAction: @selector(cut:) to: nil from: nil] )
+ return YES;
+ }
+ else if( [[pEvent charactersIgnoringModifiers] isEqualToString: @"a"] )
+ {
+ if( [NSApp sendAction: @selector(selectAll:) to: nil from: nil] )
+ return YES;
+ }
+ else if( [[pEvent charactersIgnoringModifiers] isEqualToString: @"z"] )
+ {
+ if( [NSApp sendAction: @selector(undo:) to: nil from: nil] )
+ return YES;
+ }
+ }
+ else if( nModMask == (NSEventModifierFlagCommand|NSEventModifierFlagShift) )
+ {
+ if( [[pEvent charactersIgnoringModifiers] isEqualToString: @"Z"] )
+ {
+ if( [NSApp sendAction: @selector(redo:) to: nil from: nil] )
+ return YES;
+ }
+ }
+ }
+
+ return NO;
+}
+
-(id)initWithMenu: (AquaSalMenu*)pMenu
{
mpMenu = pMenu;
@@ -167,6 +214,19 @@
OSL_FAIL( "menubar item without frame !" );
}
}
+
+-(BOOL)validateMenuItem: (NSMenuItem *)pMenuItem
+{
+ // Related: tdf#126638 disable all menu items when displaying modal windows
+ // For some unknown reason, key shortcuts are dispatched to the LibreOffice
+ // menu items instead of the modal window so disable all LibreOffice menu
+ // items while a native modal dialog such as the native Open, Save, or
+ // Print dialog is displayed.
+ if (!pMenuItem || [NSApp modalWindow])
+ return NO;
+
+ return [pMenuItem isEnabled];
+}
@end
@implementation OOStatusItemView
@@ -257,5 +317,25 @@ SAL_WNODEPRECATED_DECLARATIONS_POP
}
@end
+@implementation SalNSMainMenu
+
+- (BOOL)performKeyEquivalent:(NSEvent*)pEvent
+{
+ BOOL bRet = [super performKeyEquivalent: pEvent];
+
+ // tdf#126638 dispatch key shortcut events to modal windows
+ // Some modal windows, such as the native Open and Save dialogs,
+ // return NO from -[NSWindow performKeyEquivalent:]. Fortunately,
+ // the main menu's -[NSMenu performKeyEquivalent:] is then called
+ // so we can catch and redirect any modal window's key shortcut
+ // events without triggering the modal window's "disallowed
+ // action" beep.
+ if( !bRet && [NSApp modalWindow] )
+ bRet = [SalNSMenu dispatchSpecialKeyEquivalents: pEvent];
+
+ return bRet;
+}
+
+@end
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/osx/salprn.cxx b/vcl/osx/salprn.cxx
index 3de45d9e80..3fe37a9ab5 100644
--- a/vcl/osx/salprn.cxx
+++ b/vcl/osx/salprn.cxx
@@ -270,6 +270,11 @@ sal_uInt16 AquaSalInfoPrinter::GetPaperBinBySourceIndex( const ImplJobSetup*, sa
return 0xffff;
}
+sal_uInt16 AquaSalInfoPrinter::GetSourceIndexByPaperBin(const ImplJobSetup*, sal_uInt16)
+{
+ return 0;
+}
+
sal_uInt32 AquaSalInfoPrinter::GetCapabilities( const ImplJobSetup*, PrinterCapType i_nType )
{
switch( i_nType )
diff --git a/vcl/osx/vclnsapp.mm b/vcl/osx/vclnsapp.mm
index 5daf923ce1..cd60cb0b0c 100644
--- a/vcl/osx/vclnsapp.mm
+++ b/vcl/osx/vclnsapp.mm
@@ -34,6 +34,7 @@
#include <osx/salframe.h>
#include <osx/salframeview.h>
#include <osx/salinst.h>
+#include <osx/salnsmenu.h>
#include <osx/vclnsapp.h>
#include <quartz/utils.h>
@@ -170,44 +171,8 @@
// precondition: this ONLY works because CMD-V (paste), CMD-C (copy) and CMD-X (cut) are
// NOT localized, that is the same in all locales. Should this be
// different in any locale, this hack will fail.
- unsigned int nModMask = ([pEvent modifierFlags] & (NSEventModifierFlagShift|NSEventModifierFlagControl|NSEventModifierFlagOption|NSEventModifierFlagCommand));
- if( nModMask == NSEventModifierFlagCommand )
- {
-
- if( [[pEvent charactersIgnoringModifiers] isEqualToString: @"v"] )
- {
- if( [NSApp sendAction: @selector(paste:) to: nil from: nil] )
- return;
- }
- else if( [[pEvent charactersIgnoringModifiers] isEqualToString: @"c"] )
- {
- if( [NSApp sendAction: @selector(copy:) to: nil from: nil] )
- return;
- }
- else if( [[pEvent charactersIgnoringModifiers] isEqualToString: @"x"] )
- {
- if( [NSApp sendAction: @selector(cut:) to: nil from: nil] )
- return;
- }
- else if( [[pEvent charactersIgnoringModifiers] isEqualToString: @"a"] )
- {
- if( [NSApp sendAction: @selector(selectAll:) to: nil from: nil] )
- return;
- }
- else if( [[pEvent charactersIgnoringModifiers] isEqualToString: @"z"] )
- {
- if( [NSApp sendAction: @selector(undo:) to: nil from: nil] )
- return;
- }
- }
- else if( nModMask == (NSEventModifierFlagCommand|NSEventModifierFlagShift) )
- {
- if( [[pEvent charactersIgnoringModifiers] isEqualToString: @"Z"] )
- {
- if( [NSApp sendAction: @selector(redo:) to: nil from: nil] )
- return;
- }
- }
+ if( [SalNSMenu dispatchSpecialKeyEquivalents:pEvent] )
+ return;
}
}
[super sendEvent: pEvent];
@@ -315,6 +280,14 @@
-(NSApplicationTerminateReply)applicationShouldTerminate: (NSApplication *) app
{
(void)app;
+
+ // Related: tdf#126638 disable all menu items when displaying modal windows
+ // Although -[SalNSMenuItem validateMenuItem:] disables almost all menu
+ // items when a modal window is displayed, the standard Quit menu item
+ // does not get disabled so disable it here.
+ if ([NSApp modalWindow])
+ return NSTerminateCancel;
+
NSApplicationTerminateReply aReply = NSTerminateNow;
{
SolarMutexGuard aGuard;
diff --git a/vcl/qa/cppunit/pdfexport/data/tdf159817.fodt b/vcl/qa/cppunit/pdfexport/data/tdf159817.fodt
new file mode 100644
index 0000000000..6aa986bdc6
--- /dev/null
+++ b/vcl/qa/cppunit/pdfexport/data/tdf159817.fodt
@@ -0,0 +1,607 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
+ <office:meta><meta:generator>LibreOfficeDev/24.8.0.0.alpha0$MacOSX_AARCH64 LibreOffice_project/d8978a8c4ffabd6b36a691fd3e2df68563808234</meta:generator><meta:creation-date>2003-10-02T15:57:29</meta:creation-date><dc:date>2024-03-03T15:16:09.338790904</dc:date><meta:editing-cycles>880</meta:editing-cycles><meta:editing-duration>P124DT12H36M25S</meta:editing-duration><meta:print-date>2024-02-21T10:01:49.801000000</meta:print-date><meta:printed-by>Fichiers PDF</meta:printed-by><meta:document-statistic meta:table-count="0" meta:image-count="0" meta:object-count="0" meta:page-count="1" meta:paragraph-count="6" meta:word-count="21" meta:character-count="119" meta:non-whitespace-character-count="90"/><meta:user-defined meta:name="Info 1"/><meta:user-defined meta:name="Info 2"/><meta:user-defined meta:name="Info 3"/><meta:user-defined meta:name="Info 4"/></office:meta>
+ <office:settings>
+ <config:config-item-set config:name="ooo:view-settings">
+ <config:config-item config:name="ViewAreaTop" config:type="long">0</config:config-item>
+ <config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item>
+ <config:config-item config:name="ViewAreaWidth" config:type="long">20717</config:config-item>
+ <config:config-item config:name="ViewAreaHeight" config:type="long">10631</config:config-item>
+ <config:config-item config:name="ShowRedlineChanges" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item>
+ <config:config-item-map-indexed config:name="Views">
+ <config:config-item-map-entry>
+ <config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
+ <config:config-item config:name="ViewLeft" config:type="long">11534</config:config-item>
+ <config:config-item config:name="ViewTop" config:type="long">5101</config:config-item>
+ <config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item>
+ <config:config-item config:name="VisibleTop" config:type="long">0</config:config-item>
+ <config:config-item config:name="VisibleRight" config:type="long">20715</config:config-item>
+ <config:config-item config:name="VisibleBottom" config:type="long">10629</config:config-item>
+ <config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
+ <config:config-item config:name="ViewLayoutColumns" config:type="short">1</config:config-item>
+ <config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ZoomFactor" config:type="short">140</config:config-item>
+ <config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="KeepRatio" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="LegacySingleLineFontwork" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ConnectorUseSnapRect" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IgnoreBreakAfterMultilineField" config:type="boolean">false</config:config-item>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ </config:config-item-set>
+ <config:config-item-set config:name="ooo:configuration-settings">
+ <config:config-item config:name="PrintAnnotationMode" config:type="short">0</config:config-item>
+ <config:config-item config:name="PrintGraphics" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PrintHiddenText" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintTextPlaceholder" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintProspect" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintControls" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PrintBlackFonts" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintTables" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PrintReversed" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintFaxName" config:type="string"/>
+ <config:config-item config:name="DisableOffPagePositioning" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PrintPaperFromSetup" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="UseVariableWidthNBSP" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="NoNumberingShowFollowBy" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="JustifyLinesWithShrinking" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="UseOldNumbering" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AddParaSpacingToTableCells" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ImagePreferredDPI" config:type="int">0</config:config-item>
+ <config:config-item config:name="GutterAtTop" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="HeaderSpacingBelowLastPara" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ProtectFields" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="EmptyDbFieldHidesPara" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="TabsRelativeToIndent" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="MsWordCompMinLineHeightByFly" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ApplyParagraphMarkFormatToNumbering" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SurroundTextWrapSmall" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ContinuousEndnotes" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="TabOverSpacing" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SubtractFlysAnchoredAtFlys" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="TabOverMargin" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="RsidRoot" config:type="int">449756</config:config-item>
+ <config:config-item config:name="EmbedComplexScriptFonts" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="HyphenateURLs" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EmbedOnlyUsedFonts" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="BackgroundParaOverDrawings" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AddFrameOffsets" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="NoGapAfterNoteNumber" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="StylesNoDefault" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="TabOverflow" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IgnoreFirstLineIndentInNumbering" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SmallCapsPercentage66" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="CollapseEmptyCellPara" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="MathBaselineAlignment" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="DropCapPunctuation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="EmbedLatinScriptFonts" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="MsWordCompTrailingBlanks" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="Rsid" config:type="int">20255833</config:config-item>
+ <config:config-item config:name="IgnoreTabsAndBlanksForLineCalculation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="FootnoteInColumnToPageEnd" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ClipAsCharacterAnchoredWriterFlyFrames" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="TreatSingleColumnBreakAsPageBreak" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AddParaTableSpacing" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="UnxForceZeroExtLeading" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ProtectBookmarks" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ProtectForm" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="DoNotCaptureDrawObjsOnPage" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintRightPages" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ClippedPictures" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/>
+ <config:config-item config:name="PrintLeftPages" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="DoNotJustifyLinesWithManualBreak" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AlignTabStopPosition" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AutoFirstLineIndentDisregardLineSpace" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintDrawings" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PrinterPaperFromSetup" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ConsiderTextWrapOnObjPos" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="UseFormerObjectPositioning" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="AddParaLineSpacingToTableCells" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="UseOldPrinterMetrics" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PropLineSpacingShrinksFirstLine" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="CurrentDatabaseCommandType" config:type="int">0</config:config-item>
+ <config:config-item config:name="AddExternalLeading" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="UseFormerLineSpacing" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="AllowPrintJobCancel" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="FrameAutowidthWithMorePara" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="TableRowKeep" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="UseFormerTextWrapping" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="AddVerticalFrameOffsets" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="LinkUpdateMode" config:type="short">1</config:config-item>
+ <config:config-item config:name="IsLabelDocument" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="UpdateFromTemplate" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PrinterIndependentLayout" config:type="string">low-resolution</config:config-item>
+ <config:config-item config:name="PrinterName" config:type="string">Canon iP7200 series</config:config-item>
+ <config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item>
+ <config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
+ <config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="CurrentDatabaseDataSource" config:type="string"/>
+ <config:config-item config:name="CurrentDatabaseCommand" config:type="string"/>
+ <config:config-item config:name="SaveGlobalDocumentLinks" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintEmptyPages" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintPageBackground" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="SaveThumbnail" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EmbedSystemFonts" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="UnbreakableNumberings" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="InvertBorderSpacing" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="DoNotResetParaAttrsForNumFont" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="TabAtLeftIndentForParagraphsInList" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrinterSetup" config:type="base64Binary">NQH+/0Nhbm9uIGlQNzIwMCBzZXJpZXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ2Fub24gaVA3MjAwIHNlcmllcy1BaXJQcmludAAAAAAWAAQABAAAAAAAAAAEAAhSAAAEdAAAAAAAABIAQ09NUEFUX0RVUExFWF9NT0RFEwBEdXBsZXhNb2RlOjpVbmtub3duDABQUklOVEVSX05BTUUTAENhbm9uIGlQNzIwMCBzZXJpZXMLAERSSVZFUl9OQU1FHABDYW5vbiBpUDcyMDAgc2VyaWVzLUFpclByaW50</config:config-item>
+ </config:config-item-set>
+ </office:settings>
+ <office:scripts>
+ <office:script script:language="ooo:Basic">
+ <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </office:script>
+ </office:scripts>
+ <office:font-face-decls>
+ <style:font-face style:name="Arial" svg:font-family="Arial"/>
+ <style:font-face style:name="Arial Black" svg:font-family="&apos;Arial Black&apos;" style:font-family-generic="swiss" style:font-pitch="variable"/>
+ <style:font-face style:name="Arial1" svg:font-family="Arial" style:font-family-generic="swiss"/>
+ <style:font-face style:name="Arial2" svg:font-family="Arial" style:font-family-generic="swiss" style:font-pitch="variable"/>
+ <style:font-face style:name="Arial3" svg:font-family="Arial, sans-serif"/>
+ <style:font-face style:name="Lucida Sans Unicode" svg:font-family="&apos;Lucida Sans Unicode&apos;" style:font-pitch="variable"/>
+ <style:font-face style:name="MS Gothic" svg:font-family="&apos;MS Gothic&apos;" style:font-pitch="variable"/>
+ <style:font-face style:name="Magma" svg:font-family="Magma" style:font-adornments="Gras" style:font-pitch="variable"/>
+ <style:font-face style:name="StarSymbol" svg:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ <style:font-face style:name="Tahoma" svg:font-family="Tahoma"/>
+ <style:font-face style:name="Tahoma1" svg:font-family="Tahoma" style:font-pitch="variable"/>
+ <style:font-face style:name="Times New Roman" svg:font-family="&apos;Times New Roman&apos;" style:font-family-generic="roman"/>
+ <style:font-face style:name="Times New Roman1" svg:font-family="&apos;Times New Roman&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+ <style:default-style style:family="graphic">
+ <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:writing-mode="lr-tb" style:flow-with-text="true"/>
+ <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" loext:tab-stop-distance="0cm" style:font-independent-line-spacing="false">
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ <style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Times New Roman1" fo:font-size="12pt" fo:language="fr" fo:country="FR" style:font-name-asian="Lucida Sans Unicode" style:font-size-asian="12pt" style:language-asian="fr" style:country-asian="FR" style:font-name-complex="Tahoma1" style:font-size-complex="12pt" style:language-complex="fr" style:country-complex="FR"/>
+ </style:default-style>
+ <style:default-style style:family="paragraph">
+ <style:paragraph-properties fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="1cm" style:writing-mode="page"/>
+ <style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Times New Roman1" fo:font-size="12pt" fo:language="fr" fo:country="FR" style:font-name-asian="Lucida Sans Unicode" style:font-size-asian="12pt" style:language-asian="fr" style:country-asian="FR" style:font-name-complex="Tahoma1" style:font-size-complex="12pt" style:language-complex="fr" style:country-complex="FR" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" loext:hyphenation-no-caps="false" loext:hyphenation-no-last-word="false" loext:hyphenation-word-char-count="no-limit" loext:hyphenation-zone="no-limit"/>
+ </style:default-style>
+ <style:default-style style:family="table">
+ <style:table-properties table:border-model="separating"/>
+ </style:default-style>
+ <style:default-style style:family="table-row">
+ <style:table-row-properties fo:keep-together="always"/>
+ </style:default-style>
+ <style:style style:name="Standard" style:family="paragraph" style:class="text"/>
+ <style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text">
+ <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.212cm" style:contextual-spacing="false"/>
+ </style:style>
+ <style:style style:name="Heading" style:family="paragraph" style:next-style-name="Text_20_body" style:class="text" style:master-page-name="">
+ <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.21cm" style:contextual-spacing="false" fo:text-align="center" style:justify-single-word="false" style:page-number="auto" fo:break-before="page" fo:keep-with-next="always"/>
+ <style:text-properties style:font-name="Arial Black" fo:font-family="&apos;Arial Black&apos;" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="24pt" fo:font-weight="900" style:font-name-asian="MS Gothic" style:font-family-asian="&apos;MS Gothic&apos;" style:font-pitch-asian="variable" style:font-size-asian="14pt" style:font-name-complex="Tahoma1" style:font-family-complex="Tahoma" style:font-pitch-complex="variable" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="List" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="list">
+ <style:text-properties style:font-name-complex="Tahoma" style:font-family-complex="Tahoma"/>
+ </style:style>
+ <style:style style:name="Header_20_and_20_Footer" style:display-name="Header and Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
+ <style:paragraph-properties text:number-lines="false" text:line-number="0">
+ <style:tab-stops>
+ <style:tab-stop style:position="8.5cm" style:type="center"/>
+ <style:tab-stop style:position="17cm" style:type="right"/>
+ </style:tab-stops>
+ </style:paragraph-properties>
+ </style:style>
+ <style:style style:name="Header" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
+ <style:paragraph-properties text:number-lines="false" text:line-number="0">
+ <style:tab-stops>
+ <style:tab-stop style:position="10.5cm" style:type="center"/>
+ <style:tab-stop style:position="21.001cm" style:type="right"/>
+ </style:tab-stops>
+ </style:paragraph-properties>
+ </style:style>
+ <style:style style:name="Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
+ <style:paragraph-properties text:number-lines="false" text:line-number="0">
+ <style:tab-stops>
+ <style:tab-stop style:position="10.5cm" style:type="center"/>
+ <style:tab-stop style:position="21.001cm" style:type="right"/>
+ </style:tab-stops>
+ </style:paragraph-properties>
+ </style:style>
+ <style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
+ <style:paragraph-properties fo:margin-top="0.212cm" fo:margin-bottom="0.212cm" style:contextual-spacing="false" text:number-lines="false" text:line-number="0"/>
+ <style:text-properties fo:font-size="10pt" fo:font-style="italic" style:font-size-asian="10pt" style:font-style-asian="italic" style:font-name-complex="Tahoma" style:font-family-complex="Tahoma" style:font-size-complex="10pt" style:font-style-complex="italic"/>
+ </style:style>
+ <style:style style:name="Frame_20_contents" style:display-name="Frame contents" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="extra"/>
+ <style:style style:name="Index" style:family="paragraph" style:parent-style-name="Standard" style:class="index">
+ <style:paragraph-properties text:number-lines="false" text:line-number="0"/>
+ <style:text-properties style:font-name-complex="Tahoma" style:font-family-complex="Tahoma"/>
+ </style:style>
+ <style:style style:name="Normal" style:family="paragraph" style:parent-style-name="Standard">
+ <style:paragraph-properties style:text-autospace="none"/>
+ <style:text-properties fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
+ </style:style>
+ <style:style style:name="_5b_Aucun_20_style_20_de_20_paragraphe_5d_" style:display-name="[Aucun style de paragraphe]" style:family="paragraph">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false" fo:line-height="120%" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:text-autospace="none" style:vertical-align="middle"/>
+ <style:text-properties fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Times New Roman" fo:font-family="&apos;Times New Roman&apos;" style:font-family-generic="roman" fo:font-size="12pt" fo:letter-spacing="normal" fo:language="en" fo:country="GB" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" style:font-name-asian="Times New Roman" style:font-family-asian="&apos;Times New Roman&apos;" style:font-family-generic-asian="roman" style:font-size-asian="12pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Times New Roman" style:font-family-complex="&apos;Times New Roman&apos;" style:font-family-generic-complex="roman" style:font-size-complex="12pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:text-scale="100%"/>
+ </style:style>
+ <style:style style:name="Table_20_Contents" style:display-name="Table Contents" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
+ <style:paragraph-properties text:number-lines="false" text:line-number="0"/>
+ </style:style>
+ <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="_5b_Aucun_20_style_20_de_20_paragraphe_5d_" style:default-outline-level="1" style:class="text" style:master-page-name="">
+ <style:paragraph-properties fo:margin-left="2cm" fo:margin-right="2cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:page-number="auto" fo:break-before="page" style:shadow="none">
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ <style:text-properties fo:color="#000080" loext:opacity="100%" style:font-name="Magma" fo:font-family="Magma" style:font-style-name="Gras" style:font-pitch="variable" fo:font-size="22pt" fo:font-weight="bold" fo:background-color="transparent" style:font-size-asian="115%" style:font-weight-asian="bold" style:font-size-complex="115%" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="paragraph" style:parent-style-name="Heading_20_1" style:next-style-name="Text_20_body" style:auto-update="true" style:default-outline-level="2" style:class="text" style:master-page-name="">
+ <style:paragraph-properties fo:text-align="start" style:justify-single-word="false" style:page-number="auto" fo:break-before="auto" fo:break-after="auto"/>
+ <style:text-properties fo:font-size="14pt" fo:font-style="normal" fo:font-weight="bold" style:font-size-asian="12pt" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-size-complex="12pt" style:font-style-complex="italic" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="Table_20_Heading" style:display-name="Table Heading" style:family="paragraph" style:parent-style-name="Table_20_Contents" style:class="extra">
+ <style:paragraph-properties fo:text-align="center" style:justify-single-word="false" text:number-lines="false" text:line-number="0"/>
+ <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="List_20_Contents" style:display-name="List Contents" style:family="paragraph" style:parent-style-name="Standard" style:class="html">
+ <style:paragraph-properties fo:margin-left="1cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false"/>
+ </style:style>
+ <style:style style:name="List_20_Heading" style:display-name="List Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="List_20_Contents" style:class="html">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false"/>
+ </style:style>
+ <style:style style:name="Quotations" style:family="paragraph" style:parent-style-name="Standard" style:class="html">
+ <style:paragraph-properties fo:margin-left="1cm" fo:margin-right="1cm" fo:margin-top="0cm" fo:margin-bottom="0.499cm" style:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false"/>
+ </style:style>
+ <style:style style:name="Title" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter">
+ <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
+ <style:text-properties fo:font-size="18pt" fo:font-weight="bold" style:font-size-asian="18pt" style:font-weight-asian="bold" style:font-size-complex="18pt" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="Subtitle" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter">
+ <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
+ <style:text-properties fo:font-size="14pt" fo:font-style="italic" style:font-size-asian="14pt" style:font-style-asian="italic" style:font-size-complex="14pt" style:font-style-complex="italic"/>
+ </style:style>
+ <style:style style:name="Heading_20_3" style:display-name="Heading 3" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="3" style:class="text">
+ <style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="Footnote_20_Symbol" style:display-name="Footnote Symbol" style:family="text"/>
+ <style:style style:name="Numbering_20_Symbols" style:display-name="Numbering Symbols" style:family="text"/>
+ <style:style style:name="Bullet_20_Symbols" style:display-name="Bullet Symbols" style:family="text">
+ <style:text-properties style:font-name="StarSymbol" fo:font-family="StarSymbol" style:font-charset="x-symbol" fo:font-size="9pt" style:font-name-asian="StarSymbol" style:font-family-asian="StarSymbol" style:font-charset-asian="x-symbol" style:font-size-asian="9pt" style:font-name-complex="StarSymbol" style:font-family-complex="StarSymbol" style:font-charset-complex="x-symbol" style:font-size-complex="9pt"/>
+ </style:style>
+ <style:style style:name="Internet_20_link" style:display-name="Internet link" style:family="text">
+ <style:text-properties fo:color="#000080" loext:opacity="100%" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color"/>
+ </style:style>
+ <style:style style:name="Endnote_20_Symbol" style:display-name="Endnote Symbol" style:family="text"/>
+ <style:style style:name="RTF_5f_Num_20_3_20_1" style:display-name="RTF_Num 3 1" style:family="text">
+ <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Arial1" fo:font-family="Arial" style:font-family-generic="swiss" fo:font-size="12pt" style:font-name-asian="Arial1" style:font-family-asian="Arial" style:font-family-generic-asian="swiss" style:font-size-asian="12pt" style:font-name-complex="Arial1" style:font-family-complex="Arial" style:font-family-generic-complex="swiss" style:font-size-complex="12pt"/>
+ </style:style>
+ <style:style style:name="RTF_5f_Num_20_4_20_1" style:display-name="RTF_Num 4 1" style:family="text">
+ <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Arial1" fo:font-family="Arial" style:font-family-generic="swiss" fo:font-size="12pt" style:font-name-asian="Arial1" style:font-family-asian="Arial" style:font-family-generic-asian="swiss" style:font-size-asian="12pt" style:font-name-complex="Arial1" style:font-family-complex="Arial" style:font-family-generic-complex="swiss" style:font-size-complex="12pt"/>
+ </style:style>
+ <style:style style:name="Strong_20_Emphasis" style:display-name="Strong Emphasis" style:family="text">
+ <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="Footnote_20_anchor" style:display-name="Footnote anchor" style:family="text">
+ <style:text-properties style:text-position="super 58%"/>
+ </style:style>
+ <style:style style:name="Endnote_20_anchor" style:display-name="Endnote anchor" style:family="text">
+ <style:text-properties style:text-position="super 58%"/>
+ </style:style>
+ <style:style style:name="Frame" style:family="graphic">
+ <style:graphic-properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" fo:margin-left="0.201cm" fo:margin-right="0.201cm" fo:margin-top="0.201cm" fo:margin-bottom="0.201cm" style:wrap="parallel" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph-content" style:horizontal-pos="center" style:horizontal-rel="paragraph-content" fo:background-color="transparent" draw:fill="none" draw:fill-color="#729fcf" fo:padding="0.15cm" fo:border="0.06pt solid #000000"/>
+ </style:style>
+ <style:style style:name="Graphics" style:family="graphic">
+ <style:graphic-properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" style:wrap="none" style:vertical-pos="top" style:vertical-rel="paragraph" style:horizontal-pos="center" style:horizontal-rel="paragraph" fo:background-color="transparent" draw:fill="none" draw:fill-color="#729fcf"/>
+ </style:style>
+ <text:outline-style style:name="Outline">
+ <text:outline-level-style text:level="1" loext:num-list-format="%1%" style:num-format="">
+ <style:list-level-properties/>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="2" loext:num-list-format="%2%" style:num-format="">
+ <style:list-level-properties/>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="3" loext:num-list-format="%3%" style:num-format="">
+ <style:list-level-properties/>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="4" loext:num-list-format="%4%" style:num-format="">
+ <style:list-level-properties/>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="5" loext:num-list-format="%5%" style:num-format="">
+ <style:list-level-properties/>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="6" loext:num-list-format="%6%" style:num-format="">
+ <style:list-level-properties/>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="7" loext:num-list-format="%7%" style:num-format="">
+ <style:list-level-properties/>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="8" loext:num-list-format="%8%" style:num-format="">
+ <style:list-level-properties/>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="9" loext:num-list-format="%9%" style:num-format="">
+ <style:list-level-properties/>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="10" loext:num-list-format="%10%" style:num-format="">
+ <style:list-level-properties/>
+ </text:outline-level-style>
+ </text:outline-style>
+ <text:list-style style:name="RTF_5f_Num_20_2" style:display-name="RTF_Num 2">
+ <text:list-level-style-number text:level="1" loext:num-list-format="%1%." style:num-suffix="." style:num-format="1">
+ <style:list-level-properties text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="2" loext:num-list-format="%2%." style:num-suffix="." style:num-format="a" style:num-letter-sync="true">
+ <style:list-level-properties text:space-before="0.501cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="3" loext:num-list-format="%3%." style:num-suffix="." style:num-format="i">
+ <style:list-level-properties text:space-before="1cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="4" loext:num-list-format="(%4%)" style:num-prefix="(" style:num-suffix=")" style:num-format="1">
+ <style:list-level-properties text:space-before="1.501cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="5" loext:num-list-format="(%5%)" style:num-prefix="(" style:num-suffix=")" style:num-format="a" style:num-letter-sync="true">
+ <style:list-level-properties text:space-before="2cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="6" loext:num-list-format="(%6%)" style:num-prefix="(" style:num-suffix=")" style:num-format="i">
+ <style:list-level-properties text:space-before="2.501cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="7" loext:num-list-format="%7%." style:num-suffix="." style:num-format="1">
+ <style:list-level-properties text:space-before="3.001cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="8" loext:num-list-format="%8%." style:num-suffix="." style:num-format="a" style:num-letter-sync="true">
+ <style:list-level-properties text:space-before="3.502cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="9" loext:num-list-format="%9%" style:num-format="i">
+ <style:list-level-properties text:space-before="4.001cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="10" loext:num-list-format="%10%." style:num-suffix="." style:num-format="1">
+ <style:list-level-properties text:space-before="4.502cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ </text:list-style>
+ <text:notes-configuration text:note-class="footnote" text:citation-style-name="Footnote_20_Symbol" text:citation-body-style-name="Footnote_20_anchor" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="page"/>
+ <text:notes-configuration text:note-class="endnote" text:citation-style-name="Endnote_20_Symbol" text:citation-body-style-name="Endnote_20_anchor" text:master-page-name="Endnote" style:num-format="1" text:start-value="0"/>
+ <text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/>
+ <loext:theme loext:name="Office">
+ <loext:theme-colors loext:name="LibreOffice">
+ <loext:color loext:name="dark1" loext:color="#000000"/>
+ <loext:color loext:name="light1" loext:color="#ffffff"/>
+ <loext:color loext:name="dark2" loext:color="#000000"/>
+ <loext:color loext:name="light2" loext:color="#ffffff"/>
+ <loext:color loext:name="accent1" loext:color="#18a303"/>
+ <loext:color loext:name="accent2" loext:color="#0369a3"/>
+ <loext:color loext:name="accent3" loext:color="#a33e03"/>
+ <loext:color loext:name="accent4" loext:color="#8e03a3"/>
+ <loext:color loext:name="accent5" loext:color="#c99c00"/>
+ <loext:color loext:name="accent6" loext:color="#c9211e"/>
+ <loext:color loext:name="hyperlink" loext:color="#0000ee"/>
+ <loext:color loext:name="followed-hyperlink" loext:color="#551a8b"/>
+ </loext:theme-colors>
+ </loext:theme>
+ </office:styles>
+ <office:automatic-styles>
+ <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Footer">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="2.037cm" fo:text-align="end" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false">
+ <style:tab-stops>
+ <style:tab-stop style:position="10.5cm" style:type="center"/>
+ <style:tab-stop style:position="20.999cm" style:type="right"/>
+ </style:tab-stops>
+ </style:paragraph-properties>
+ </style:style>
+ <style:style style:name="P2" style:family="paragraph" style:parent-style-name="Footer">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="2.037cm" fo:text-align="end" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false">
+ <style:tab-stops>
+ <style:tab-stop style:position="10.5cm" style:type="center"/>
+ <style:tab-stop style:position="20.999cm" style:type="right"/>
+ </style:tab-stops>
+ </style:paragraph-properties>
+ </style:style>
+ <style:style style:name="P3" style:family="paragraph" style:parent-style-name="Normal">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="2.037cm" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:text-autospace="none"/>
+ <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Arial2" fo:font-size="10pt" style:font-name-asian="Arial2" style:font-size-asian="10pt" style:font-name-complex="Arial2" style:font-size-complex="10pt"/>
+ </style:style>
+ <style:style style:name="P4" style:family="paragraph" style:parent-style-name="Normal">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="2.037cm" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:text-autospace="none"/>
+ <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Arial2" fo:font-size="10pt" officeooo:paragraph-rsid="01332ee8" style:font-name-asian="Arial2" style:font-size-asian="10pt" style:font-name-complex="Arial2" style:font-size-complex="10pt"/>
+ </style:style>
+ <style:style style:name="P5" style:family="paragraph" style:parent-style-name="Normal" style:master-page-name="">
+ <loext:graphic-properties draw:fill="none"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="2cm" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:page-number="auto" fo:background-color="transparent" fo:padding-left="0.199cm" fo:padding-right="0.049cm" fo:padding-top="0.049cm" fo:padding-bottom="0.049cm" fo:border-left="3pt solid #b2b2b2" fo:border-right="none" fo:border-top="none" fo:border-bottom="none" style:text-autospace="none" style:join-border="true"/>
+ <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Arial2" fo:font-size="10pt" fo:language="fr" fo:country="FR" officeooo:paragraph-rsid="000a04a1" style:font-name-asian="Arial2" style:font-size-asian="10pt" style:font-name-complex="Arial2" style:font-size-complex="10pt"/>
+ </style:style>
+ <style:style style:name="P6" style:family="paragraph" style:parent-style-name="Normal">
+ <style:paragraph-properties fo:margin-left="2.011cm" fo:margin-right="2.037cm" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:text-autospace="none"/>
+ <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Arial2" fo:font-size="10pt" fo:language="fr" fo:country="FR" officeooo:paragraph-rsid="012be791" style:font-name-asian="Arial2" style:font-size-asian="10pt" style:font-name-complex="Arial2" style:font-size-complex="10pt"/>
+ </style:style>
+ <style:style style:name="P7" style:family="paragraph" style:parent-style-name="Standard" style:master-page-name="Perso_20_-_20_Première_20_page">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:contextual-spacing="false" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="11.033cm" style:auto-text-indent="false" style:page-number="auto" style:text-autospace="none"/>
+ <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Arial" fo:font-size="11pt" fo:language="fr" fo:country="FR" fo:font-weight="bold" officeooo:rsid="00e842d8" style:font-name-asian="Arial2" style:font-size-asian="11pt" style:font-weight-asian="bold" style:font-name-complex="Arial2" style:font-size-complex="11pt" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="P8" style:family="paragraph">
+ <style:paragraph-properties fo:text-align="start"/>
+ </style:style>
+ <style:style style:name="T1" style:family="text">
+ <style:text-properties fo:background-color="#ffff00" loext:char-shading-value="0"/>
+ </style:style>
+ <style:style style:name="T2" style:family="text">
+ <style:text-properties fo:background-color="#ffff00" loext:char-shading-value="0"/>
+ </style:style>
+ <style:style style:name="T3" style:family="text">
+ <style:text-properties style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="9pt" fo:font-weight="normal" style:font-size-asian="9pt" style:font-weight-asian="normal" style:font-size-complex="9pt" style:font-weight-complex="normal"/>
+ </style:style>
+ <style:style style:name="T4" style:family="text">
+ <style:text-properties style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="9pt" fo:font-weight="normal" officeooo:rsid="000a04a1" style:font-size-asian="9pt" style:font-weight-asian="normal" style:font-size-complex="9pt" style:font-weight-complex="normal"/>
+ </style:style>
+ <style:style style:name="T5" style:family="text">
+ <style:text-properties style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="9pt" fo:language="fr" fo:country="FR" fo:font-weight="normal" style:font-size-asian="9pt" style:font-weight-asian="normal" style:font-size-complex="9pt" style:font-weight-complex="normal"/>
+ </style:style>
+ <style:style style:name="T6" style:family="text">
+ <style:text-properties fo:language="fr" fo:country="FR" fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
+ </style:style>
+ <style:style style:name="gr1" style:family="graphic">
+ <style:graphic-properties loext:decorative="false" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="middle" style:vertical-rel="line" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" draw:wrap-influence-on-position="once-concurrent" loext:allow-overlap="true" style:flow-with-text="false"/>
+ </style:style>
+ <style:style style:name="gr2" style:family="graphic">
+ <style:graphic-properties draw:textarea-vertical-align="middle" loext:decorative="false" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="middle" style:vertical-rel="line" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" draw:wrap-influence-on-position="once-concurrent" loext:allow-overlap="true" style:flow-with-text="false"/>
+ </style:style>
+ <style:page-layout style:name="pm1">
+ <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:margin-left="0cm" fo:margin-right="0cm" style:shadow="none" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" style:layout-grid-base-height="0.706cm" style:layout-grid-ruby-height="0.353cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="false" style:layout-grid-display="false" style:footnote-max-height="2cm" loext:margin-gutter="0cm">
+ <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+ <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ </style:page-layout-properties>
+ <style:header-style>
+ <style:header-footer-properties fo:min-height="3.101cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.101cm" style:dynamic-spacing="false"/>
+ </style:header-style>
+ <style:footer-style>
+ <style:header-footer-properties fo:min-height="2.499cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.499cm" style:dynamic-spacing="false"/>
+ </style:footer-style>
+ </style:page-layout>
+ <style:page-layout style:name="pm2">
+ <style:page-layout-properties fo:page-width="20.999cm" fo:page-height="29.699cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" style:layout-grid-base-height="0.706cm" style:layout-grid-ruby-height="0.353cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="false" style:layout-grid-display="false" style:footnote-max-height="0cm" loext:margin-gutter="0cm">
+ <style:footnote-sep style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ </style:page-layout-properties>
+ <style:header-style/>
+ <style:footer-style/>
+ </style:page-layout>
+ <style:page-layout style:name="pm3">
+ <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="1cm" fo:margin-bottom="1cm" fo:margin-left="2cm" fo:margin-right="1cm" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" style:layout-grid-base-height="0.706cm" style:layout-grid-ruby-height="0.353cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="false" style:layout-grid-display="false" style:footnote-max-height="0cm" loext:margin-gutter="0cm">
+ <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ </style:page-layout-properties>
+ <style:header-style/>
+ <style:footer-style/>
+ </style:page-layout>
+ <style:page-layout style:name="pm4">
+ <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" style:layout-grid-base-height="0.706cm" style:layout-grid-ruby-height="0.353cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="false" style:layout-grid-display="false" style:footnote-max-height="0cm" loext:margin-gutter="0cm">
+ <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ </style:page-layout-properties>
+ <style:header-style/>
+ <style:footer-style/>
+ </style:page-layout>
+ <style:page-layout style:name="pm5">
+ <style:page-layout-properties fo:page-width="29.7cm" fo:page-height="21.001cm" style:num-format="1" style:print-orientation="landscape" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" style:layout-grid-base-height="0.706cm" style:layout-grid-ruby-height="0.353cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="false" style:layout-grid-display="false" style:footnote-max-height="0cm" loext:margin-gutter="0cm">
+ <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ </style:page-layout-properties>
+ <style:header-style/>
+ <style:footer-style/>
+ </style:page-layout>
+ <style:page-layout style:name="pm6">
+ <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:margin-left="0cm" fo:margin-right="0cm" style:shadow="none" fo:background-color="transparent" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" style:layout-grid-base-height="0.706cm" style:layout-grid-ruby-height="0.353cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="false" style:layout-grid-display="false" draw:fill="none" draw:fill-color="#729fcf" style:repeat="stretch" draw:fill-image-ref-point="top-left" style:footnote-max-height="2cm" loext:margin-gutter="0cm">
+ <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+ <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ </style:page-layout-properties>
+ <style:header-style>
+ <style:header-footer-properties fo:min-height="4.6cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.101cm" style:dynamic-spacing="false"/>
+ </style:header-style>
+ <style:footer-style>
+ <style:header-footer-properties fo:min-height="2.499cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.499cm" style:dynamic-spacing="false"/>
+ </style:footer-style>
+ </style:page-layout>
+ <style:style style:name="dp1" style:family="drawing-page">
+ <style:drawing-page-properties draw:background-size="full"/>
+ </style:style>
+ <style:style style:name="dp2" style:family="drawing-page">
+ <style:drawing-page-properties draw:fill="none" draw:background-size="border" draw:fill-color="#729fcf" style:repeat="stretch" draw:fill-image-ref-point="top-left"/>
+ </style:style>
+ </office:automatic-styles>
+ <office:master-styles>
+ <style:master-page style:name="Standard" style:page-layout-name="pm1" draw:style-name="dp1">
+ <style:header>
+ <text:p text:style-name="Header"/>
+ </style:header>
+ <style:footer>
+ <text:p text:style-name="P1">Page <text:page-number text:select-page="current">0</text:page-number><text:s/>/ <text:page-count>1</text:page-count><text:s text:c="2"/><text:span text:style-name="T1">Votre paraphe :</text:span></text:p>
+ <text:p text:style-name="P1"/>
+ </style:footer>
+ </style:master-page>
+ <style:master-page style:name="Endnote" style:page-layout-name="pm2" draw:style-name="dp1"/>
+ <style:master-page style:name="HTML" style:page-layout-name="pm3" draw:style-name="dp1"/>
+ <style:master-page style:name="First_20_Page" style:display-name="First Page" style:page-layout-name="pm4" draw:style-name="dp1" style:next-style-name="Standard"/>
+ <style:master-page style:name="Landscape" style:page-layout-name="pm5" draw:style-name="dp1"/>
+ <style:master-page style:name="Perso_20_-_20_Première_20_page" style:display-name="Perso - Première page" style:page-layout-name="pm6" draw:style-name="dp2" style:next-style-name="Standard">
+ <style:header>
+ <text:p text:style-name="Header"/>
+ </style:header>
+ <style:footer>
+ <text:p text:style-name="P1">Page <text:page-number text:select-page="current">1</text:page-number><text:s/>/ <text:page-count>1</text:page-count><text:s text:c="2"/><text:span text:style-name="T1">Votre paraphe :</text:span></text:p>
+ <text:p text:style-name="P1"/>
+ </style:footer>
+ </style:master-page>
+ </office:master-styles>
+ <office:body>
+ <office:text>
+ <office:forms form:automatic-focus="false" form:apply-design-mode="false">
+ <form:form form:name="Standard" form:command="biblio" form:datasource="Bibliography" form:apply-filter="true" form:command-type="table" form:control-implementation="ooo:com.sun.star.form.component.Form">
+ <form:properties>
+ <form:property form:property-name="PropertyChangeNotificationEnabled" office:value-type="boolean" office:boolean-value="true"/>
+ <form:property form:property-name="TargetURL" office:value-type="string" office:string-value=""/>
+ <form:property form:property-name="URL" office:value-type="string" office:string-value=""/>
+ </form:properties>
+ <form:checkbox form:name="CheckBox" form:control-implementation="ooo:com.sun.star.form.component.CheckBox" xml:id="control1" form:id="control1" form:input-required="false" form:current-state="checked" form:image-position="center">
+ <form:properties>
+ <form:property form:property-name="ControlTypeinMSO" office:value-type="float" office:value="0"/>
+ <form:property form:property-name="DefaultControl" office:value-type="string" office:string-value="com.sun.star.form.control.CheckBox"/>
+ <form:property form:property-name="ObjIDinMSO" office:value-type="float" office:value="0"/>
+ <form:property form:property-name="SecondaryRefValue" office:value-type="string" office:string-value=""/>
+ </form:properties>
+ </form:checkbox>
+ <form:radio form:name="Propriété" form:control-implementation="ooo:com.sun.star.form.component.RadioButton" xml:id="control2" form:id="control2" form:current-selected="true" form:data-field="Franchise" form:input-required="false" form:image-position="center">
+ <form:properties>
+ <form:property form:property-name="ControlTypeinMSO" office:value-type="float" office:value="0"/>
+ <form:property form:property-name="DefaultControl" office:value-type="string" office:string-value="com.sun.star.form.control.RadioButton"/>
+ <form:property form:property-name="ObjIDinMSO" office:value-type="float" office:value="0"/>
+ <form:property form:property-name="SecondaryRefValue" office:value-type="string" office:string-value=""/>
+ </form:properties>
+ </form:radio>
+ <form:radio form:name="Propriété" form:control-implementation="ooo:com.sun.star.form.component.RadioButton" xml:id="control3" form:id="control3" form:data-field="Franchise" form:input-required="false" form:image-position="center">
+ <form:properties>
+ <form:property form:property-name="ControlTypeinMSO" office:value-type="float" office:value="0"/>
+ <form:property form:property-name="DefaultControl" office:value-type="string" office:string-value="com.sun.star.form.control.RadioButton"/>
+ <form:property form:property-name="ObjIDinMSO" office:value-type="float" office:value="0"/>
+ <form:property form:property-name="SecondaryRefValue" office:value-type="string" office:string-value=""/>
+ </form:properties>
+ </form:radio>
+ <form:radio form:name="Propriété" form:control-implementation="ooo:com.sun.star.form.component.RadioButton" xml:id="control4" form:id="control4" form:data-field="Franchise" form:input-required="false" form:image-position="center">
+ <form:properties>
+ <form:property form:property-name="ControlTypeinMSO" office:value-type="float" office:value="0"/>
+ <form:property form:property-name="DefaultControl" office:value-type="string" office:string-value="com.sun.star.form.control.RadioButton"/>
+ <form:property form:property-name="ObjIDinMSO" office:value-type="float" office:value="0"/>
+ <form:property form:property-name="SecondaryRefValue" office:value-type="string" office:string-value=""/>
+ </form:properties>
+ </form:radio>
+ <form:listbox form:name="List Box 1" form:control-implementation="ooo:com.sun.star.form.component.ListBox" xml:id="control5" form:id="control5" form:dropdown="true" form:size="20" form:data-field="Address" form:input-required="false" form:bound-column="1" form:list-source-type="sql" form:list-source="SELECT &quot;Address&quot;, &quot;Address&quot; FROM &quot;biblio&quot;">
+ <form:properties>
+ <form:property form:property-name="ControlTypeinMSO" office:value-type="float" office:value="0"/>
+ <form:property form:property-name="DefaultControl" office:value-type="string" office:string-value="com.sun.star.form.control.ListBox"/>
+ <form:list-property form:property-name="DefaultSelection" office:value-type="float"/>
+ <form:property form:property-name="MouseWheelBehavior" office:value-type="float" office:value="0"/>
+ <form:property form:property-name="ObjIDinMSO" office:value-type="float" office:value="65535"/>
+ <form:list-property form:property-name="TypedItemList" office:value-type="float"/>
+ </form:properties>
+ </form:listbox>
+ </form:form>
+ </office:forms>
+ <text:sequence-decls>
+ <text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
+ <text:sequence-decl text:display-outline-level="0" text:name="Table"/>
+ <text:sequence-decl text:display-outline-level="0" text:name="Text"/>
+ <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
+ <text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
+ </text:sequence-decls>
+ <text:user-field-decls>
+ <text:user-field-decl office:value-type="string" office:string-value="" text:name="SEQ CHAPTER \h \r 1"/>
+ </text:user-field-decls>
+ <text:p text:style-name="P7"/>
+ <text:p text:style-name="P3"><text:tab/><text:tab/></text:p>
+ <text:p text:style-name="P5"><text:span text:style-name="T3"><draw:control text:anchor-type="as-char" draw:z-index="0" draw:name="Forme1" draw:style-name="gr2" draw:text-style-name="P8" svg:width="0.265cm" svg:height="0.265cm" draw:control="control2"/></text:span><text:span text:style-name="T3"><text:s/>Propriétaire <text:tab/></text:span><text:span text:style-name="T3"><draw:control text:anchor-type="as-char" draw:z-index="1" draw:name="Forme2" draw:style-name="gr2" draw:text-style-name="P8" svg:width="0.265cm" svg:height="0.265cm" draw:control="control3"/></text:span><text:span text:style-name="T3"> Locataire<text:tab/><text:tab/></text:span><text:span text:style-name="T3"><draw:control text:anchor-type="as-char" draw:z-index="2" draw:name="Forme3" draw:style-name="gr2" draw:text-style-name="P8" svg:width="0.265cm" svg:height="0.265cm" draw:control="control4"/></text:span><text:span text:style-name="T3"> </text:span><text:span text:style-name="T4">Occupant à titre gratuit</text:span></text:p>
+ <text:p text:style-name="P6"/>
+ <text:p text:style-name="P4"><text:span text:style-name="T5"><draw:control text:anchor-type="as-char" draw:z-index="3" draw:name="Forme21" draw:style-name="gr2" draw:text-style-name="P8" svg:width="0.315cm" svg:height="0.265cm" draw:control="control1"/></text:span><text:span text:style-name="T6"><text:s/>Incendie<text:tab/></text:span></text:p>
+ <text:p text:style-name="P4"><text:span text:style-name="T6"/></text:p>
+ <text:p text:style-name="P4"><text:span text:style-name="T6"><text:tab/></text:span><text:span text:style-name="T6"><draw:control text:anchor-type="as-char" draw:z-index="4" draw:name="Control 1" draw:style-name="gr1" draw:text-style-name="P8" svg:width="3.901cm" svg:height="0.63cm" draw:control="control5"/></text:span></text:p>
+ </office:text>
+ </office:body>
+</office:document> \ No newline at end of file
diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
index d2811f32fb..38e3629497 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
@@ -41,6 +41,7 @@
#include <vcl/filter/PDFiumLibrary.hxx>
#include <comphelper/propertyvalue.hxx>
+#include <cmath>
using namespace ::com::sun::star;
@@ -4851,6 +4852,61 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf156528)
bounds.getHeight(), 1);
}
+// Form controls coordinates scrambled when exporting to pdf with unchecked form creation in Writer
+CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf159817)
+{
+ aMediaDescriptor["FilterName"] <<= OUString("writer_pdf_Export");
+
+ // Enable PDF/UA
+ uno::Sequence<beans::PropertyValue> aFilterData(
+ comphelper::InitPropertySequence({ { "ExportFormFields", uno::Any(false) } }));
+ aMediaDescriptor["FilterData"] <<= aFilterData;
+ saveAsPDF(u"tdf159817.fodt");
+
+ std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport();
+
+ CPPUNIT_ASSERT_EQUAL(1, pPdfDocument->getPageCount());
+ std::unique_ptr<vcl::pdf::PDFiumPage> pPdfPage = pPdfDocument->openPage(/*nIndex=*/0);
+ CPPUNIT_ASSERT(pPdfPage);
+ std::unique_ptr<vcl::pdf::PDFiumTextPage> pTextPage = pPdfPage->getTextPage();
+ CPPUNIT_ASSERT(pTextPage);
+
+ // So I extracted these values by using SAL_WARN(... << ...getMinimum()), but it appears
+ // that the C++ stream operators do not output double values with sufficient resolution for me
+ // to recreate those values in code, sigh, so resort to rounding things.
+ auto roundPoint = [&pPdfPage](int i) {
+ auto p = pPdfPage->getObject(i)->getBounds().getMinimum();
+ return basegfx::B2DPoint(std::floor(p.getX() * 10) / 10.0,
+ std::floor(p.getY() * 10) / 10.0);
+ };
+ // before the fix these co-ordinates would have been way further down the page
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(8.6, 677.3), roundPoint(13));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(9.3, 677.9), roundPoint(14));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(9.8, 678.5), roundPoint(15));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(85.0, 677.3), roundPoint(16));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(85.6, 677.9), roundPoint(17));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(170.1, 677.3), roundPoint(18));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(170.6, 677.9), roundPoint(19));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(0.0, 654.0), roundPoint(20));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(0.6, 654.6), roundPoint(21));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(1.3, 655.5), roundPoint(22));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(1.3, 655.5), roundPoint(23));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(1.2, 655.5), roundPoint(24));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(1.2, 655.5), roundPoint(25));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(1.4, 655.5), roundPoint(26));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(1.4, 655.5), roundPoint(27));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(1.1, 655.5), roundPoint(28));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(1.1, 655.5), roundPoint(29));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(1.5, 655.5), roundPoint(30));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(1.5, 655.5), roundPoint(31));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(1.0, 655.5), roundPoint(32));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(1.0, 655.5), roundPoint(33));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(28.3, 641.4), roundPoint(34));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(28.3, 623.7), roundPoint(35));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(28.3, 623.8), roundPoint(36));
+ CPPUNIT_ASSERT_EQUAL(basegfx::B2DPoint(138.6, 623.7), roundPoint(37));
+}
+
} // end anonymous namespace
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/vcl/qt5/QtFrame.cxx b/vcl/qt5/QtFrame.cxx
index 24dcb5ff6f..6aff814aac 100644
--- a/vcl/qt5/QtFrame.cxx
+++ b/vcl/qt5/QtFrame.cxx
@@ -376,6 +376,20 @@ void QtFrame::SetIcon(sal_uInt16 nIcon)
QIcon aIcon = QIcon::fromTheme(appicon);
m_pQWidget->window()->setWindowIcon(aIcon);
+
+ if (QGuiApplication::platformName() == "wayland" && m_pQWidget->window()->isVisible())
+ {
+ // Qt currently doesn't provide API to directly set the app_id for a single
+ // window/toplevel on Wayland, but the one set for the application is picked up
+ // on hide/show, so do that.
+ // An alternative would be to use private Qt API and low-level wayland API to set the
+ // app_id directly, s. discussion in QTBUG-77182.
+ const QString sOrigDesktopFileName = QGuiApplication::desktopFileName();
+ QGuiApplication::setDesktopFileName(appicon);
+ m_pQWidget->window()->hide();
+ m_pQWidget->window()->show();
+ QGuiApplication::setDesktopFileName(sOrigDesktopFileName);
+ }
}
void QtFrame::SetMenu(SalMenu*) {}
diff --git a/vcl/qt5/QtInstance.cxx b/vcl/qt5/QtInstance.cxx
index 4880c1bdec..f87cdef934 100644
--- a/vcl/qt5/QtInstance.cxx
+++ b/vcl/qt5/QtInstance.cxx
@@ -708,6 +708,11 @@ std::unique_ptr<QApplication> QtInstance::CreateQApplication(int& nArgc, char**
// for scaled icons in the native menus
QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
#endif
+ // force Qt::HighDpiScaleFactorRoundingPolicy::Round, which is the Qt 5 default
+ // policy and prevents incorrect rendering with the Qt 6 default policy
+ // Qt::HighDpiScaleFactorRoundingPolicy::PassThrough (tdf#159915)
+ QGuiApplication::setHighDpiScaleFactorRoundingPolicy(
+ Qt::HighDpiScaleFactorRoundingPolicy::Round);
FreeableCStr session_manager;
if (getenv("SESSION_MANAGER") != nullptr)
diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx
index ac06f445e0..138f17d0d4 100644
--- a/vcl/source/control/button.cxx
+++ b/vcl/source/control/button.cxx
@@ -2530,6 +2530,7 @@ void RadioButton::Draw( OutputDevice* pDev, const Point& rPos,
if ( !maImage )
{
MapMode aResMapMode( MapUnit::Map100thMM );
+ Point aPos = pDev->LogicToPixel( rPos );
Size aSize = GetSizePixel();
Size aImageSize = pDev->LogicToPixel( Size( 300, 300 ), aResMapMode );
Size aBrd1Size = pDev->LogicToPixel( Size( 20, 20 ), aResMapMode );
@@ -2563,7 +2564,7 @@ void RadioButton::Draw( OutputDevice* pDev, const Point& rPos,
pDev->SetTextColor( GetTextColor() );
pDev->SetTextFillColor();
- ImplDraw( pDev, nFlags, rPos, aSize,
+ ImplDraw( pDev, nFlags, aPos, aSize,
aImageSize, aStateRect, aMouseRect );
Point aCenterPos = aStateRect.Center();
@@ -3353,6 +3354,7 @@ void CheckBox::Draw( OutputDevice* pDev, const Point& rPos,
SystemTextColorFlags nFlags )
{
MapMode aResMapMode( MapUnit::Map100thMM );
+ Point aPos = pDev->LogicToPixel( rPos );
Size aSize = GetSizePixel();
Size aImageSize = pDev->LogicToPixel( Size( 300, 300 ), aResMapMode );
Size aBrd1Size = pDev->LogicToPixel( Size( 20, 20 ), aResMapMode );
@@ -3389,7 +3391,7 @@ void CheckBox::Draw( OutputDevice* pDev, const Point& rPos,
pDev->SetTextColor( GetTextColor() );
pDev->SetTextFillColor();
- ImplDraw( pDev, nFlags, rPos, aSize,
+ ImplDraw( pDev, nFlags, aPos, aSize,
aImageSize, aStateRect, aMouseRect );
pDev->SetLineColor();
diff --git a/vcl/source/control/combobox.cxx b/vcl/source/control/combobox.cxx
index 2a979b70b0..82520cc765 100644
--- a/vcl/source/control/combobox.cxx
+++ b/vcl/source/control/combobox.cxx
@@ -1152,6 +1152,7 @@ void ComboBox::Draw( OutputDevice* pDev, const Point& rPos, SystemTextColorFlags
{
GetMainWindow()->ApplySettings(*pDev);
+ Point aPos = pDev->LogicToPixel( rPos );
Size aSize = GetSizePixel();
vcl::Font aFont = GetMainWindow()->GetDrawPixelFont( pDev );
@@ -1167,7 +1168,7 @@ void ComboBox::Draw( OutputDevice* pDev, const Point& rPos, SystemTextColorFlags
bool bBackground = IsControlBackground();
if ( bBorder || bBackground )
{
- tools::Rectangle aRect( rPos, aSize );
+ tools::Rectangle aRect( aPos, aSize );
// aRect.Top() += nEditHeight;
if ( bBorder )
{
@@ -1191,7 +1192,7 @@ void ComboBox::Draw( OutputDevice* pDev, const Point& rPos, SystemTextColorFlags
// First, draw the edit part
Size aOrigSize(m_pImpl->m_pSubEdit->GetSizePixel());
m_pImpl->m_pSubEdit->SetSizePixel(Size(aSize.Width(), nEditHeight));
- m_pImpl->m_pSubEdit->Draw( pDev, rPos, nFlags );
+ m_pImpl->m_pSubEdit->Draw( pDev, aPos, nFlags );
m_pImpl->m_pSubEdit->SetSizePixel(aOrigSize);
// Second, draw the listbox
@@ -1219,14 +1220,14 @@ void ComboBox::Draw( OutputDevice* pDev, const Point& rPos, SystemTextColorFlags
}
}
- tools::Rectangle aClip( rPos, aSize );
+ tools::Rectangle aClip( aPos, aSize );
pDev->IntersectClipRegion( aClip );
sal_Int32 nLines = static_cast<sal_Int32>( nTextHeight > 0 ? (aSize.Height()-nEditHeight)/nTextHeight : 1 );
if ( !nLines )
nLines = 1;
const sal_Int32 nTEntry = IsReallyVisible() ? m_pImpl->m_pImplLB->GetTopEntry() : 0;
- tools::Rectangle aTextRect( rPos, aSize );
+ tools::Rectangle aTextRect( aPos, aSize );
aTextRect.AdjustLeft(3*nOnePixel );
aTextRect.AdjustRight( -(3*nOnePixel) );
diff --git a/vcl/source/gdi/mtfxmldump.cxx b/vcl/source/gdi/mtfxmldump.cxx
index e6b1adc80e..2792297fee 100644
--- a/vcl/source/gdi/mtfxmldump.cxx
+++ b/vcl/source/gdi/mtfxmldump.cxx
@@ -63,8 +63,6 @@ OUString collectPushFlags(vcl::PushFlags nFlags)
aStrings.emplace_back("PushTextLanguage");
if (nFlags & vcl::PushFlags::OVERLINECOLOR)
aStrings.emplace_back("PushOverlineColor");
- if (nFlags & vcl::PushFlags::RTLENABLED)
- aStrings.emplace_back("PushRTLEnabled");
OUString aString;
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index c7ef07ff49..a5365e681b 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -2775,7 +2775,7 @@ bool PDFWriterImpl::emitType3Font(const vcl::font::PhysicalFontFace* pFace,
aLine.setLength(0);
aLine.append(OString::number(nStream)
+ " 0 obj\n<</Length "
- + OString::number(aContents.getLength())
+ + OString::number(aContents.getLength() - 1) // Trailing newline doesn't count
+ ">>\nstream\n");
if (!writeBuffer(aLine))
return false;
diff --git a/vcl/source/gdi/print.cxx b/vcl/source/gdi/print.cxx
index 401d38118c..2519e5ca44 100644
--- a/vcl/source/gdi/print.cxx
+++ b/vcl/source/gdi/print.cxx
@@ -1487,6 +1487,14 @@ sal_uInt16 Printer::GetPaperBinBySourceIndex(sal_uInt16 nPaperSource) const
return mpInfoPrinter->GetPaperBinBySourceIndex( &maJobSetup.ImplGetConstData(), nPaperSource );
}
+sal_uInt16 Printer::GetSourceIndexByPaperBin(sal_uInt16 nPaperBin) const
+{
+ if (IsDisplayPrinter())
+ return 0;
+
+ return mpInfoPrinter->GetSourceIndexByPaperBin( &maJobSetup.ImplGetConstData(), nPaperBin);
+}
+
void Printer::SetCopyCount( sal_uInt16 nCopy, bool bCollate )
{
mnCopyCount = nCopy;
diff --git a/vcl/source/outdev/stack.cxx b/vcl/source/outdev/stack.cxx
index 129348051e..72ef63af55 100644
--- a/vcl/source/outdev/stack.cxx
+++ b/vcl/source/outdev/stack.cxx
@@ -84,9 +84,6 @@ void OutputDevice::Push(vcl::PushFlags nFlags)
if (nFlags & vcl::PushFlags::REFPOINT && mbRefPoint)
rState.mpRefPoint = maRefPoint;
- if (nFlags & vcl::PushFlags::RTLENABLED)
- rState.mbRTLEnabled = IsRTLEnabled();
-
if (mpAlphaVDev)
mpAlphaVDev->Push();
}
@@ -187,9 +184,6 @@ void OutputDevice::Pop()
SetRefPoint();
}
- if ( rState.mnFlags & vcl::PushFlags::RTLENABLED )
- EnableRTL( rState.mbRTLEnabled );
-
maOutDevStateStack.pop_back();
mpMetaFile = pOldMetaFile;
diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx
index a98703ca25..de2222b4bc 100644
--- a/vcl/source/window/paint.cxx
+++ b/vcl/source/window/paint.cxx
@@ -1523,7 +1523,7 @@ void Window::ImplPaintToDevice( OutputDevice* i_pTargetOutDev, const Point& i_rP
VclPtrInstance<VirtualDevice> pMaskedDevice(*i_pTargetOutDev,
DeviceFormat::WITH_ALPHA);
- pMaskedDevice->SetOutputSizePixel( GetOutputSizePixel() );
+ pMaskedDevice->SetOutputSizePixel( GetOutputSizePixel(), true, true );
pMaskedDevice->EnableRTL( IsRTLEnabled() );
aMtf.WindStart();
aMtf.Play(*pMaskedDevice);
diff --git a/vcl/source/window/tabpage.cxx b/vcl/source/window/tabpage.cxx
index 612b17d272..b97becf2e0 100644
--- a/vcl/source/window/tabpage.cxx
+++ b/vcl/source/window/tabpage.cxx
@@ -163,6 +163,7 @@ void TabPage::Paint( vcl::RenderContext& rRenderContext, const tools::Rectangle&
void TabPage::Draw( OutputDevice* pDev, const Point& rPos, SystemTextColorFlags )
{
+ Point aPos = pDev->LogicToPixel( rPos );
Size aSize = GetSizePixel();
Wallpaper aWallpaper = GetBackground();
@@ -174,14 +175,14 @@ void TabPage::Draw( OutputDevice* pDev, const Point& rPos, SystemTextColorFlags
pDev->SetLineColor();
if ( aWallpaper.IsBitmap() )
- pDev->DrawBitmapEx( rPos, aSize, aWallpaper.GetBitmap() );
+ pDev->DrawBitmapEx( aPos, aSize, aWallpaper.GetBitmap() );
else
{
if( aWallpaper.GetColor() == COL_AUTO )
pDev->SetFillColor( GetSettings().GetStyleSettings().GetDialogColor() );
else
pDev->SetFillColor( aWallpaper.GetColor() );
- pDev->DrawRect( tools::Rectangle( rPos, aSize ) );
+ pDev->DrawRect( tools::Rectangle( aPos, aSize ) );
}
pDev->Pop();
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index c3fa7fb3d7..d683f9b415 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -224,6 +224,7 @@ void Window::dispose()
Reference< XComponent> xC( mpWindowImpl->mxAccessible, UNO_QUERY );
if ( xC.is() )
xC->dispose();
+ mpWindowImpl->mxAccessible.clear();
}
ImplSVData* pSVData = ImplGetSVData();
diff --git a/vcl/unx/generic/print/genprnpsp.cxx b/vcl/unx/generic/print/genprnpsp.cxx
index ce5a45624d..1e7edb8e09 100644
--- a/vcl/unx/generic/print/genprnpsp.cxx
+++ b/vcl/unx/generic/print/genprnpsp.cxx
@@ -643,6 +643,11 @@ sal_uInt16 PspSalInfoPrinter::GetPaperBinBySourceIndex( const ImplJobSetup*, sal
return 0xffff;
}
+sal_uInt16 PspSalInfoPrinter::GetSourceIndexByPaperBin(const ImplJobSetup*, sal_uInt16)
+{
+ return 0;
+}
+
sal_uInt32 PspSalInfoPrinter::GetCapabilities( const ImplJobSetup* pJobSetup, PrinterCapType nType )
{
switch( nType )
diff --git a/vcl/unx/gtk3/salnativewidgets-gtk.cxx b/vcl/unx/gtk3/salnativewidgets-gtk.cxx
index bfdeed4238..391baed222 100644
--- a/vcl/unx/gtk3/salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/salnativewidgets-gtk.cxx
@@ -355,7 +355,6 @@ static GtkWidget* gCacheWindow;
static GtkWidget* gDumbContainer;
#if GTK_CHECK_VERSION(4, 0, 0)
static GtkWidget* gVScrollbar;
-static GtkWidget* gHScrollbar;
static GtkWidget* gTextView;
#else
static GtkWidget* gComboBox;
@@ -363,6 +362,7 @@ static GtkWidget* gListBox;
static GtkWidget* gSpinBox;
static GtkWidget* gTreeViewWidget;
#endif
+static GtkWidget* gHScrollbar;
static GtkWidget* gEntryBox;
namespace
@@ -2625,10 +2625,11 @@ bool GtkSalGraphics::updateSettings(AllSettings& rSettings)
// set scrollbar settings
gint min_slider_length = 21;
+ GtkRequisition natural_horz_scroll_size;
+ gtk_widget_get_preferred_size(gHScrollbar, nullptr, &natural_horz_scroll_size);
+
#if GTK_CHECK_VERSION(4, 0, 0)
- GtkRequisition natural_size;
- gtk_widget_get_preferred_size(gHScrollbar, nullptr, &natural_size);
- aStyleSet.SetScrollBarSize(natural_size.height);
+ aStyleSet.SetScrollBarSize(natural_horz_scroll_size.height);
#else
// Grab some button style attributes
Size aSize;
@@ -2646,6 +2647,10 @@ bool GtkSalGraphics::updateSettings(AllSettings& rSettings)
if (has_forward || has_backward || has_forward2 || has_backward2)
QuerySize(mpHScrollbarButtonStyle, aSize);
+ // Recent breeze (Mar 2024) has 17 vs 10, while Adwaita still reports 14 vs 14.
+ if (natural_horz_scroll_size.height > aSize.Height())
+ aSize.setHeight(natural_horz_scroll_size.height);
+
aStyleSet.SetScrollBarSize(aSize.Height());
gtk_style_context_get(mpVScrollbarSliderStyle, gtk_style_context_get_state(mpVScrollbarSliderStyle),
@@ -2932,15 +2937,16 @@ GtkSalGraphics::GtkSalGraphics( GtkSalFrame *pFrame, GtkWidget *pWindow )
mpToolButtonStyle = gtk_widget_get_style_context(GTK_WIDGET(pButton));
#endif
+ gHScrollbar = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, nullptr);
+ gtk_fixed_put(GTK_FIXED(gDumbContainer), gHScrollbar, 0, 0);
+ gtk_widget_show(gHScrollbar);
+
#if GTK_CHECK_VERSION(4, 0, 0)
gVScrollbar = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, nullptr);
gtk_fixed_put(GTK_FIXED(gDumbContainer), gVScrollbar, 0, 0);
gtk_widget_show(gVScrollbar);
mpVScrollbarStyle = gtk_widget_get_style_context(gVScrollbar);
- gHScrollbar = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, nullptr);
- gtk_fixed_put(GTK_FIXED(gDumbContainer), gHScrollbar, 0, 0);
- gtk_widget_show(gHScrollbar);
mpHScrollbarStyle = gtk_widget_get_style_context(gHScrollbar);
gTextView = gtk_text_view_new();
diff --git a/vcl/win/gdi/salprn.cxx b/vcl/win/gdi/salprn.cxx
index 065b060196..aeb3e2b876 100644
--- a/vcl/win/gdi/salprn.cxx
+++ b/vcl/win/gdi/salprn.cxx
@@ -1215,6 +1215,22 @@ sal_uInt16 WinSalInfoPrinter::GetPaperBinBySourceIndex( const ImplJobSetup* pSet
return 0xffff;
}
+sal_uInt16 WinSalInfoPrinter::GetSourceIndexByPaperBin(const ImplJobSetup* pSetupData, sal_uInt16 nPaperBin)
+{
+ DWORD nBins = ImplDeviceCaps( this, DC_BINNAMES, nullptr, pSetupData );
+ if (nBins != GDI_ERROR)
+ {
+ auto pBuffer = std::make_unique<sal_uInt16[]>(nBins);
+ DWORD nBins = ImplDeviceCaps( this, DC_BINS, reinterpret_cast<BYTE*>(pBuffer.get()), pSetupData );
+ if (nBins != GDI_ERROR && nBins > nPaperBin)
+ {
+ return *(pBuffer.get() + nPaperBin);
+ }
+ }
+ return 0;
+}
+
+
sal_uInt32 WinSalInfoPrinter::GetCapabilities( const ImplJobSetup* pSetupData, PrinterCapType nType )
{
DWORD nRet;