Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
61533b8c
Kaydet (Commit)
61533b8c
authored
Haz 25, 2013
tarafından
Caolán McNamara
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Resolves: fdo#65743 MovePara gets stuck on hidden para fields
Change-Id: I03b26aaa9be491e760335185c5a9ffd5d04990bb
üst
ffe5c9ce
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
5 deletions
+25
-5
crsrsh.hxx
sw/inc/crsrsh.hxx
+2
-0
crsrsh.cxx
sw/source/core/crsr/crsrsh.cxx
+23
-5
No files found.
sw/inc/crsrsh.hxx
Dosyayı görüntüle @
61533b8c
...
@@ -258,6 +258,8 @@ private:
...
@@ -258,6 +258,8 @@ private:
SW_DLLPRIVATE
short
GetTextDirection
(
const
Point
*
pPt
=
0
)
const
;
SW_DLLPRIVATE
short
GetTextDirection
(
const
Point
*
pPt
=
0
)
const
;
SW_DLLPRIVATE
bool
isInHiddenTxtFrm
(
SwShellCrsr
*
pShellCrsr
);
typedef
sal_Bool
(
SwCursor
::
*
FNCrsr
)();
typedef
sal_Bool
(
SwCursor
::
*
FNCrsr
)();
SW_DLLPRIVATE
sal_Bool
CallCrsrFN
(
FNCrsr
);
SW_DLLPRIVATE
sal_Bool
CallCrsrFN
(
FNCrsr
);
...
...
sw/source/core/crsr/crsrsh.cxx
Dosyayı görüntüle @
61533b8c
...
@@ -570,14 +570,34 @@ sal_Bool SwCrsrShell::MovePage( SwWhichPage fnWhichPage, SwPosPage fnPosPage )
...
@@ -570,14 +570,34 @@ sal_Bool SwCrsrShell::MovePage( SwWhichPage fnWhichPage, SwPosPage fnPosPage )
return
bRet
;
return
bRet
;
}
}
bool
SwCrsrShell
::
isInHiddenTxtFrm
(
SwShellCrsr
*
pShellCrsr
)
{
SwCntntNode
*
pCNode
=
pShellCrsr
->
GetCntntNode
();
SwCntntFrm
*
pFrm
=
pCNode
?
pCNode
->
getLayoutFrm
(
GetLayout
(),
&
pShellCrsr
->
GetPtPos
(),
pShellCrsr
->
GetPoint
(),
sal_False
)
:
0
;
return
!
pFrm
||
(
pFrm
->
IsTxtFrm
()
&&
((
SwTxtFrm
*
)
pFrm
)
->
IsHiddenNow
());
}
sal_Bool
SwCrsrShell
::
MovePara
(
SwWhichPara
fnWhichPara
,
SwPosPara
fnPosPara
)
sal_Bool
SwCrsrShell
::
MovePara
(
SwWhichPara
fnWhichPara
,
SwPosPara
fnPosPara
)
{
{
SwCallLink
aLk
(
*
this
);
// watch Crsr-Moves; call Link if needed
SwCallLink
aLk
(
*
this
);
// watch Crsr-Moves; call Link if needed
Sw
Curso
r
*
pTmpCrsr
=
getShellCrsr
(
true
);
Sw
ShellCrs
r
*
pTmpCrsr
=
getShellCrsr
(
true
);
sal_Bool
bRet
=
pTmpCrsr
->
MovePara
(
fnWhichPara
,
fnPosPara
);
sal_Bool
bRet
=
pTmpCrsr
->
MovePara
(
fnWhichPara
,
fnPosPara
);
if
(
bRet
)
if
(
bRet
)
{
//keep going until we get something visible, i.e. skip
//over hidden paragraphs, don't get stuck at the start
//which is what SwCrsrShell::UpdateCrsrPos will reset
//the position to if we pass it a position in an
//invisible hidden paragraph field
while
(
isInHiddenTxtFrm
(
pTmpCrsr
))
{
if
(
!
pTmpCrsr
->
MovePara
(
fnWhichPara
,
fnPosPara
))
break
;
}
UpdateCrsr
();
UpdateCrsr
();
}
return
bRet
;
return
bRet
;
}
}
...
@@ -1215,10 +1235,8 @@ void SwCrsrShell::UpdateCrsrPos()
...
@@ -1215,10 +1235,8 @@ void SwCrsrShell::UpdateCrsrPos()
++
mnStartAction
;
++
mnStartAction
;
SwShellCrsr
*
pShellCrsr
=
getShellCrsr
(
true
);
SwShellCrsr
*
pShellCrsr
=
getShellCrsr
(
true
);
Size
aOldSz
(
GetDocSize
()
);
Size
aOldSz
(
GetDocSize
()
);
SwCntntNode
*
pCNode
=
pShellCrsr
->
GetCntntNode
();
SwCntntFrm
*
pFrm
=
pCNode
?
if
(
isInHiddenTxtFrm
(
pShellCrsr
)
)
pCNode
->
getLayoutFrm
(
GetLayout
(),
&
pShellCrsr
->
GetPtPos
(),
pShellCrsr
->
GetPoint
(),
sal_False
)
:
0
;
if
(
!
pFrm
||
(
pFrm
->
IsTxtFrm
()
&&
((
SwTxtFrm
*
)
pFrm
)
->
IsHiddenNow
())
)
{
{
SwCrsrMoveState
aTmpState
(
MV_NONE
);
SwCrsrMoveState
aTmpState
(
MV_NONE
);
aTmpState
.
bSetInReadOnly
=
IsReadOnlyAvailable
();
aTmpState
.
bSetInReadOnly
=
IsReadOnlyAvailable
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment