xref: /aoo4110/main/sw/source/ui/uiview/view0.cxx (revision b1cdbd2c)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_sw.hxx"
26 
27 
28 
29 #include "hintids.hxx"
30 #include <vcl/graph.hxx>
31 #include <svx/galbrws.hxx>
32 #include <svl/srchitem.hxx>
33 #include <SwSpellDialogChildWindow.hxx>
34 #include <svl/eitem.hxx>
35 #include <unotools/linguprops.hxx>
36 #include <unotools/lingucfg.hxx>
37 #include <viewopt.hxx>
38 #include <globals.h>
39 #include <sfx2/app.hxx>
40 #include <sfx2/request.hxx>
41 #include <svl/whiter.hxx>
42 #include <svx/srchdlg.hxx>
43 #include <sfx2/templdlg.hxx>
44 #include <sfx2/viewfrm.hxx>
45 #include <sfx2/bindings.hxx>
46 #include <sfx2/sidebar/SidebarChildWindow.hxx>
47 #include <uivwimp.hxx>
48 #include <avmedia/mediaplayer.hxx>
49 //#include <swlinguconfig.hxx>
50 #include <swmodule.hxx>
51 
52 #include <sfx2/objface.hxx>
53 #include <navipi.hxx>
54 #include <wrtsh.hxx>
55 #include <edtwin.hxx>
56 #include "view.hxx"
57 #include "basesh.hxx"
58 #include "docsh.hxx"
59 #include "doc.hxx"
60 #include "globals.hrc"
61 #include "cmdid.h"		 	// FN_		 ...
62 #include "globdoc.hxx"
63 #include "wview.hxx"
64 #include "shells.hrc"
65 
66 #define OLEObjects
67 #define SwView
68 #define Frames
69 #define Graphics
70 #define Tables
71 #define Controls
72 #define GlobalContents
73 #define Text
74 #define Frame
75 #define Graphic
76 #define Object
77 #define Draw
78 #define TextDrawText
79 #define TextInTable
80 #define ListInText
81 #define ListInTable
82 #define WebTextInTable
83 #define WebListInText
84 #define WebListInTable
85 #define TextPage
86 #include <sfx2/msg.hxx>
87 #include "swslots.hxx"
88 #include <PostItMgr.hxx>
89 
90 
91 using namespace ::com::sun::star;
92 using ::rtl::OUString;
93 
94 #include <unotools/moduleoptions.hxx>
95 
96 #include <IDocumentSettingAccess.hxx>
97 
98 #include <unomid.h>
99 
100 SFX_IMPL_NAMED_VIEWFACTORY(SwView, "Default")
101 {
102     if ( SvtModuleOptions().IsWriter() )
103     {
104         SFX_VIEW_REGISTRATION(SwDocShell);
105         SFX_VIEW_REGISTRATION(SwGlobalDocShell);
106     }
107 }
108 
SFX_IMPL_INTERFACE(SwView,SfxViewShell,SW_RES (RID_TOOLS_TOOLBOX))109 SFX_IMPL_INTERFACE( SwView, SfxViewShell, SW_RES(RID_TOOLS_TOOLBOX) )
110 {
111 	SFX_CHILDWINDOW_CONTEXT_REGISTRATION(SID_NAVIGATOR);
112 	SFX_CHILDWINDOW_REGISTRATION(::sfx2::sidebar::SidebarChildWindow::GetChildWindowId());
113 	SFX_CHILDWINDOW_REGISTRATION(SfxTemplateDialogWrapper::GetChildWindowId());
114 	SFX_CHILDWINDOW_REGISTRATION(SvxSearchDialogWrapper::GetChildWindowId());
115     SFX_CHILDWINDOW_REGISTRATION(SwSpellDialogChildWindow::GetChildWindowId());
116     SFX_CHILDWINDOW_REGISTRATION(FN_REDLINE_ACCEPT);
117 	SFX_CHILDWINDOW_REGISTRATION(SID_HYPERLINK_DIALOG);
118 	SFX_CHILDWINDOW_REGISTRATION(GalleryChildWindow::GetChildWindowId());
119 	SFX_CHILDWINDOW_REGISTRATION(::avmedia::MediaPlayer::GetChildWindowId());
120     SFX_CHILDWINDOW_REGISTRATION(FN_INSERT_FIELD_DATA_ONLY);
121         SFX_FEATURED_CHILDWINDOW_REGISTRATION(FN_SYNC_LABELS,           CHILDWIN_LABEL    );
122         SFX_FEATURED_CHILDWINDOW_REGISTRATION(FN_MAILMERGE_CHILDWINDOW, CHILDWIN_MAILMERGE);
123 //    SFX_CHILDWINDOW_REGISTRATION(FN_MAILMERGE_SENDMAIL_CHILDWINDOW);
124     SFX_OBJECTBAR_REGISTRATION( SFX_OBJECTBAR_TOOLS|
125 								SFX_VISIBILITY_STANDARD|SFX_VISIBILITY_SERVER,
126 								SW_RES(RID_TOOLS_TOOLBOX) );
127 }
128 
TYPEINIT1(SwView,SfxViewShell)129 TYPEINIT1(SwView,SfxViewShell)
130 
131 /*-----------------13.12.97 11:06-------------------
132 
133 --------------------------------------------------*/
134 ShellModes	SwView::GetShellMode()
135 {
136 	return pViewImpl->GetShellMode();
137 }
138 
139 /*-----------------13.12.97 11:28-------------------
140 
141 --------------------------------------------------*/
GetUNOObject()142 view::XSelectionSupplier* SwView::GetUNOObject()
143 {
144 	return pViewImpl->GetUNOObject();
145 }
146 /* -----------------------------06.05.2002 13:18------------------------------
147 
148  ---------------------------------------------------------------------------*/
ApplyAccessiblityOptions(SvtAccessibilityOptions & rAccessibilityOptions)149 void SwView::ApplyAccessiblityOptions(SvtAccessibilityOptions& rAccessibilityOptions)
150 {
151     pWrtShell->ApplyAccessiblityOptions(rAccessibilityOptions);
152     //to enable the right state of the selection cursor in readonly documents
153     if(GetDocShell()->IsReadOnly())
154         pWrtShell->ShowCrsr();
155 
156 }
157 /*-- 26.05.2004 09:14:25---------------------------------------------------
158 
159   -----------------------------------------------------------------------*/
SetMailMergeConfigItem(SwMailMergeConfigItem * pConfigItem,sal_uInt16 nRestart,sal_Bool bIsSource)160 void   SwView::SetMailMergeConfigItem(SwMailMergeConfigItem*  pConfigItem,
161                 sal_uInt16 nRestart, sal_Bool bIsSource)
162 {
163     pViewImpl->SetMailMergeConfigItem(pConfigItem, nRestart, bIsSource);
164     UIFeatureChanged();
165 }
166 /*-- 26.05.2004 09:14:25---------------------------------------------------
167 
168   -----------------------------------------------------------------------*/
GetMailMergeConfigItem()169 SwMailMergeConfigItem*  SwView::GetMailMergeConfigItem()
170 {
171     return pViewImpl->GetMailMergeConfigItem();
172 }
173 /*-- 26.05.2004 09:14:25---------------------------------------------------
174 
175   -----------------------------------------------------------------------*/
GetMailMergeRestartPage() const176 sal_uInt16 SwView::GetMailMergeRestartPage() const
177 {
178     return pViewImpl->GetMailMergeRestartPage();
179 }
180 /*-- 03.09.2004 11:56:33---------------------------------------------------
181 
182   -----------------------------------------------------------------------*/
IsMailMergeSourceView() const183 sal_Bool SwView::IsMailMergeSourceView() const
184 {
185     return pViewImpl->IsMailMergeSourceView();
186 }
187 /*-- 12.04.2006 11:51:40---------------------------------------------------
188 
189   -----------------------------------------------------------------------*/
lcl_IsViewMarks(const SwViewOption & rVOpt)190 sal_Bool lcl_IsViewMarks( const SwViewOption& rVOpt )
191 {
192     return  rVOpt.IsHardBlank() &&
193             rVOpt.IsSoftHyph() &&
194             SwViewOption::IsFieldShadings();
195 }
lcl_SetViewMarks(SwViewOption & rVOpt,sal_Bool bOn)196 void lcl_SetViewMarks(SwViewOption& rVOpt, sal_Bool bOn )
197 {
198     rVOpt.SetHardBlank(bOn);
199     rVOpt.SetSoftHyph(bOn);
200     SwViewOption::SetAppearanceFlag(
201             VIEWOPT_FIELD_SHADINGS, bOn, sal_True);
202 }
203 
lcl_SetViewMetaChars(SwViewOption & rVOpt,sal_Bool bOn)204 void lcl_SetViewMetaChars( SwViewOption& rVOpt, sal_Bool bOn)
205 {
206     rVOpt.SetViewMetaChars( bOn );
207     if(bOn && !(rVOpt.IsParagraph()     ||
208             rVOpt.IsTab()       ||
209             rVOpt.IsLineBreak() ||
210             rVOpt.IsShowHiddenChar() ||
211             rVOpt.IsBlank()))
212     {
213         rVOpt.SetParagraph(bOn);
214         rVOpt.SetTab(bOn);
215         rVOpt.SetLineBreak(bOn);
216         rVOpt.SetBlank(bOn);
217         rVOpt.SetShowHiddenChar(bOn);
218     }
219 }
220 
RecheckBrowseMode()221 void SwView::RecheckBrowseMode()
222 {
223     // OS: numerische Reihenfolge beachten!
224     static sal_uInt16 __READONLY_DATA aInva[] =
225         {
226             //SID_NEWWINDOW,/*5620*/
227             SID_BROWSER_MODE, /*6313*/
228             SID_RULER_BORDERS, SID_RULER_PAGE_POS,
229             //SID_ATTR_LONG_LRSPACE,
230             SID_HTML_MODE,
231             SID_RULER_PROTECT,
232             //SID_AUTOSPELL_CHECK,
233             //SID_AUTOSPELL_MARKOFF,
234             FN_RULER,      	/*20211*/
235             FN_VIEW_GRAPHIC,    /*20213*/
236             FN_VIEW_BOUNDS,   	/**/
237             FN_VIEW_FIELDS,     /*20215*/
238             FN_VLINEAL,             /*20216*/
239             FN_VSCROLLBAR,      /*20217*/
240             FN_HSCROLLBAR,      /*20218*/
241             FN_VIEW_META_CHARS, /**/
242             FN_VIEW_MARKS,     	/**/
243             //FN_VIEW_FIELDNAME, 	/**/
244             FN_VIEW_TABLEGRID,  /*20227*/
245             FN_PRINT_LAYOUT, /*20237*/
246             FN_QRY_MERGE,   /*20364*/
247             FN_SHADOWCURSOR, /**/
248             0
249         };
250     // the view must not exist!
251     GetViewFrame()->GetBindings().Invalidate(aInva);
252     CheckVisArea();
253 
254     SvxZoomType eType;
255     if( GetWrtShell().GetViewOptions()->getBrowseMode() && SVX_ZOOM_PERCENT != (eType = (SvxZoomType)
256         GetWrtShell().GetViewOptions()->GetZoomType()) )
257         SetZoom( eType );
258     InvalidateBorder();
259 }
260 
261 /*--------------------------------------------------------------------
262     State of view options
263  --------------------------------------------------------------------*/
StateViewOptions(SfxItemSet & rSet)264 void SwView::StateViewOptions(SfxItemSet &rSet)
265 {
266     SfxWhichIter aIter(rSet);
267     sal_uInt16 nWhich = aIter.FirstWhich();
268     SfxBoolItem aBool;
269     const SwViewOption* pOpt = GetWrtShell().GetViewOptions();
270     const IDocumentSettingAccess* pIDSA = GetDocShell()->getIDocumentSettingAccess();
271 
272     while(nWhich)
273     {
274         sal_Bool bReadonly = GetDocShell()->IsReadOnly();
275         if ( bReadonly && nWhich != FN_VIEW_GRAPHIC )
276         {
277             rSet.DisableItem(nWhich);
278             nWhich = 0;
279         }
280         switch(nWhich)
281         {
282             case FN_RULER:
283             {
284                 if(!pOpt->IsViewHRuler(sal_True) && !pOpt->IsViewVRuler(sal_True))
285                 {
286                     rSet.DisableItem(nWhich);
287                     nWhich = 0;
288                 }
289                 else
290                     aBool.SetValue( pOpt->IsViewAnyRuler());
291             }
292             break;
293             case SID_BROWSER_MODE:
294             case FN_PRINT_LAYOUT:
295 			{
296                 sal_Bool bState = pOpt->getBrowseMode();
297                 if(FN_PRINT_LAYOUT == nWhich)
298                     bState = !bState;
299                 aBool.SetValue( bState );
300 			}
301 			break;
302             case FN_VIEW_BOUNDS:
303                 aBool.SetValue( SwViewOption::IsDocBoundaries()); break;
304             case FN_VIEW_GRAPHIC:
305                 aBool.SetValue( !pOpt->IsGraphic() ); break;
306             case FN_VIEW_FIELDS:
307                 aBool.SetValue( SwViewOption::IsFieldShadings() ); break;
308             case FN_VIEW_FIELDNAME:
309                 aBool.SetValue( pOpt->IsFldName() ); break;
310             case FN_VIEW_MARKS:
311                 aBool.SetValue( lcl_IsViewMarks(*pOpt) ); break;
312             case FN_VIEW_META_CHARS:
313                 aBool.SetValue( pOpt->IsViewMetaChars() ); break;
314             case FN_VIEW_TABLEGRID:
315                 aBool.SetValue( SwViewOption::IsTableBoundaries() ); break;
316 			case FN_VIEW_NOTES:
317 			{
318 				aBool.SetValue( pOpt->IsPostIts());
319 				if (!GetPostItMgr()->HasNotes())
320 				{
321 					aBool.SetWhich( nWhich );
322 					rSet.Put( aBool );
323 					rSet.DisableItem(nWhich);
324 					nWhich = 0;
325 				}
326 				break;
327 			}
328 			case FN_VIEW_HIDDEN_PARA:
329                 aBool.SetValue( pOpt->IsShowHiddenPara()); break;
330             case SID_GRID_VISIBLE:
331                 aBool.SetValue( pOpt->IsGridVisible() ); break;
332             case SID_GRID_USE:
333                 aBool.SetValue( pOpt->IsSnap() ); break;
334             case SID_HELPLINES_MOVE:
335                 aBool.SetValue( pOpt->IsCrossHair() ); break;
336             case FN_VIEW_SMOOTH_SCROLL:
337                 aBool.SetValue( pOpt->IsSmoothScroll()); break;
338             case FN_VLINEAL:
339                 aBool.SetValue( 0 != StatVLineal() ); break;
340             case FN_HSCROLLBAR:
341                 if( pOpt->getBrowseMode() )
342                 {
343                     rSet.DisableItem(nWhich);
344                     nWhich = 0;
345                 }
346                 else
347                     aBool.SetValue( IsHScrollbarVisible() ); break;
348             case FN_VSCROLLBAR:
349                 aBool.SetValue( IsVScrollbarVisible() ); break;
350             case SID_AUTOSPELL_CHECK:
351                 aBool.SetValue( pOpt->IsOnlineSpell() );
352             break;
353             case FN_SHADOWCURSOR:
354                 if (pIDSA == 0 || pOpt->getBrowseMode() )
355                 {
356                     rSet.DisableItem( nWhich );
357                     nWhich = 0;
358                 }
359                 else
360                     aBool.SetValue( pOpt->IsShadowCursor() );
361             break;
362 
363         }
364 
365         if( nWhich )
366         {
367             aBool.SetWhich( nWhich );
368             rSet.Put( aBool );
369         }
370         nWhich = aIter.NextWhich();
371     }
372 }
373 
374 /*--------------------------------------------------------------------
375     execute view options
376  --------------------------------------------------------------------*/
ExecViewOptions(SfxRequest & rReq)377 void SwView::ExecViewOptions(SfxRequest &rReq)
378 {
379     SwViewOption* pOpt = new SwViewOption( *GetWrtShell().GetViewOptions() );
380     sal_Bool bModified = GetWrtShell().IsModified();
381 
382     int eState = STATE_TOGGLE;
383     sal_Bool bSet = sal_False;
384     bool bBrowseModeChanged = false;
385 
386     const SfxItemSet *pArgs = rReq.GetArgs();
387     sal_uInt16 nSlot = rReq.GetSlot();
388     const SfxPoolItem* pAttr=NULL;
389 
390     if( pArgs && SFX_ITEM_SET == pArgs->GetItemState( nSlot , sal_False, &pAttr ))
391     {
392         bSet = ((SfxBoolItem*)pAttr)->GetValue();
393         eState = bSet ? STATE_ON : STATE_OFF;
394     }
395 
396     sal_Bool bFlag = STATE_ON == eState;
397     uno::Reference< beans::XPropertySet >  xLngProp( ::GetLinguPropertySet() );
398 
399     switch ( nSlot )
400     {
401         case FN_VIEW_GRAPHIC:
402 
403                 if( STATE_TOGGLE == eState )
404                     bFlag = !pOpt->IsGraphic();
405                 pOpt->SetGraphic( bFlag );
406                 break;
407 
408         case FN_VIEW_FIELDS:
409                 if( STATE_TOGGLE == eState )
410                     bFlag = !SwViewOption::IsFieldShadings() ;
411                 SwViewOption::SetAppearanceFlag(VIEWOPT_FIELD_SHADINGS, bFlag, sal_True );
412                 break;
413 
414         case FN_VIEW_BOUNDS:
415                 if( STATE_TOGGLE == eState )
416                     bFlag = !SwViewOption::IsDocBoundaries();
417                 SwViewOption::SetAppearanceFlag(VIEWOPT_DOC_BOUNDARIES, bFlag, sal_True );
418                 break;
419 
420         case SID_GRID_VISIBLE:
421                 if( STATE_TOGGLE == eState )
422                     bFlag = !pOpt->IsGridVisible();
423 
424                 pOpt->SetGridVisible( bFlag );
425                 break;
426 
427         case SID_GRID_USE:
428                 if( STATE_TOGGLE == eState )
429                     bFlag = !pOpt->IsSnap();
430 
431                 pOpt->SetSnap( bFlag );
432                 break;
433 
434         case SID_HELPLINES_MOVE:
435                 if( STATE_TOGGLE == eState )
436                     bFlag = !pOpt->IsCrossHair();
437 
438                 pOpt->SetCrossHair( bFlag );
439                 break;
440 
441         case SID_BROWSER_MODE:
442         case FN_PRINT_LAYOUT:
443                 if( STATE_TOGGLE == eState )
444                     bFlag = !pOpt->getBrowseMode();
445                 else if( nSlot == FN_PRINT_LAYOUT )
446                     bFlag = !bFlag;
447                 bBrowseModeChanged = bFlag != pOpt->getBrowseMode();
448                 // Disable "multiple layout"
449                 GetDocShell()->ToggleBrowserMode( bFlag, this );
450 
451                 pOpt->setBrowseMode( bFlag );
452                 break;
453 
454 	case FN_VIEW_NOTES:
455                 if ( STATE_TOGGLE == eState )
456                     bFlag = !pOpt->IsPostIts();
457 
458 				GetPostItMgr()->SetLayout();
459                 pOpt->SetPostIts( bFlag );
460                	if (pOpt->IsPostIts())
461 			GetPostItMgr()->CheckMetaText();
462 		 break;
463 
464         case FN_VIEW_HIDDEN_PARA:
465                 if ( STATE_TOGGLE == eState )
466                     bFlag = !pOpt->IsShowHiddenPara();
467 
468                 pOpt->SetShowHiddenPara( bFlag );
469                 break;
470 
471         case FN_VIEW_SMOOTH_SCROLL:
472 
473                 if ( STATE_TOGGLE == eState )
474                     bFlag = !pOpt->IsSmoothScroll();
475 
476                 pOpt->SetSmoothScroll( bFlag );
477                 break;
478 
479 
480         case FN_VLINEAL:
481                 if( STATE_TOGGLE == eState )
482                     bFlag = !pOpt->IsViewVRuler();
483 
484                 pOpt->SetViewVRuler( bFlag );
485                 break;
486 
487         case FN_VSCROLLBAR:
488                 if( STATE_TOGGLE == eState )
489                     bFlag = !pOpt->IsViewVScrollBar();
490 
491                 pOpt->SetViewVScrollBar( bFlag );
492                 break;
493 
494         case FN_HSCROLLBAR:
495                 if( STATE_TOGGLE == eState )
496                     bFlag = !pOpt->IsViewHScrollBar();
497 
498                 pOpt->SetViewHScrollBar( bFlag );
499                 break;
500         case FN_RULER:
501                 if( STATE_TOGGLE == eState )
502                     bFlag = !pOpt->IsViewAnyRuler();
503 
504                 pOpt->SetViewAnyRuler( bFlag );
505                 break;
506 
507         case FN_VIEW_TABLEGRID:
508                 if( STATE_TOGGLE == eState )
509                     bFlag = !SwViewOption::IsTableBoundaries();
510                 SwViewOption::SetAppearanceFlag(VIEWOPT_TABLE_BOUNDARIES, bFlag, sal_True );
511                 break;
512 
513         case FN_VIEW_FIELDNAME:
514                 if( STATE_TOGGLE == eState )
515                     bFlag = !pOpt->IsFldName() ;
516 
517                 pOpt->SetFldName( bFlag );
518                 break;
519         case FN_VIEW_MARKS:
520                 if( STATE_TOGGLE == eState )
521                     bFlag = !lcl_IsViewMarks(*pOpt) ;
522 
523                 lcl_SetViewMarks( *pOpt, bFlag );
524                 break;
525         case FN_VIEW_META_CHARS:
526                 if( STATE_TOGGLE == eState )
527                     bFlag = !pOpt->IsViewMetaChars();
528 
529                 lcl_SetViewMetaChars( *pOpt, bFlag );
530         break;
531         case SID_AUTOSPELL_CHECK:
532             if( STATE_TOGGLE == eState )
533                 bFlag = bSet = !pOpt->IsOnlineSpell();
534 
535             pOpt->SetOnlineSpell(bSet);
536             {
537                 uno::Any aVal( &bSet, ::getCppuBooleanType() );
538                 String aPropName( C2S(UPN_IS_SPELL_AUTO) );
539 
540                 SvtLinguConfig  aCfg;
541                 aCfg.SetProperty( aPropName, aVal );
542 
543                 if (xLngProp.is())
544                     xLngProp->setPropertyValue( aPropName, aVal );
545 
546                 // for the time being we do not have a specific option for grammarchecking.
547                 // thus we'll use the one for spell checking...
548                 if (bSet)
549                 {
550                     SwDocShell *pDocSh = GetDocShell();
551                     SwDoc *pDoc = pDocSh? pDocSh->GetDoc() : NULL;
552 
553                     // right now we don't have view options for automatic grammar checking. Thus...
554                     sal_Bool bIsAutoGrammar = sal_False;
555                     aCfg.GetProperty( C2U( UPN_IS_GRAMMAR_AUTO ) ) >>= bIsAutoGrammar;
556 
557                     if (pDoc && bIsAutoGrammar)
558                         StartGrammarChecking( *pDoc );
559                 }
560             }
561         break;
562         case FN_SHADOWCURSOR:
563             if( STATE_TOGGLE == eState )
564                 bFlag = bSet = !pOpt->IsShadowCursor();
565 
566             pOpt->SetShadowCursor(bSet);
567         break;
568 
569         default:
570             ASSERT(sal_False, Falsche Request-Methode);
571             return;
572     }
573 
574     // UserPrefs setzen Request als bearbeitet kennzeichnen
575     sal_Bool bWebView =  0 != dynamic_cast<const SwWebView*>(this);
576     SwWrtShell &rSh = GetWrtShell();
577     rSh.StartAction();
578     SwModule* pModule = SW_MOD();
579     if( !(*rSh.GetViewOptions() == *pOpt ))
580     {
581         rSh.ApplyViewOptions( *pOpt );
582         if( bBrowseModeChanged )
583         {
584             RecheckBrowseMode();
585             CheckVisArea();
586         }
587 
588         //Die UsrPref muessen als Modified gekennzeichnet werden.
589         //call for initialization
590         pModule->GetUsrPref(bWebView);
591         pModule->CheckSpellChanges( pOpt->IsOnlineSpell(), sal_False, sal_False, sal_False );
592     }
593     //OS:   Modified wieder zuruecksetzen, weil Ansicht/Felder
594     //      das Doc modified setzt.
595     if( !bModified )
596         rSh.ResetModified();
597 
598     pModule->ApplyUsrPref( *pOpt, this, bWebView ? VIEWOPT_DEST_WEB : VIEWOPT_DEST_TEXT );
599 
600 	//mod #i6193# let postits know about new spellcheck setting
601     if ( nSlot == SID_AUTOSPELL_CHECK )
602 		GetPostItMgr()->SetSpellChecking();
603 
604     const sal_Bool bLockedView = rSh.IsViewLocked();
605     rSh.LockView( sal_True );    //lock visible section
606     GetWrtShell().EndAction();
607     if( bBrowseModeChanged && !bFlag )
608         CalcVisArea( GetEditWin().GetOutputSizePixel() );
609     rSh.LockView( bLockedView );
610 
611     delete pOpt;
612     Invalidate(rReq.GetSlot());
613     if(!pArgs)
614         rReq.AppendItem(SfxBoolItem(nSlot, (sal_Bool)bFlag));
615     rReq.Done();
616 }
617 
IMPL_LINK(SwView,HtmlOptionsHdl,void *,EMPTYARG)618 IMPL_LINK( SwView, HtmlOptionsHdl, void*, EMPTYARG )
619 {
620 	// Invalidierung, falls blinkender Text erlaubt/verboten wurde
621     GetViewFrame()->GetBindings().Invalidate(SID_DRAW_TEXT_MARQUEE);
622     return 0;
623 }
624