summaryrefslogtreecommitdiff
path: root/sw/source/ui/docvw/edtwin.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/ui/docvw/edtwin.cxx')
-rw-r--r--sw/source/ui/docvw/edtwin.cxx43
1 files changed, 37 insertions, 6 deletions
diff --git a/sw/source/ui/docvw/edtwin.cxx b/sw/source/ui/docvw/edtwin.cxx
index 3801d72186e8..5e382ba9dd2a 100644
--- a/sw/source/ui/docvw/edtwin.cxx
+++ b/sw/source/ui/docvw/edtwin.cxx
@@ -137,6 +137,7 @@
#include <IMark.hxx>
#include <doc.hxx>
+#include <xmloff/odffields.hxx>
#include "PostItMgr.hxx"
#include "postit.hxx"
@@ -146,6 +147,7 @@
//#define TEST_FOR_BUG91313
#endif
+using namespace sw::mark;
using namespace ::com::sun::star;
/*--------------------------------------------------------------------
@@ -2306,11 +2308,17 @@ KEYINPUT_CHECKTABLE_INSDEL:
case KS_CheckAutoCorrect:
{
if( pACorr && pACfg->IsAutoFmtByInput() &&
- pACorr->IsAutoCorrFlag( CptlSttSntnc | CptlSttWrd |
+/* pACorr->IsAutoCorrFlag( CptlSttSntnc | CptlSttWrd |
ChgOrdinalNumber |
ChgToEnEmDash | SetINetAttr |
Autocorrect ) &&
!rSh.HasReadonlySel() )
+ {*/
+ pACorr->IsAutoCorrFlag( CptlSttSntnc | CptlSttWrd |
+ ChgFractionSymbol | ChgOrdinalNumber |
+ ChgToEnEmDash | SetINetAttr |
+ Autocorrect ) &&
+ !rSh.HasReadonlySel() )
{
FlushInBuffer();
rSh.AutoCorrect( *pACorr, static_cast< sal_Unicode >('\0') );
@@ -3608,10 +3616,10 @@ void SwEditWin::MouseMove(const MouseEvent& _rMEvt)
pAnchorMarker->ChgHdl( pHdl );
if( aNew.X() || aNew.Y() )
{
- pAnchorMarker->SetPos( aNew );
- pAnchorMarker->SetLastPos( aDocPt );
- //OLMpSdrView->RefreshAllIAOManagers();
- }
+ pAnchorMarker->SetPos( aNew );
+ pAnchorMarker->SetLastPos( aDocPt );
+ //OLMpSdrView->RefreshAllIAOManagers();
+ }
}
else
{
@@ -4177,7 +4185,7 @@ void SwEditWin::MouseButtonUp(const MouseEvent& rMEvt)
SwContentAtPos aCntntAtPos( SwContentAtPos::SW_CLICKFIELD |
SwContentAtPos::SW_INETATTR |
- SwContentAtPos::SW_SMARTTAG );
+ SwContentAtPos::SW_SMARTTAG | SwContentAtPos::SW_FORMCTRL);
if( rSh.GetContentAtPos( aDocPt, aCntntAtPos, TRUE ) )
{
@@ -4198,6 +4206,29 @@ void SwEditWin::MouseButtonUp(const MouseEvent& rMEvt)
if ( bExecSmarttags && SwSmartTagMgr::Get().IsSmartTagsEnabled() )
rView.ExecSmartTagPopup( aDocPt );
}
+ else if ( SwContentAtPos::SW_FORMCTRL == aCntntAtPos.eCntntAtPos )
+ {
+ ASSERT( aCntntAtPos.aFnd.pFldmark != NULL, "where is my field ptr???");
+ if ( aCntntAtPos.aFnd.pFldmark != NULL)
+ {
+ IFieldmark *fieldBM = const_cast< IFieldmark* > ( aCntntAtPos.aFnd.pFldmark );
+ //SwDocShell* pDocSh = rView.GetDocShell();
+ //SwDoc *pDoc=pDocSh->GetDoc();
+ if (fieldBM->GetFieldname( ).equalsAscii( ODF_FORMCHECKBOX ) )
+ {
+ ICheckboxFieldmark* pCheckboxFm = dynamic_cast<ICheckboxFieldmark*>(fieldBM);
+ pCheckboxFm->SetChecked(!pCheckboxFm->IsChecked());
+ pCheckboxFm->Invalidate();
+ rSh.InvalidateWindows( rView.GetVisArea() );
+ } else if (fieldBM->GetFieldname().equalsAscii( ODF_FORMDROPDOWN) ) {
+ rView.ExecFieldPopup( aDocPt, fieldBM );
+ fieldBM->Invalidate();
+ rSh.InvalidateWindows( rView.GetVisArea() );
+ } else {
+ // unknown type..
+ }
+ }
+ }
else // if ( SwContentAtPos::SW_INETATTR == aCntntAtPos.eCntntAtPos )
{
if ( bExecHyperlinks )