[Libreoffice-commits] .: vcl/aqua vcl/inc vcl/ios

2013-01-19 Thread Libreoffice Gerrit user
 vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx |6 -
 vcl/aqua/source/gdi/coretext/salcoretextlayout.cxx|   55 --
 vcl/aqua/source/gdi/coretext/salcoretextstyle.cxx |   16 ++---
 vcl/aqua/source/gdi/coretext/salgdi.cxx   |   30 -
 vcl/inc/aqua/common.h |6 -
 vcl/inc/ios/common.h  |6 -
 vcl/ios/source/gdi/salcoretextfontutils.cxx   |6 -
 vcl/ios/source/gdi/salcoretextlayout.cxx  |   55 --
 vcl/ios/source/gdi/salcoretextstyle.cxx   |   16 ++---
 vcl/ios/source/gdi/salgdi.cxx |   30 -
 10 files changed, 100 insertions(+), 126 deletions(-)

New commits:
commit fcf7f3596054f24bebf767f9cabfc96dfa577480
Author: Tor Lillqvist t...@iki.fi
Date:   Sat Jan 19 10:44:33 2013 +0200

Use SAL_INFO instead of home-grown msgs_debug

If there is a need to optionally get a thread identifier or the
function name into logging output (as msgs_debug did), we should
figure out a way to do that in some elegant fashion in the sal logging
macros instead of using some local solution in just one place in the
code.

Yes, the iOS and OS X CoreText code should be de-duplicated. Will
happen soon.

diff --git a/vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx 
b/vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx
index 4646e77..f14e9c7 100644
--- a/vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx
+++ b/vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx
@@ -274,7 +274,7 @@ CoreTextPhysicalFontFace::CoreTextPhysicalFontFace( const 
ImplDevFontAttributes
 ,   m_bHasCJKSupport( false )
 ,   m_bFontCapabilitiesRead( false )
 {
-msgs_debug(font,retain %p as %p,font, m_CTFontRef);
+SAL_INFO( vcl.coretext.font, retain   font   as   m_CTFontRef 
);
 }
 
 CoreTextPhysicalFontFace::~CoreTextPhysicalFontFace()
@@ -283,7 +283,7 @@ CoreTextPhysicalFontFace::~CoreTextPhysicalFontFace()
 {
 m_pCharMap-DeReference();
 }
-msgs_debug(font,release font %p, m_CTFontRef);
+SAL_INFO( vcl.coretext.font, release   m_CTFontRef );
 SafeCFRelease(m_CTFontRef);
 }
 
@@ -297,7 +297,7 @@ PhysicalFontFace* CoreTextPhysicalFontFace::Clone() const
 if( m_CTFontRef )
 {
 pClone-m_CTFontRef = (CTFontRef)CFRetain(m_CTFontRef);
-msgs_debug(font,clone ref %p into %p, m_CTFontRef, 
pClone-m_CTFontRef);
+SAL_INFO( vcl.coretext.font, clone   m_CTFontRef   into   
pClone-m_CTFontRef );
 }
 return pClone;
 }
diff --git a/vcl/aqua/source/gdi/coretext/salcoretextlayout.cxx 
b/vcl/aqua/source/gdi/coretext/salcoretextlayout.cxx
index 32b547b..e20bcba 100644
--- a/vcl/aqua/source/gdi/coretext/salcoretextlayout.cxx
+++ b/vcl/aqua/source/gdi/coretext/salcoretextlayout.cxx
@@ -53,14 +53,14 @@ CoreTextLayout::~CoreTextLayout()
 
 void CoreTextLayout::AdjustLayout( ImplLayoutArgs /*rArgs*/ )
 {
-msgs_debug(layout,--);
-msgs_debug(layout,--);
+SAL_INFO( vcl.coretext.layout, -- );
+SAL_INFO( vcl.coretext.layout, -- );
 /* TODO */
 }
 
 void CoreTextLayout::Clean()
 {
-msgs_debug(layout,--);
+SAL_INFO( vcl.coretext.layout, -- );
 if(m_glyphs)
 {
 delete[] m_glyphs;
@@ -94,12 +94,12 @@ void CoreTextLayout::Clean()
 SafeCFRelease(m_typesetter);
 SafeCFRelease(m_line);
 m_has_bound_rec = false;
-msgs_debug(layout,--);
+SAL_INFO( vcl.coretext.layout, -- );
 }
 
 void CoreTextLayout::DrawText( SalGraphics rGraphics ) const
 {
-msgs_debug(layout,--);
+SAL_INFO( vcl.coretext.layout, -- );
 AquaSalGraphics gr = static_castAquaSalGraphics(rGraphics);
 if(m_chars_count = 0 || !gr.CheckContext())
 {
@@ -108,19 +108,18 @@ void CoreTextLayout::DrawText( SalGraphics rGraphics ) 
const
 CGContextSaveGState( gr.mrContext );
 Point pos = GetDrawPosition(Point(0,0));
 #if 0
-msgs_debug(layout,at pos (%ld, %ld), pos.X(), pos.Y());
+SAL_INFO( vcl.coretext.layout, at pos (  pos.X()  ,  pos.Y() 
 ) );
 CGContextSetTextMatrix(gr.mrContext, CGAffineTransformMakeScale(1.0, 
-1.0));
 CGContextSetShouldAntialias( gr.mrContext, !gr.mbNonAntialiasedText );
 CGContextSetTextPosition(gr.mrContext, pos.X(), pos.Y());
 CTLineDraw(m_line, gr.mrContext);
 #else
 InitGIA();
-msgs_debug(layout,at- pos (%ld, %ld) ctfont=%p, pos.X(), pos.Y(),
-   m_style-GetFont());
+SAL_INFO( vcl.coretext.layout, at pos (  pos.X()  ,  pos.Y() 
) ctfont=  m_style-GetFont() );
 CGFontRef cg_font = CTFontCopyGraphicsFont(m_style-GetFont(), NULL);
 if(!cg_font)
 {
-msgs_debug(layout, Error cg_font is %s, NULL);
+SAL_INFO( vcl.coretext.layout, Error cg_font is NULL );
 return;
 }
 CGContextSetFont(gr.mrContext, cg_font);
@@ -144,7 +143,7 @@ void CoreTextLayout::DrawText( SalGraphics rGraphics ) 
const
 #endif
 // restore the original 

[Libreoffice-commits] .: vcl/aqua vcl/inc

2013-01-03 Thread Libreoffice Gerrit user
 vcl/aqua/source/window/salframe.cxx|   58 -
 vcl/aqua/source/window/salframeview.mm |   37 -
 vcl/inc/aqua/salframeview.h|2 -
 3 files changed, 97 deletions(-)

New commits:
commit 15938c2480a0de8c3ce5bc7289cf3df2d73918ac
Author: Tor Lillqvist t...@iki.fi
Date:   Thu Jan 3 21:55:35 2013 +0200

fdo#58963: Revert fdo#39983: Support Mac OS X 10.7 full-screen mode

It caused breakage of the existing slide-show full-screen mode. So
let's revert for now.

diff --git a/vcl/aqua/source/window/salframe.cxx 
b/vcl/aqua/source/window/salframe.cxx
index 388dffd..da36cfa 100644
--- a/vcl/aqua/source/window/salframe.cxx
+++ b/vcl/aqua/source/window/salframe.cxx
@@ -46,25 +46,6 @@
 #include Carbon/Carbon.h
 #include postmac.h
 
-#if MACOSX_SDK_VERSION  1070
-
-enum {
-NSFullScreenWindowMask = (1  14)
-};
-
-enum {
-NSWindowCollectionBehaviorFullScreenPrimary = (1  7),
-NSWindowCollectionBehaviorFullScreenAuxiliary = (1  8)
-};
-
-#if MACOSX_SDK_VERSION  1050
-
-typedef NSUInteger NSWindowCollectionBehavior;
-
-#endif
-
-#endif
-
 using namespace std;
 
 // ===
@@ -214,31 +195,6 @@ void AquaSalFrame::initWindowAndView()
 return;
 }
 
-// On 10.7 and later, if the window is suitable and is
-// resizable, we make it full-screenable.
-
-bool bAllowFullScreen = (0 == (mnStyle  (SAL_FRAME_STYLE_DIALOG | 
SAL_FRAME_STYLE_TOOLTIP | SAL_FRAME_STYLE_SYSTEMCHILD | SAL_FRAME_STYLE_FLOAT | 
SAL_FRAME_STYLE_TOOLWINDOW | SAL_FRAME_STYLE_INTRO)));
-bAllowFullScreen = (0 == (~mnStyle  (SAL_FRAME_STYLE_SIZEABLE)));
-bAllowFullScreen = (mpParent == NULL);
-
-if (GetSalData()-mnSystemVersion = 0x1070 
-   ((mnStyleMask  NSTitledWindowMask)  (mnStyleMask  
NSResizableWindowMask))) {
-
-// Hmm. The docs say that one should use NSInvocation whenever
-// the method does not return an object. collectionBehavior
-// returns an NSWindowCollectionBehavior (NSUInteger). So
-// should I? Or maybe I should just use the low-level
-// objc_msgSend()?
-NSWindowCollectionBehavior behavior = (NSWindowCollectionBehavior) 
[mpWindow performSelector: @selector(collectionBehavior)];
-
-SAL_INFO(vcl.macosx, OSL_THIS_FUNC  : bAllowFullScreen=  
bAllowFullScreen  , behavior=  hex  behavior);
-
-[mpWindow performSelector: @selector(setCollectionBehavior:) 
withObject: (id) (behavior | (bAllowFullScreen ? 
NSWindowCollectionBehaviorFullScreenPrimary : 
NSWindowCollectionBehaviorFullScreenAuxiliary))];
-
-behavior = (NSWindowCollectionBehavior) [mpWindow performSelector: 
@selector(collectionBehavior)];
-SAL_INFO(vcl.macosx, OSL_THIS_FUNC  : after 
setCollectionBehavior: behavior=  hex  behavior);
-}
-
 if( (mnStyle  SAL_FRAME_STYLE_TOOLTIP) )
 [mpWindow setIgnoresMouseEvents: YES];
 else
@@ -791,20 +747,6 @@ void AquaSalFrame::ShowFullScreen( sal_Bool bFullScreen, 
sal_Int32 nDisplay )
 
 mbFullScreen = bFullScreen;
 
-if (GetSalData()-mnSystemVersion = 0x1070) {
-// If the system full-screen state already is our desired, do nothing
-if ((([mpWindow styleMask]  NSFullScreenWindowMask) == 
NSFullScreenWindowMask) == mbFullScreen)
-return;
-
-SAL_INFO(vcl.macosx, OSL_THIS_FUNC  : calling 
toggleFullScreen());
-
-// Otherwise toggle the system full-screen state
-[mpWindow performSelector: @selector(toggleFullScreen:)];
-
-// Nothing more to do?
-return;
-}
-
 if( bFullScreen )
 {
 // hide the dock and the menubar if we are on the menu screen
diff --git a/vcl/aqua/source/window/salframeview.mm 
b/vcl/aqua/source/window/salframeview.mm
index 621b982..d6861a4 100644
--- a/vcl/aqua/source/window/salframeview.mm
+++ b/vcl/aqua/source/window/salframeview.mm
@@ -273,43 +273,6 @@ static AquaSalFrame* getMouseContainerFrame()
 }
 }
 
--(void)windowDidEnterFullScreen: (NSNotification*)pNotification
-{
-(void)pNotification;
-YIELD_GUARD;
-
-if( !mpFrame || !AquaSalFrame::isAlive( mpFrame))
-return;
-
-SAL_INFO(vcl.macosx, OSL_THIS_FUNC  : mbFullScreen was   
mpFrame-mbFullScreen);
-
-mpFrame-mbFullScreen = true;
-}
-
--(void)windowDidExitFullScreen: (NSNotification*)pNotification
-{
-(void)pNotification;
-YIELD_GUARD;
-
-if( !mpFrame || !AquaSalFrame::isAlive( mpFrame))
-return;
-
-SAL_INFO(vcl.macosx, OSL_THIS_FUNC  : mbFullScreen was   
mpFrame-mbFullScreen);
-
-mpFrame-mbFullScreen = false;
-
-// Without this, if viewing the Start Centre in the system
-// full-screen state, when going back using the system's
-// unfulscreen menubar button, the Start Centre ends up
-// garbled. For some reason the same doesn't happen in Writer,
-// Calc etc.
-if( mpFrame-mbShown )
-{
-

[Libreoffice-commits] .: vcl/aqua vcl/inc

2012-12-21 Thread Libreoffice Gerrit user
 vcl/aqua/source/window/salframe.cxx|   54 +
 vcl/aqua/source/window/salframeview.mm |   37 ++
 vcl/inc/aqua/salframeview.h|2 +
 3 files changed, 93 insertions(+)

New commits:
commit b2e5a39babba902707dab28d81b843d1aef055dc
Author: Tor Lillqvist t...@iki.fi
Date:   Fri Dec 21 15:26:36 2012 +0200

fdo#39983: Support Mac OS X 10.7 full-screen mode

Should be good enough for now, at least doesn't break any existing
functionality if you don't use the system provided full-screen
buttons. Should continue to compile against older SDKs but still work
also on newer OSes.

There are some known glitches. For instance if you choose View:Full
Screen, the window does go into the system full-screen state, but if
you then use the system unfullscreen button on the (now no longer
disabled, but hidden) menubar, LO keeps displaying its own small
floating unfullscreen dialog...

I also occasionally managed to get some menus in the menubar borked
with no text!? But as traditionally a full-screened LO has no menubar
at all, technically that isn't a regression;)

Partially based on my own old patch, partially on
http://svn.apache.org/viewvc?view=revisionrevision=1423520 ,
http://svn.apache.org/viewvc?view=revisionrevision=1423523 by Herbert
Duerr h...@apache.org.

Change-Id: I546c58f7cee9f8cb6c746eb014d8d5a8af3619cb

diff --git a/vcl/aqua/source/window/salframe.cxx 
b/vcl/aqua/source/window/salframe.cxx
index 5aa6f0f..b836784 100644
--- a/vcl/aqua/source/window/salframe.cxx
+++ b/vcl/aqua/source/window/salframe.cxx
@@ -46,6 +46,18 @@
 #include Carbon/Carbon.h
 #include postmac.h
 
+#if !defined(MAC_OS_X_VERSION_10_7)
+
+enum {
+NSFullScreenWindowMask = (1  14)
+};
+
+enum {
+NSWindowCollectionBehaviorFullScreenPrimary = (1  7),
+NSWindowCollectionBehaviorFullScreenAuxiliary = (1  8)
+};
+
+#endif
 
 using namespace std;
 
@@ -196,6 +208,31 @@ void AquaSalFrame::initWindowAndView()
 return;
 }
 
+// On 10.7 and later, if the window is suitable and is
+// resizable, we make it full-screenable.
+
+bool bAllowFullScreen = (0 == (mnStyle  (SAL_FRAME_STYLE_DIALOG | 
SAL_FRAME_STYLE_TOOLTIP | SAL_FRAME_STYLE_SYSTEMCHILD | SAL_FRAME_STYLE_FLOAT | 
SAL_FRAME_STYLE_TOOLWINDOW | SAL_FRAME_STYLE_INTRO)));
+bAllowFullScreen = (0 == (~mnStyle  (SAL_FRAME_STYLE_SIZEABLE)));
+bAllowFullScreen = (mpParent == NULL);
+
+if (GetSalData()-mnSystemVersion = 0x1070 
+   ((mnStyleMask  NSTitledWindowMask)  (mnStyleMask  
NSResizableWindowMask))) {
+
+// Hmm. The docs say that one should use NSInvocation whenever
+// the method does not return an object. collectionBehavior
+// returns an NSWindowCollectionBehavior (NSUInteger). So
+// should I? Or maybe I should just use the low-level
+// objc_msgSend()?
+NSWindowCollectionBehavior behavior = (NSWindowCollectionBehavior) 
[mpWindow performSelector: @selector(collectionBehavior)];
+
+SAL_INFO(vcl.macosx, OSL_THIS_FUNC  : bAllowFullScreen=  
bAllowFullScreen  , behavior=  hex  behavior);
+
+[mpWindow performSelector: @selector(setCollectionBehavior:) 
withObject: (id) (behavior | (bAllowFullScreen ? 
NSWindowCollectionBehaviorFullScreenPrimary : 
NSWindowCollectionBehaviorFullScreenAuxiliary))];
+
+behavior = (NSWindowCollectionBehavior) [mpWindow performSelector: 
@selector(collectionBehavior)];
+SAL_INFO(vcl.macosx, OSL_THIS_FUNC  : after 
setCollectionBehavior: behavior=  hex  behavior);
+}
+
 if( (mnStyle  SAL_FRAME_STYLE_TOOLTIP) )
 [mpWindow setIgnoresMouseEvents: YES];
 else
@@ -741,10 +778,27 @@ void AquaSalFrame::ShowFullScreen( sal_Bool bFullScreen, 
sal_Int32 nDisplay )
 // #i113170# may not be the main thread if called from UNO API
 SalData::ensureThreadAutoreleasePool();
 
+SAL_INFO(vcl.macosx, OSL_THIS_FUNC  : mbFullScreen=  mbFullScreen 
 , bFullScreen=  bFullScreen);
+
 if( mbFullScreen == bFullScreen )
 return;
 
 mbFullScreen = bFullScreen;
+
+if (GetSalData()-mnSystemVersion = 0x1070) {
+// If the system full-screen state already is our desired, do nothing
+if ((([mpWindow styleMask]  NSFullScreenWindowMask) == 
NSFullScreenWindowMask) == mbFullScreen)
+return;
+
+SAL_INFO(vcl.macosx, OSL_THIS_FUNC  : calling 
toggleFullScreen());
+
+// Otherwise toggle the system full-screen state
+[mpWindow performSelector: @selector(toggleFullScreen:)];
+
+// Nothing more to do?
+return;
+}
+
 if( bFullScreen )
 {
 // hide the dock and the menubar if we are on the menu screen
diff --git a/vcl/aqua/source/window/salframeview.mm 
b/vcl/aqua/source/window/salframeview.mm
index d6861a4..621b982 100644
--- a/vcl/aqua/source/window/salframeview.mm
+++ 

[Libreoffice-commits] .: vcl/aqua vcl/inc

2012-09-21 Thread Libreoffice Gerrit user
 vcl/aqua/source/gdi/atsui/salgdi.cxx |   29 +++--
 vcl/inc/aqua/atsui/salgdi.h  |1 +
 2 files changed, 28 insertions(+), 2 deletions(-)

New commits:
commit f1651ee579bf38a49b839dbcb28ac38c0163a3d2
Author: Sergey Farbotka z8serge...@gmail.com
Date:   Fri Sep 21 14:12:09 2012 +0200

Fix fdo#55142 - wrong character pos calculation on mac.

Change-Id: If8a0f527102b70bf1dcf292f8df31aaff9fba5c8

diff --git a/vcl/aqua/source/gdi/atsui/salgdi.cxx 
b/vcl/aqua/source/gdi/atsui/salgdi.cxx
index 5c0bff7..a57068d 100644
--- a/vcl/aqua/source/gdi/atsui/salgdi.cxx
+++ b/vcl/aqua/source/gdi/atsui/salgdi.cxx
@@ -354,6 +354,8 @@ AquaSalGraphics::AquaSalGraphics()
 {
 // create the style object for font attributes
 ATSUCreateStyle( maATSUStyle );
+
+ResetFontStyle();
 }
 
 // ---
@@ -579,6 +581,29 @@ bool AquaSalGraphics::AddTempDevFont( ImplDevFontList*,
 
 // ---
 
+void AquaSalGraphics::ResetFontStyle()
+{
+ATSUClearStyle(maATSUStyle);
+
+// Set justification attributes
+ATSJustPriorityWidthDeltaOverrides nPriorityJustOverrides;
+memset(nPriorityJustOverrides, 0, sizeof(nPriorityJustOverrides));
+
+nPriorityJustOverrides[kJUSTLetterPriority].growFlags = 
kJUSTOverrideLimits;
+nPriorityJustOverrides[kJUSTLetterPriority].shrinkFlags = 
kJUSTOverrideLimits;
+
+ATSUAttributeTagtheTag = kATSUPriorityJustOverrideTag;
+ByteCount   theSize = 
sizeof(ATSJustPriorityWidthDeltaOverrides);
+ATSUAttributeValuePtr   thePtr = nPriorityJustOverrides;
+OSStatus eStatus = ATSUSetAttributes(maATSUStyle, 1, theTag, theSize, 
thePtr);
+if (eStatus != noErr)
+{
+DBG_WARNING(AquaSalGraphics::ResetFontStyle() : Could not override 
justification attributes!\n);
+}
+}
+
+// ---
+
 // callbacks from ATSUGlyphGetCubicPaths() fore GetGlyphOutline()
 struct GgoData { basegfx::B2DPolygon maPolygon; basegfx::B2DPolyPolygon* 
mpPolyPoly; };
 
@@ -698,7 +723,7 @@ sal_uInt16 AquaSalGraphics::SetFont( FontSelectPattern* 
pReqFont, int /*nFallbac
 {
 if( !pReqFont )
 {
-ATSUClearStyle( maATSUStyle );
+ResetFontStyle();
 mpMacFontData = NULL;
 return 0;
 }
@@ -784,7 +809,7 @@ sal_uInt16 AquaSalGraphics::SetFont( FontSelectPattern* 
pReqFont, int /*nFallbac
 if( eStatus != noErr )
 {
 DBG_WARNING( AquaSalGraphics::SetFont() : Could not set font 
attributes!\n);
-ATSUClearStyle( maATSUStyle );
+ResetFontStyle();
 mpMacFontData = NULL;
 return 0;
 }
diff --git a/vcl/inc/aqua/atsui/salgdi.h b/vcl/inc/aqua/atsui/salgdi.h
index 19fe1f4..eeb7aa4 100644
--- a/vcl/inc/aqua/atsui/salgdi.h
+++ b/vcl/inc/aqua/atsui/salgdi.h
@@ -353,6 +353,7 @@ private:
 bool GetRawFontData( const PhysicalFontFace* pFontData,
  std::vectorunsigned char rBuffer,
  bool* pJustCFF );
+void ResetFontStyle();
 };
 
 // --- some trivial inlines
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] .: vcl/aqua vcl/inc

2012-09-19 Thread Libreoffice Gerrit user
 vcl/aqua/source/a11y/aqua11ytextattributeswrapper.mm |2 -
 vcl/aqua/source/dtrans/DropTarget.cxx|9 +
 vcl/aqua/source/dtrans/PictToBmpFlt.cxx  |   16 --
 vcl/aqua/source/gdi/atsui/salatslayout.cxx   |8 ++---
 vcl/aqua/source/gdi/coretext/salcoretextlayout.cxx   |4 +-
 vcl/aqua/source/gdi/coretext/salgdi.cxx  |2 -
 vcl/aqua/source/gdi/salbmp.cxx   |2 -
 vcl/aqua/source/gdi/salgdicommon.cxx |   30 +--
 vcl/aqua/source/gdi/salnativewidgets.cxx |2 -
 vcl/aqua/source/gdi/salprn.cxx   |2 -
 vcl/aqua/source/window/salframe.cxx  |6 +--
 vcl/aqua/source/window/salframeview.mm   |6 +--
 vcl/inc/aqua/atsui/salgdi.h  |8 ++---
 vcl/inc/aqua/common.h|2 -
 vcl/inc/aqua/coretext/salcoretextlayout.hxx  |4 +-
 vcl/inc/aqua/coretext/salgdi.h   |   12 +--
 vcl/inc/aqua/salframe.h  |2 -
 vcl/inc/aqua/salgdicommon.hxx|4 +-
 18 files changed, 77 insertions(+), 44 deletions(-)

New commits:
commit 25f935bfb44b87271eb11e719c4d1fb8624bdd02
Author: Tor Lillqvist t...@iki.fi
Date:   Thu Sep 20 00:54:36 2012 +0300

64-bit fixes

Change-Id: I268ccab01e030535f04ef1256dc702b07cbc6611

diff --git a/vcl/aqua/source/a11y/aqua11ytextattributeswrapper.mm 
b/vcl/aqua/source/a11y/aqua11ytextattributeswrapper.mm
index 31978a6..4b38b15 100644
--- a/vcl/aqua/source/a11y/aqua11ytextattributeswrapper.mm
+++ b/vcl/aqua/source/a11y/aqua11ytextattributeswrapper.mm
@@ -107,7 +107,7 @@ using namespace ::rtl;
 
 +(void)addColor:(sal_Int32)salColor forAttribute:(NSString *)attribute 
andRange:(NSRange)range toString:(NSMutableAttributedString *)string {
 if ( salColor != -1 ) {
-float elements[] = { salColor  0x00ff, salColor  0xff00, 
salColor  0x00ff };
+CGFloat elements[] = { salColor  0x00ff, salColor  0xff00, 
salColor  0x00ff };
 CGColorRef color = CGColorCreate ( CGColorSpaceCreateWithName ( 
kCGColorSpaceGenericRGB ), elements );
 [ string addAttribute: attribute value: (id) color range: range ];
 CGColorRelease ( color );
diff --git a/vcl/aqua/source/dtrans/DropTarget.cxx 
b/vcl/aqua/source/dtrans/DropTarget.cxx
index bb46e21..c799d92 100644
--- a/vcl/aqua/source/dtrans/DropTarget.cxx
+++ b/vcl/aqua/source/dtrans/DropTarget.cxx
@@ -296,6 +296,7 @@ NSDragOperation DropTarget::draggingUpdated(id sender)
   //NSLog(@Drag update: Source actions: %x proposed action %x selected 
action %x, mDragSourceSupportedActions, currentAction, mSelectedDropAction);
 }
 
+#ifndef __LP64__
   // Weird but it appears as if there is no method in Cocoa
   // to create a kThemeCopyArrowCursor hence we have to use
   // Carbon to do it
@@ -305,7 +306,9 @@ NSDragOperation DropTarget::draggingUpdated(id sender)
 SetThemeCursor(kThemeCopyArrowCursor);
   else
 SetThemeCursor(kThemeArrowCursor);
-
+#else
+  // FIXME: SetThemeCursor replacement?
+#endif
   return dragOp;
 }
 
@@ -316,7 +319,9 @@ void DropTarget::draggingExited(id /*sender*/)
 fire_dragExit(dte);
 mDragSourceSupportedActions = DNDConstants::ACTION_NONE;
 mSelectedDropAction = DNDConstants::ACTION_NONE;
+#ifndef __LP64__
 SetThemeCursor(kThemeArrowCursor);
+#endif
 }
 
 
@@ -370,7 +375,9 @@ void DropTarget::concludeDragOperation(id /*sender*/)
 mDragSourceSupportedActions = DNDConstants::ACTION_NONE;
 mSelectedDropAction = DNDConstants::ACTION_NONE;
 mXCurrentDragClipboard = uno::ReferenceXClipboard();
+#ifndef __LP64__
 SetThemeCursor(kThemeArrowCursor);
+#endif
 }
 
 
diff --git a/vcl/aqua/source/dtrans/PictToBmpFlt.cxx 
b/vcl/aqua/source/dtrans/PictToBmpFlt.cxx
index 8a545da..0bbb33b 100644
--- a/vcl/aqua/source/dtrans/PictToBmpFlt.cxx
+++ b/vcl/aqua/source/dtrans/PictToBmpFlt.cxx
@@ -39,6 +39,11 @@ bool PICTtoBMP(com::sun::star::uno::Sequencesal_Int8 
aPict,
 
   bool result = false;
 
+#ifdef __LP64__
+  // FIXME
+  (void) aPict;
+  (void) aBmp;
+#else
   ComponentInstance bmpExporter;
   if (OpenADefaultComponent(GraphicsExporterComponentType,
 kQTFileTypeBMP,
@@ -78,7 +83,7 @@ bool PICTtoBMP(com::sun::star::uno::Sequencesal_Int8 aPict,
   DisposeHandle(hPict);
   DisposeHandle(hBmp);
   CloseComponent(bmpExporter);
-
+#endif
   return result;
 }
 
@@ -103,12 +108,17 @@ bool BMPtoPICT(com::sun::star::uno::Sequencesal_Int8 
aBmp,
   bool result = false;
 
   Handle hBmp;
-  ComponentInstance pictExporter;
   if ((PtrToHand(aBmp.getArray(), hBmp, aBmp.getLength()) != noErr))
 {
   return result;
 }
 
+#ifdef __LP64__
+  // FIXME
+  (void) aPict;
+#else
+  ComponentInstance pictExporter;
+
   if (OpenADefaultComponent(GraphicsImporterComponentType,
 

[Libreoffice-commits] .: vcl/aqua vcl/inc

2012-09-11 Thread Libreoffice Gerrit user
 vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx |   40 +-
 vcl/aqua/source/gdi/coretext/salcoretextlayout.cxx|   25 +--
 vcl/aqua/source/gdi/coretext/salcoretextstyle.cxx |7 ++-
 vcl/aqua/source/gdi/coretext/salgdi.cxx   |   19 ++--
 vcl/inc/aqua/coretext/salcoretextstyle.hxx|3 -
 vcl/inc/aqua/coretext/salgdi.h|6 --
 6 files changed, 57 insertions(+), 43 deletions(-)

New commits:
commit 5aaef82232f7f51ddd658f3ad34903f3fe7107d4
Author: Norbert Thiebaud nthieb...@gmail.com
Date:   Sat Jul 14 00:13:40 2012 +0200

coretext: use only the FontFace ref from the Style

Change-Id: I696065f6f60fb55eaa24e4a8b4cbff1e93856f04
Reviewed-on: https://gerrit.libreoffice.org/306
Reviewed-by: Norbert Thiebaud nthieb...@gmail.com
Tested-by: Norbert Thiebaud nthieb...@gmail.com

diff --git a/vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx 
b/vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx
index a54cfb9..d02838a 100644
--- a/vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx
+++ b/vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx
@@ -196,24 +196,31 @@ SystemFontList::SystemFontList()
 {
 CFArrayRef font_descriptors = 
CTFontCollectionCreateMatchingFontDescriptors(font_collection);
 
-for(int i = 0; i  CFArrayGetCount(font_descriptors); i++)
+if(font_descriptors)
 {
-CTFontDescriptorRef font_descriptor = 
(CTFontDescriptorRef)CFArrayGetValueAtIndex(font_descriptors, i);
-CTFontRef font = CTFontCreateWithFontDescriptor(font_descriptor, 
0, NULL);
-ImplDevFontAttributes devfont_attr;
-if(GetDevFontAttributes( font_descriptor, devfont_attr ) )
+for(int i = 0; i  CFArrayGetCount(font_descriptors); i++)
 {
-CoreTextPhysicalFontFace* font_data = new 
CoreTextPhysicalFontFace(devfont_attr, font);
-if(font_data  font_data-GetCTFont())
+CTFontDescriptorRef font_descriptor = 
(CTFontDescriptorRef)CFArrayGetValueAtIndex(font_descriptors, i);
+CTFontRef font = 
CTFontCreateWithFontDescriptor(font_descriptor, 0, NULL);
+if(font)
 {
-m_aFontContainer [ font_data-GetCTFont() ] = font_data;
+ImplDevFontAttributes devfont_attr;
+if(GetDevFontAttributes( font_descriptor, devfont_attr ) )
+{
+CoreTextPhysicalFontFace* font_face = new 
CoreTextPhysicalFontFace(devfont_attr, font);
+if(font_face  font_face-GetCTFont())
+{
+m_aFontContainer [ font_face-GetCTFont() ] = 
font_face;
+}
+}
+CFRelease(font);
 }
 }
-CFRelease(font);
+CFRelease(font_descriptors);
 }
-CFRelease(font_descriptors);
+CFRelease(font_collection);
 }
-CFRelease(font_collection);
+
 }
 
 SystemFontList::~SystemFontList()
@@ -250,6 +257,7 @@ CoreTextPhysicalFontFace::CoreTextPhysicalFontFace( const 
ImplDevFontAttributes
 ,   m_bHasCJKSupport( false )
 ,   m_bFontCapabilitiesRead( false )
 {
+msgs_debug(font,retain %p as %p,font, m_CTFontRef);
 }
 
 CoreTextPhysicalFontFace::~CoreTextPhysicalFontFace()
@@ -258,10 +266,8 @@ CoreTextPhysicalFontFace::~CoreTextPhysicalFontFace()
 {
 m_pCharMap-DeReference();
 }
-if( m_CTFontRef )
-{
-CFRelease(m_CTFontRef);
-}
+msgs_debug(font,release font %p, m_CTFontRef);
+SafeCFRelease(m_CTFontRef);
 }
 
 PhysicalFontFace* CoreTextPhysicalFontFace::Clone() const
@@ -274,6 +280,7 @@ PhysicalFontFace* CoreTextPhysicalFontFace::Clone() const
 if( m_CTFontRef )
 {
 pClone-m_CTFontRef = (CTFontRef)CFRetain(m_CTFontRef);
+msgs_debug(font,clone ref %p into %p, m_CTFontRef, 
pClone-m_CTFontRef);
 }
 return pClone;
 }
@@ -391,9 +398,6 @@ bool CoreTextPhysicalFontFace::GetRawFontData( 
std::vectorunsigned char rBuff
 if(CFF_table)
 {
 *pJustCFF = CFDataGetLength(CFF_table) ? true : false;
-}
-if(CFF_table)
-{
 CFRelease(CFF_table);
 return true;
 }
diff --git a/vcl/aqua/source/gdi/coretext/salcoretextlayout.cxx 
b/vcl/aqua/source/gdi/coretext/salcoretextlayout.cxx
index 408f2b2..07ff289 100644
--- a/vcl/aqua/source/gdi/coretext/salcoretextlayout.cxx
+++ b/vcl/aqua/source/gdi/coretext/salcoretextlayout.cxx
@@ -98,8 +98,14 @@ void CoreTextLayout::DrawText( SalGraphics rGraphics ) const
 CTLineDraw(m_line, gr.mrContext);
 #else
 InitGIA();
-msgs_debug(layout,at- pos (%ld, %ld), pos.X(), pos.Y());
+msgs_debug(layout,at- pos (%ld, %ld) ctfont=%p, pos.X(), pos.Y(),
+   m_style-GetFont());
 CGFontRef cg_font 

[Libreoffice-commits] .: vcl/aqua vcl/inc

2012-08-30 Thread Libreoffice Gerrit user
 vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx |   26 +-
 vcl/aqua/source/gdi/coretext/salcoretextstyle.cxx |   13 -
 vcl/aqua/source/gdi/coretext/salgdi.cxx   |   16 +--
 vcl/inc/aqua/coretext/salcoretextfontutils.hxx|   12 
 vcl/inc/aqua/coretext/salcoretextstyle.hxx|4 +-
 vcl/inc/aqua/coretext/salgdi.h|2 -
 6 files changed, 36 insertions(+), 37 deletions(-)

New commits:
commit e1b61b2dafd8e84c60f5ae0eebf04165ea55d353
Author: Norbert Thiebaud nthieb...@gmail.com
Date:   Mon Jul 2 11:37:15 2012 -0500

rename ImplCoreTextFontData in CoreTextPhysicalFontFace

Change-Id: Idcf9c21ab1a16b8d83f925aa742f1a5aa7089bc3
Reviewed-on: https://gerrit.libreoffice.org/305
Reviewed-by: Norbert Thiebaud nthieb...@gmail.com
Tested-by: Norbert Thiebaud nthieb...@gmail.com

diff --git a/vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx 
b/vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx
index faaf11b..a54cfb9 100644
--- a/vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx
+++ b/vcl/aqua/source/gdi/coretext/salcoretextfontutils.cxx
@@ -203,7 +203,7 @@ SystemFontList::SystemFontList()
 ImplDevFontAttributes devfont_attr;
 if(GetDevFontAttributes( font_descriptor, devfont_attr ) )
 {
-ImplCoreTextFontData* font_data = new 
ImplCoreTextFontData(devfont_attr, font);
+CoreTextPhysicalFontFace* font_data = new 
CoreTextPhysicalFontFace(devfont_attr, font);
 if(font_data  font_data-GetCTFont())
 {
 m_aFontContainer [ font_data-GetCTFont() ] = font_data;
@@ -224,7 +224,7 @@ SystemFontList::~SystemFontList()
 m_aFontContainer.clear();
 }
 
-ImplCoreTextFontData* SystemFontList::GetFontDataFromRef( CTFontRef font ) 
const
+CoreTextPhysicalFontFace* SystemFontList::GetFontDataFromRef( CTFontRef font ) 
const
 {
 CoreTextFontContainer::const_iterator it = m_aFontContainer.find( font );
 return it == m_aFontContainer.end() ? NULL : (*it).second;
@@ -240,7 +240,7 @@ void SystemFontList::AnnounceFonts( ImplDevFontList 
rFontList ) const
 }
 }
 
-ImplCoreTextFontData::ImplCoreTextFontData( const ImplDevFontAttributes rDFA, 
CTFontRef font )
+CoreTextPhysicalFontFace::CoreTextPhysicalFontFace( const 
ImplDevFontAttributes rDFA, CTFontRef font )
 :   PhysicalFontFace( rDFA, 0 )
 ,   m_CTFontRef((CTFontRef)CFRetain(font))
 ,   m_pCharMap( NULL )
@@ -252,7 +252,7 @@ ImplCoreTextFontData::ImplCoreTextFontData( const 
ImplDevFontAttributes rDFA, C
 {
 }
 
-ImplCoreTextFontData::~ImplCoreTextFontData()
+CoreTextPhysicalFontFace::~CoreTextPhysicalFontFace()
 {
 if( m_pCharMap )
 {
@@ -264,9 +264,9 @@ ImplCoreTextFontData::~ImplCoreTextFontData()
 }
 }
 
-PhysicalFontFace* ImplCoreTextFontData::Clone() const
+PhysicalFontFace* CoreTextPhysicalFontFace::Clone() const
 {
-ImplCoreTextFontData* pClone = new ImplCoreTextFontData(*this);
+CoreTextPhysicalFontFace* pClone = new CoreTextPhysicalFontFace(*this);
 if( m_pCharMap )
 {
 m_pCharMap-AddReference();
@@ -278,12 +278,12 @@ PhysicalFontFace* ImplCoreTextFontData::Clone() const
 return pClone;
 }
 
-ImplFontEntry* ImplCoreTextFontData::CreateFontInstance(FontSelectPattern 
rFSD) const
+ImplFontEntry* CoreTextPhysicalFontFace::CreateFontInstance(FontSelectPattern 
rFSD) const
 {
 return new ImplFontEntry(rFSD);
 }
 
-const ImplFontCharMap* ImplCoreTextFontData::GetImplFontCharMap()
+const ImplFontCharMap* CoreTextPhysicalFontFace::GetImplFontCharMap()
 {
 // return the cached charmap
 if( m_pCharMap )
@@ -316,7 +316,7 @@ const ImplFontCharMap* 
ImplCoreTextFontData::GetImplFontCharMap()
 return m_pCharMap;
 }
 
-bool ImplCoreTextFontData::GetImplFontCapabilities(vcl::FontCapabilities 
rFontCapabilities)
+bool CoreTextPhysicalFontFace::GetImplFontCapabilities(vcl::FontCapabilities 
rFontCapabilities)
 {
 // read this only once per font
 if( m_bFontCapabilitiesRead )
@@ -380,7 +380,7 @@ void addTable(struct font_table* table, CTFontTableTag tag, 
CFDataRef data)
 }
 }
 
-bool ImplCoreTextFontData::GetRawFontData( std::vectorunsigned char 
rBuffer, bool* pJustCFF ) const
+bool CoreTextPhysicalFontFace::GetRawFontData( std::vectorunsigned char 
rBuffer, bool* pJustCFF ) const
 {
 bool rc;
 int table_count = 0;
@@ -528,7 +528,7 @@ bool ImplCoreTextFontData::GetRawFontData( 
std::vectorunsigned char rBuffer,
 return rc;
 }
 
-void ImplCoreTextFontData::DetermineCJKSupport_OS2(CFDataRef rOS2Table)
+void CoreTextPhysicalFontFace::DetermineCJKSupport_OS2(CFDataRef rOS2Table)
 {
 if(CFDataGetLength(rOS2Table) = 48)
 {
@@ -545,7 +545,7 @@ void 
ImplCoreTextFontData::DetermineCJKSupport_OS2(CFDataRef rOS2Table)
 }
 }
 
-void ImplCoreTextFontData::DetermineCJKSupport_cmap(CFDataRef rCmapTable)
+void 

[Libreoffice-commits] .: vcl/aqua vcl/inc vcl/ios vcl/unx vcl/win

2012-07-01 Thread Ivan Timofeev
 vcl/aqua/source/gdi/salnativewidgets.cxx |2 --
 vcl/inc/vcl/salnativewidgets.hxx |5 -
 vcl/ios/source/gdi/salnativewidgets.cxx  |1 -
 vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx |8 +---
 vcl/unx/kde/salnativewidgets-kde.cxx |1 -
 vcl/unx/kde4/KDESalGraphics.cxx  |7 ---
 vcl/win/source/gdi/salnativewidgets-luna.cxx |   17 -
 7 files changed, 1 insertion(+), 40 deletions(-)

New commits:
commit 914c8163e3a5014d9d2885444b6383f6fdcea529
Author: Ivan Timofeev timofeev@gmail.com
Date:   Sun Jul 1 15:18:59 2012 +0400

vcl: CTRL_FIXEDBORDER is dead since ef877aab7e

Change-Id: I568b55c3b0b799bdc91ba081e7375debce9618aa

diff --git a/vcl/aqua/source/gdi/salnativewidgets.cxx 
b/vcl/aqua/source/gdi/salnativewidgets.cxx
index df6c6fa..bb7392e 100644
--- a/vcl/aqua/source/gdi/salnativewidgets.cxx
+++ b/vcl/aqua/source/gdi/salnativewidgets.cxx
@@ -314,7 +314,6 @@ sal_Bool AquaSalGraphics::IsNativeControlSupported( 
ControlType nType, ControlPa
 case CTRL_TAB_ITEM:
 case CTRL_TAB_PANE:
 case CTRL_TAB_BODY:  // see vcl/source/window/tabpage.cxx
-case CTRL_FIXEDBORDER:
 if( nPart == PART_ENTIRE_CONTROL ||
 nPart == PART_TABS_DRAW_RTL ||
 nPart == HAS_BACKGROUND_TEXTURE )
@@ -517,7 +516,6 @@ sal_Bool AquaSalGraphics::drawNativeControl(ControlType 
nType,
 }
 break;
 
-case CTRL_FIXEDBORDER:
 case CTRL_TOOLBAR:
 {
 HIThemeMenuItemDrawInfo aMenuItemDrawInfo;
diff --git a/vcl/inc/vcl/salnativewidgets.hxx b/vcl/inc/vcl/salnativewidgets.hxx
index c082b38..a3c9bab 100644
--- a/vcl/inc/vcl/salnativewidgets.hxx
+++ b/vcl/inc/vcl/salnativewidgets.hxx
@@ -109,11 +109,6 @@ typedef sal_uInt32  ControlType;
 // A separator line
 #define CTRL_FIXEDLINE  80
 
-// A rectangular border, like a
-// Tab Pane, but without the
-// possible gap for a tab
-#define CTRL_FIXEDBORDER90
-
 // A toolbar control with buttons and a grip
 #define CTRL_TOOLBAR100
 
diff --git a/vcl/ios/source/gdi/salnativewidgets.cxx 
b/vcl/ios/source/gdi/salnativewidgets.cxx
index c2d5068..71dda98 100644
--- a/vcl/ios/source/gdi/salnativewidgets.cxx
+++ b/vcl/ios/source/gdi/salnativewidgets.cxx
@@ -121,7 +121,6 @@ sal_Bool IosSalGraphics::IsNativeControlSupported( 
ControlType nType, ControlPar
 case CTRL_TAB_ITEM:
 case CTRL_TAB_PANE:
 case CTRL_TAB_BODY:  // see vcl/source/window/tabpage.cxx
-case CTRL_FIXEDBORDER:
 if( nPart == PART_ENTIRE_CONTROL ||
 nPart == PART_TABS_DRAW_RTL ||
 nPart == HAS_BACKGROUND_TEXTURE )
diff --git a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx 
b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
index 2b5d3c8..7735a74 100644
--- a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
@@ -592,7 +592,6 @@ sal_Bool GtkSalGraphics::IsNativeControlSupported( 
ControlType nType, ControlPar
 case CTRL_TAB_ITEM:
 case CTRL_TAB_PANE:
 case CTRL_TAB_BODY:
-case CTRL_FIXEDBORDER:
 if(nPart==PART_ENTIRE_CONTROL || nPart==PART_TABS_DRAW_RTL)
 return true;
 break;
@@ -870,7 +869,7 @@ sal_Bool GtkSalGraphics::drawNativeControl(ControlType 
nType,
 {
 returnVal = NWPaintGTKComboBox( gdkDrawable, nType, nPart, aCtrlRect, 
aClip, nState, aValue, rCaption );
 }
-else if ( (nType==CTRL_TAB_ITEM) || (nType==CTRL_TAB_PANE) || 
(nType==CTRL_TAB_BODY) || (nType==CTRL_FIXEDBORDER) )
+else if ( (nType==CTRL_TAB_ITEM) || (nType==CTRL_TAB_PANE) || 
(nType==CTRL_TAB_BODY) )
 {
 if ( nType == CTRL_TAB_BODY )
 returnVal = sal_True;
@@ -2593,7 +2592,6 @@ sal_Bool GtkSalGraphics::NWPaintGTKTabItem( ControlType 
nType, ControlPart,
 case CTRL_TAB_BODY:
 break;
 
-case CTRL_FIXEDBORDER:
 case CTRL_TAB_PANE:
 gtk_paint_box_gap( gWidgetData[m_nXScreen].gNotebookWidget-style, 
pixmap, GTK_STATE_NORMAL, GTK_SHADOW_OUT, NULL, 
gWidgetData[m_nXScreen].gNotebookWidget,
 (char *)notebook, 0, 0, pixmapRect.GetWidth(), 
pixmapRect.GetHeight(), GTK_POS_TOP, 0, 0 );
@@ -2633,10 +2631,6 @@ sal_Bool GtkSalGraphics::NWPaintGTKTabItem( ControlType 
nType, ControlPart,
 break;
 }
 
-// Crux seems to think it can make the pane without a left edge
-if ( nType == CTRL_FIXEDBORDER )
-pixmapRect.Move( 1, 0 );
-
 // cache data
 if( nType == CTRL_TAB_ITEM )
 aCacheItems.Fill( nType, nState, pixmapRect, pixmap );
diff --git a/vcl/unx/kde/salnativewidgets-kde.cxx 
b/vcl/unx/kde/salnativewidgets-kde.cxx
index e9e4d65..6e9871b 100644
--- a/vcl/unx/kde/salnativewidgets-kde.cxx
+++ b/vcl/unx/kde/salnativewidgets-kde.cxx
@@ -1215,7 +1215,6 @@ sal_Bool KDESalGraphics::IsNativeControlSupported( 
ControlType nType, 

[Libreoffice-commits] .: vcl/aqua vcl/inc vcl/ios vcl/source vcl/unx vcl/win

2011-09-28 Thread Stephan Bergmann
 vcl/aqua/source/app/salinst.cxx   |7 +--
 vcl/inc/salinst.hxx   |2 +-
 vcl/ios/source/app/salinst.cxx|7 +--
 vcl/source/app/svapp.cxx  |   14 +-
 vcl/unx/generic/plugadapt/salplug.cxx |7 +--
 vcl/win/source/app/salinst.cxx|2 +-
 6 files changed, 30 insertions(+), 9 deletions(-)

New commits:
commit 01e0b770a5ce58de44283465ba51b03a1ee0db0c
Author: Stephan Bergmann sberg...@redhat.com
Date:   Wed Sep 28 15:08:45 2011 +0200

Let SalAbort dump core on developer builds.

diff --git a/vcl/aqua/source/app/salinst.cxx b/vcl/aqua/source/app/salinst.cxx
index df0d95c..489b1dd 100644
--- a/vcl/aqua/source/app/salinst.cxx
+++ b/vcl/aqua/source/app/salinst.cxx
@@ -258,14 +258,17 @@ sal_Bool ImplSVMainHook( int * pnInit )
 
 // ===
 
-void SalAbort( const XubString rErrorText )
+void SalAbort( const XubString rErrorText, bool bDumpCore )
 {
 if( !rErrorText.Len() )
 fprintf( stderr, Application Error  );
 else
 fprintf( stderr, %s ,
 ByteString( rErrorText, gsl_getSystemTextEncoding() ).GetBuffer() 
);
-abort();
+if( bDumpCore )
+abort();
+else
+_exit(1);
 }
 
 // ---
diff --git a/vcl/inc/salinst.hxx b/vcl/inc/salinst.hxx
index d878dd7..194e61a 100644
--- a/vcl/inc/salinst.hxx
+++ b/vcl/inc/salinst.hxx
@@ -181,7 +181,7 @@ void DestroySalInstance( SalInstance* pInst );
 // - SalInstance-Functions -
 // -
 
-void SalAbort( const XubString rErrorText );
+void SalAbort( const XubString rErrorText, bool bDumpCore );
 
 VCL_PLUGIN_PUBLIC const ::rtl::OUString SalGetDesktopEnvironment();
 
diff --git a/vcl/ios/source/app/salinst.cxx b/vcl/ios/source/app/salinst.cxx
index fb5bfb9..f7c9685 100644
--- a/vcl/ios/source/app/salinst.cxx
+++ b/vcl/ios/source/app/salinst.cxx
@@ -142,14 +142,17 @@ sal_Bool ImplSVMainHook( int * pnInit )
 
 // ===
 
-void SalAbort( const XubString rErrorText )
+void SalAbort( const XubString rErrorText, bool bDumpCore )
 {
 if( !rErrorText.Len() )
 fprintf( stderr, Application Error  );
 else
 fprintf( stderr, %s ,
 ByteString( rErrorText, gsl_getSystemTextEncoding() ).GetBuffer() 
);
-abort();
+if( bDumpCore )
+abort();
+else
+_exit(1);
 }
 
 // ---
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index f426c11..b41f926 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -393,7 +393,19 @@ sal_uInt16 Application::Exception( sal_uInt16 nError )
 
 void Application::Abort( const XubString rErrorText )
 {
-SalAbort( rErrorText );
+//HACK: Dump core iff --norestore command line argument is given (assuming
+// this process is run by developers who are interested in cores, vs. end
+// users who are not):
+bool dumpCore = false;
+sal_uInt16 n = GetCommandLineParamCount();
+for (sal_uInt16 i = 0; i != n; ++i) {
+if (GetCommandLineParam(i).EqualsAscii(--norestore)) {
+dumpCore = true;
+break;
+}
+}
+
+SalAbort( rErrorText, dumpCore );
 }
 
 // ---
diff --git a/vcl/unx/generic/plugadapt/salplug.cxx 
b/vcl/unx/generic/plugadapt/salplug.cxx
index 51321b8..d707760 100644
--- a/vcl/unx/generic/plugadapt/salplug.cxx
+++ b/vcl/unx/generic/plugadapt/salplug.cxx
@@ -267,13 +267,16 @@ void DeInitSalMain()
 {
 }
 
-void SalAbort( const XubString rErrorText )
+void SalAbort( const XubString rErrorText, bool bDumpCore )
 {
 if( !rErrorText.Len() )
 std::fprintf( stderr, Application Error\n );
 else
 std::fprintf( stderr, %s\n, rtl::OUStringToOString(rErrorText, 
osl_getThreadTextEncoding()).getStr() );
-exit(-1);
+if( bDumpCore )
+abort();
+else
+_exit(1);
 }
 
 static const char * desktop_strings[] = { none, unknown, GNOME, KDE, 
KDE4 };
diff --git a/vcl/win/source/app/salinst.cxx b/vcl/win/source/app/salinst.cxx
index 5e8930f..a0d41a6 100644
--- a/vcl/win/source/app/salinst.cxx
+++ b/vcl/win/source/app/salinst.cxx
@@ -84,7 +84,7 @@
 
 // ===
 
-void SalAbort( const XubString rErrorText )
+void SalAbort( const XubString rErrorText, bool )
 {
 ImplFreeSalGDI();
 
___
Libreoffice-commits mailing list
Libreoffice-commits@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits