On 11/11/11 16:09, Noel Power wrote:
On 10/11/11 03:02, August Sodora wrote:
Hello,
I've attached a patch that attempts to add line numbers to the basic
ide. I believe it is mostly correct, although I am seeing a couple of
rendering issues that I haven't been able to track down yet. First,
the scrollbar seems to jump around and flicker a lot more than it does
without this patch. Second, typing so that the window has to scroll
horizontally causes the vertical scrollbar to move to a nonsensical
position. If anybody has a moment to take a look at this I would
really appreciate it! This has been bugging me for a while.
There are a couple problems as you mention with this patch, however I
do think that this is *really* useful and certainly something that I
would have liked to see at times. However sometimes I think the line
numbers can just be annoying ;-) so I think definitely this should be
configurable :-)
The erratic behaviour of the vertical scrollbar ( note it doesn't
respond to clicks ) is I believe due to the fact that you probably
don't take into account the reduced size of the editor window (
because now there is the extra width from the window with the line
numbers ) and in fact the width of that line-number window is dynamic
( e.g. can change as you are typing when the number of lines increases
). What I suspect is happening is the editor window area extends over
where the scrollbar is painted and the 'flicker' and erratic
'positioning' is as a result of the the editor window and scroll bar
painting over one another.
given the current state would you consider moving this to a feature
branch where perhaps others might be able to check it out and
collaborate/help ? Although I am not very familiar with vcl and/or ui
stuff, I'd be happy to try and help.
Noel
@@ -1643,11 +1653,14 @@ void ComplexEditorWindow::Resize()
long nBrkWidth = 20;
long nSBWidth = aEWVScrollBar.GetSizePixel().Width();
- Size aBrkSz( Size( nBrkWidth, aSz.Height() ) );
+ Size aBrkSz(nBrkWidth, aSz.Height());
aBrkWindow.SetPosSizePixel( Point( DWBORDER, DWBORDER ), aBrkSz );
- Size aEWSz( Size( aSz.Width() - nBrkWidth - nSBWidth + 2,
aSz.Height() ) );
- aEdtWindow.SetPosSizePixel( Point( DWBORDER+aBrkSz.Width()-1,
DWBORDER ), aEWSz );
+ Size aLnSz(aLineNumberWindow.GetWidth(), aSz.Height());
+ aLineNumberWindow.SetPosSizePixel(Point(DWBORDER+aBrkSz.Width() -
1, DWBORDER), aLnSz);
+
+ Size aEWSz(aSz.Width() - nBrkWidth - nSBWidth + 2, aSz.Height());
+ aEdtWindow.SetPosSizePixel( Point(
DWBORDER+aBrkSz.Width()+aLnSz.Width()-1, DWBORDER ), aEWSz );
aEWVScrollBar.SetPosSizePixel( Point(
aOutSz.Width()-DWBORDER-nSBWidth, DWBORDER ), Size( nSBWidth,
aSz.Height() ) );
}
I think in the hunk above
+ Size aEWSz(aSz.Width() - nBrkWidth - nSBWidth + 2, aSz.Height());
should be
+ Size aEWSz(aSz.Width() - nBrkWidth - aLineNumberWindow.GetWidth() -
nSBWidth + 2, aSz.Height());
or at least scroll bar seems to work as expected with that :-)
thanks,
Noel
Context
- Re: [Libreoffice] [PATCH] Added line numbers to the basic ide (continued)
Re: [Libreoffice] [PATCH] Added line numbers to the basic ide · Michael Meeks
Re: [Libreoffice] [PATCH] Added line numbers to the basic ide · Cor Nouws
Re: [Libreoffice] [PATCH] Added line numbers to the basic ide · Noel Power
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.