View Issue Details

IDProjectCategoryView StatusLast Update
0029194PackagesPackagespublic2016-01-19 14:27
ReporterLordTiberius Assigned ToZeljan Rikalo  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
PlatformWindowsOSWindows 
Product Version1.6RC1 
Summary0029194: Set Scrollbar position leads to infinite loop if not visible
DescriptionIf a ScrollBox is placed on the form, but hidden (e.g. if in an inactive tab on a PageControl) and if the position of the (horizontal) scroll bar should be changed by the .Position-property, an infinite loop is entered:

  - FControl.ScrollBy() [l.80 controlscrollbar.inc]
    -> ScrollBy_WS() [l.251 scrollingwincontrol.inc]
       -> ScrollBy() [l.6142 wincontrol.inc]
Steps To Reproduce- Place a TPageControl on a form
- Add two tabs
- Place a ScrollBox with a content wider than the scrollbox itself to Tab2
- Place a button on the form
  - OnClick: ScrollBox.HorzScrollBar.Position := 0
- Compile and run
- Switch to Tab2
- Set the scrollbar of the ScrollBox to another position than 0
- Switch to Tab1 in order to make the scrollbox invisible
- Press Button
Tagsscroll, scrollbar, ScrollBy
Fixed in Revision50991,50994
LazTarget-
WidgetsetWin32/Win64, QT
Attached Files

Relationships

related to 0029239 closedZeljan Rikalo Lazarus Qt fails to get the correct scroll area for invisible TScrollBox 

Activities

Zeljan Rikalo

2015-12-21 13:13

developer   ~0088134

I confirm that this happens on linux with qtlcl 32bit too.
Please attach complete example project.

Zeljan Rikalo

2015-12-21 18:22

developer  

Zeljan Rikalo

2015-12-21 18:24

developer   ~0088145

Steps to reproduce issue with attached example ScrollBoxInfiniteLoop:
1.Click "CLICK ME" on TabSheet1.
2.Now you're on TabSheet2. Move vertical scrollbar to the bottom (max value) by mouse.
3.Now click "Click me" button inside scrollbox.
4.Now click "CLICK ME" again on TabSheet1 -> infinite loop.

Infinite loop happens only on win32 and qt widgetsets !

Zeljan Rikalo

2015-12-21 18:24

developer   ~0088146

gtk2 works fine with this example (linux 32bit gtk2-2.24)

Zeljan Rikalo

2015-12-22 13:36

developer   ~0088167

Please test and close if ok.

Ondrej Pokorny

2015-12-22 22:48

developer   ~0088184

@Zeljan: your fix wasn't correct. See test project in 0029239. r50991 fails with that code on all WS I tested (win32, Qt, Gtk2).
I fixed it. But my fix showed a diferent bug in QT - see 0029239.

Juha Manninen

2016-01-19 11:32

developer   ~0089066

Last edited: 2016-01-19 11:35

View 3 revisions

This may be related to docked IDE at maximized state giving WM_Size Loop errors. See also the related issue 0028096.

Ondrej Pokorny

2016-01-19 12:32

developer   ~0089067

>> This may be related to docked IDE at maximized state giving WM_Size Loop errors.

Looks quite different to me. This issue (with the scrollbar position) has been solved. Or can you reproduce the bug again with the test project?

Issue History

Date Modified Username Field Change
2015-12-15 14:56 LordTiberius New Issue
2015-12-17 10:50 LordTiberius Tag Attached: scroll
2015-12-17 10:50 LordTiberius Tag Attached: scrollbar
2015-12-17 10:50 LordTiberius Tag Attached: ScrollBy
2015-12-21 13:13 Zeljan Rikalo LazTarget => -
2015-12-21 13:13 Zeljan Rikalo Note Added: 0088134
2015-12-21 13:13 Zeljan Rikalo Status new => feedback
2015-12-21 18:22 Zeljan Rikalo File Added: ScrollBoxInfiniteLoop.tar.gz
2015-12-21 18:24 Zeljan Rikalo Note Added: 0088145
2015-12-21 18:24 Zeljan Rikalo Widgetset Win32/Win64 => Win32/Win64, QT
2015-12-21 18:24 Zeljan Rikalo Note Added: 0088146
2015-12-22 13:36 Zeljan Rikalo Fixed in Revision => 50991
2015-12-22 13:36 Zeljan Rikalo Note Added: 0088167
2015-12-22 13:36 Zeljan Rikalo Status feedback => resolved
2015-12-22 13:36 Zeljan Rikalo Resolution open => fixed
2015-12-22 13:36 Zeljan Rikalo Assigned To => Zeljan Rikalo
2015-12-22 22:39 Ondrej Pokorny Fixed in Revision 50991 => 50991,50994
2015-12-22 22:45 Ondrej Pokorny Relationship added related to 0029239
2015-12-22 22:48 Ondrej Pokorny Note Added: 0088184
2016-01-19 11:32 Juha Manninen Assigned To Zeljan Rikalo => Juha Manninen
2016-01-19 11:32 Juha Manninen Note Added: 0089066
2016-01-19 11:32 Juha Manninen Status resolved => assigned
2016-01-19 11:32 Juha Manninen Resolution fixed => reopened
2016-01-19 11:33 Juha Manninen Relationship added related to 0028096
2016-01-19 11:34 Juha Manninen Note Edited: 0089066 View Revisions
2016-01-19 11:35 Juha Manninen Note Edited: 0089066 View Revisions
2016-01-19 12:32 Ondrej Pokorny Note Added: 0089067
2016-01-19 14:04 Ondrej Pokorny Relationship deleted related to 0028096
2016-01-19 14:27 Ondrej Pokorny Status assigned => resolved
2016-01-19 14:27 Ondrej Pokorny Resolution reopened => fixed
2016-01-19 14:27 Ondrej Pokorny Assigned To Juha Manninen => Zeljan Rikalo