On Tuesday 17 July 2001 19:25, David Faure wrote: > On Tuesday 17 July 2001 11:17, Toshitaka Fujioka wrote: > > On Monday 16 July 2001 21:53, David Faure wrote: > > > On Monday 16 July 2001 12:44, Toshitaka Fujioka wrote: > > > > On Monday 16 July 2001 06:58, David Faure wrote: > > > > > On Monday 16 July 2001 00:11, Toshitaka Fujioka wrote: > > > > > > On Friday 13 July 2001 19:42, Toshitaka Fujioka wrote: > > > > > > > Oops! :o Sorry, You're 100% right. This was bad patch(KWord). > > > > > > > :( I remade patch. This patch completely works. ;) > > > > > > > > > > > > Oops!! Oh no, I did it again. :o > > > > > > Sorry, the patch was not complete. :( > > > > > > When "Line Spacing" was not "Single", XIM position was > > > > > > incomplete. I remade a patch. Please review. > > > > > > > > > > Eek, this is horrible (sorry). We want to add more linespacings in > > > > > the future, without having to update this code. To get the > > > > > linespacing in pixels, just use parag->lineSpacing( linenumber ) - > > > > > but I'm surprised you even have to do this. > > > > > > > > > > What are you trying to do exactly ? > > > > > Getting the bottom of the cursor ? > > > > > > > > Yes. > > > > > > > > >(Simply use cPoint.y() + h) > > > > > > > > Hmm, this is right with "Line Spacing is Single". > > > > > > > > > Getting the bottom of the current line, including the linespacing ? > > > > > > > > This is a problem. Because, value is added to "h" when I changed > > > > "Line Spacing". Position of XIM falls down to only value added to > > > > "h". I must subtract added value from "h" in order to set position of > > > > XIM to a bottom of cursor. > > > > > > Ok. Does it work better this way ? > > > > > > int line; > > > cursor->parag()->lineStartOfChar( cursor->index(), 0, &line > > > ); canvas->setXimPosition( cPoint.x(), cPoint.y(), 0, h - > > > cursor->parag()->lineSpacing( line ) ); > > > > QPoint ximPoint = viewMode->normalToView( clip.topRight() ); > > Out of curiosity, why topRight ? > Why does it depend on the clip rect ? case of ximPoint.x(): http://www.kde.gr.jp/~toshitaka/Kde/KOffice/KWord/xim1.png case of cPoint.x(): http://www.kde.gr.jp/~toshitaka/Kde/KOffice/KWord/xim2.png XIM position is delicately wrong. ximPoint.x() is better. > >    canvas->setXimPosition( ximPoint.x(), ximPoint.y(), 0, h - > > cursor->parag()->lineSpacing( lineY ) ); > > lineY can't be right. That's a Y coordinate, whereas lineSpacing() takes a > line _number_. That's what I was calculating in my patch: the line number > of the line where the cursor is, and that's what you need when calling > lineSpacing(). Hmm, I see. But return value of cursor->parag()->lineSpacing( lineY ) is same as int line; cursor->parag()->lineStartOfChar( cursor->index(), 0, &line ); . Thank you. -- Toshitaka Fujioka http://www.kde.org The K Desktop Environment Project fujioka@kde.org http://www.kde.gr.jp Japan KDE User's Group toshitaka@kde.gr.jp -- We offer the best Desktop Environment to you. (This is my goal. ;-)) -- _______________________________________________ Koffice-devel mailing list Koffice-devel@master.kde.org http://master.kde.org/mailman/listinfo/koffice-devel