FLTK logo

STR #1724

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 Home  |  Articles & FAQs  |  Bugs & Features  |  Documentation  |  Download  |  Screenshots  ]
 

Return to Bugs & Features | Roadmap 1.1 | SVN ⇄ GIT ]

STR #1724

Application:FLTK Library
Status:1 - Closed w/Resolution
Priority:3 - Moderate, e.g. unable to compile the software
Scope:3 - Applies to all machines and operating systems
Subsystem:Core Library
Summary:Bug: Fl_Browser: content/scrollbar wrong after hide() changes
Version:1.1.7
Created By:xurux
Assigned To:mike
Fix Version:1.1-current (SVN: v5987)
Update Notification:

Receive EMails Don't Receive EMails

Trouble Report Files:


Name/Time/Date Filename/Size  
 
#1 xurux
12:13 Jul 03, 2007
bug_browser.cpp
4k
 
 
#2 xurux
12:29 Oct 06, 2007
fltk_hide_show_faster.patch
1k
 
     

Trouble Report Comments:


Name/Time/Date Text  
 
#1 xurux
15:15 Jul 02, 2007
I have inserted 5000 lines, then when i hide() (OR show() again) the first 2/3 of these lines, while being scrolled down, _nothing_ is displayed at first. When i grab the scrollbar with the mouse to scroll up, then the last lines are displayed, and when scrolling up more everything pops back to normal.

notes:

* i am also calling middleline(~4500) after the hide()/show() changes.

* calling both:
topline(1);
middleline(4500);
... does not help.

* middleline(...) etc. work _OK_ (when using hidden lines) after i have scrolled up to the begin of the list _once_ (until the next massive hide()-changes)
 
 
#2 xurux
12:17 Jul 03, 2007
Hi, i have added an example:

* scroll to the end and then mark "[x] all" (which will display lines 1-1000 instead of only 667-1000)

(you can also play with "filter")

* in the source both these lines exist:
browser->topline(1);
browser->middleline(700);
(the bug exists also without them)
 
 
#3 xurux
12:38 Jul 16, 2007
Another, related bug, is that, although the documentation says differently, hidden lines can be selected/unselected: this happens
when you select a whole range of lines (with mouse) - then the hidden lines in this range are also selected !!

Correct Behaviour would be: selection status of hidden lines is not changed, unless a new selection is begun (selection of hidden lines is cleared then).

(maybe the 2 bugs can be fixed together)
 
 
#4 matt
09:46 Oct 06, 2007
Top 1: at 5000 lines of text, each one being 10 or so pixels high, your pixel positions go beyond the limit of 32768 for coordinates.

Top 2: when you find a second, different bug, please file a new bug report next time.

Thanks, I will try to fix both issues when I find the time.
 
 
#5 xurux
11:58 Oct 06, 2007
Bug 1 is not so severe, it is only an *optical* issue (actually i have found
a workaround: after show()/hide() changes, i insert/delete a few lines, which
i have to do anyway, and then calling topline()/middleline() works correctly)

Note also, if you try to fix Bug 1, please try to not make show()/hide() slower
(i have now up to 50000 entries in the list, and i even made already a modification to
fltk-lib source code to *improve* the speed of hide()/show(); i'm adding that
patch for reference)

Bug 2 is not so good: you think invisible lines could not be marked, and then
when starting an action on the marked lines, these invisible entries are also
(unintentionally) modified.
 
 
#6 ianmacarthur
10:11 Oct 07, 2007
Blimey - up to 50000 entries in the list! I am amazed. Mind you - I do wonder if the basic Fl_Browser widget is the correct thing to use?
When I have been managing large lists, I always use a subclass and manage the lists myself - that way I can do a better job than the basic browser coded does. There are a great many optimisations you can make when managing very large lists yourself that Fl_Browser simply can not do.
I think you might get much better performance by making a subclass specifically tailored to manage your lists.
--
Ian
 
 
#7 mike
08:46 Nov 20, 2007
We'll just flag redraw() on hide/show.  
 
#8 mike
13:57 Nov 20, 2007
Fixed in Subversion repository.  
     

Return to Bugs & Features ]

 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.