mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-08 21:19:17 +02:00
SynEdit: Hiding scrollbar on Win32 via code may fail. (Maybe bug in Windows itself). Need to disable it first (by setting page width to 100%). Issue #0027072
git-svn-id: trunk@58526 -
This commit is contained in:
parent
eeba3dff66
commit
587653ec39
@ -4817,11 +4817,22 @@ begin
|
||||
else include(fStateFlags, sfHorizScrollbarVisible);
|
||||
if fStateFlags * [sfEnsureCursorPos, sfEnsureCursorPosAtResize] <> [] then
|
||||
include(fStateFlags, sfEnsureCursorPosAtResize);
|
||||
|
||||
{$IFDEF LCLWin32}
|
||||
// Some bug in Windows? ShowScrollBar will not always remove the scrollbar
|
||||
// This will make the scrollbar un-scrollable, after that it can be hidden
|
||||
if not (sfHorizScrollbarVisible in fStateFlags) then begin
|
||||
ScrollInfo.nMax := 99;
|
||||
ScrollInfo.nPage := ScrollInfo.nMax-1;
|
||||
ScrollInfo.nPos := 1;
|
||||
SetScrollInfo(Handle, SB_HORZ, ScrollInfo, False);
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
||||
ShowScrollBar(Handle, SB_Horz, sfHorizScrollbarVisible in fStateFlags);
|
||||
RecalcCharsAndLinesInWin(True);
|
||||
end;
|
||||
if (sfHorizScrollbarVisible in fStateFlags) then begin
|
||||
debugln(['}}} ',ScrollInfo.nMax, ', ',CharsInWindow ]);
|
||||
ScrollInfo.nPage := CharsInWindow;
|
||||
ScrollInfo.nPos := LeftChar;
|
||||
SetScrollInfo(Handle, SB_HORZ, ScrollInfo, True);
|
||||
@ -4846,6 +4857,18 @@ debugln(['}}} ',ScrollInfo.nMax, ', ',CharsInWindow ]);
|
||||
else include(fStateFlags, sfVertScrollbarVisible);
|
||||
if fStateFlags * [sfEnsureCursorPos, sfEnsureCursorPosAtResize] <> [] then
|
||||
include(fStateFlags, sfEnsureCursorPosAtResize);
|
||||
|
||||
{$IFDEF LCLWin32}
|
||||
// Some bug in Windows? ShowScrollBar will not always remove the scrollbar
|
||||
// This will make the scrollbar un-scrollable, after that it can be hidden
|
||||
if not (sfVertScrollbarVisible in fStateFlags) then begin
|
||||
ScrollInfo.nMax := 99;
|
||||
ScrollInfo.nPage := ScrollInfo.nMax-1;
|
||||
ScrollInfo.nPos := 1;
|
||||
SetScrollInfo(Handle, SB_Vert, ScrollInfo, False);
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
||||
ShowScrollBar(Handle, SB_Vert, sfVertScrollbarVisible in fStateFlags);
|
||||
RecalcCharsAndLinesInWin(True);
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user