summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sfx2/source/view/viewprn.cxx11
1 files changed, 7 insertions, 4 deletions
diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx
index d1f3c3c25778..175cde2b3929 100644
--- a/sfx2/source/view/viewprn.cxx
+++ b/sfx2/source/view/viewprn.cxx
@@ -690,6 +690,13 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq )
if ( !bSilent && pDoc->QueryHiddenInformation( WhenPrinting, NULL ) != RET_YES )
return;
+ // should we print only the selection or the whole document
+ SFX_REQUEST_ARG(rReq, pSelectItem, SfxBoolItem, SID_SELECTION, sal_False);
+ sal_Bool bSelection = ( pSelectItem != NULL && pSelectItem->GetValue() );
+ // detect non api call from writer ( that adds SID_SELECTION ) and reset bIsAPI
+ if ( pSelectItem && rReq.GetArgs()->Count() == 1 )
+ bIsAPI = sal_False;
+
uno::Sequence < beans::PropertyValue > aProps;
if ( bIsAPI )
{
@@ -747,10 +754,6 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq )
// it would be better if writer handled this internally
if( nId == SID_PRINTDOCDIRECT )
{
- // should we print only the selection or the whole document
- SFX_REQUEST_ARG(rReq, pSelectItem, SfxBoolItem, SID_SELECTION, sal_False);
- sal_Bool bSelection = ( pSelectItem != NULL && pSelectItem->GetValue() );
-
aProps[nLen].Name = rtl::OUString( "PrintSelectionOnly" );
aProps[nLen].Value = makeAny( bSelection );
}