#14719: avoid leave blank area while scrolling

22 views
Skip to first unread message

wxTrac

unread,
Oct 2, 2012, 6:06:04 AM10/2/12
to wx-...@googlegroups.com
Ticket URL: <http://trac.wxwidgets.org/ticket/14719>

#14719: avoid leave blank area while scrolling
---------------------------+------------------------------------------------
Reporter: iwobz | Owner:
Type: defect | Status: new
Priority: normal | Milestone:
Component: GUI-generic | Version: 2.9-svn
Keywords: scroll, blank | Blockedby:
Patch: 1 | Blocking:
---------------------------+------------------------------------------------
if we update the scrolled window before set the scroll pos, part of the
scrolled window's client area will be left blank, so we should set the
scroll pos before update the target window


--
Ticket URL: <http://trac.wxwidgets.org/ticket/14719>

wxTrac

unread,
Oct 2, 2012, 9:46:06 AM10/2/12
to wx-...@googlegroups.com
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:1>

#14719: avoid leave blank area while scrolling
---------------------------+------------------------------------------------
Reporter: iwobz | Owner:
Type: defect | Status: infoneeded_new
Priority: normal | Milestone:
Component: GUI-generic | Version: 2.9-svn
Keywords: scroll, blank | Blockedby:
Patch: 1 | Blocking:
---------------------------+------------------------------------------------
Changes (by vadz):

* status: new => infoneeded_new


Comment:

Could you please explain how exactly can this problem be seen? I.e.
ideally provide the smallest possible [HowToSubmitPatches patch] to the
scroll sample showing it?


--
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:1>

wxTrac

unread,
Oct 2, 2012, 10:48:19 PM10/2/12
to wx-...@googlegroups.com
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:2>

#14719: avoid leave blank area while scrolling
---------------------------+------------------------------------------------
Reporter: iwobz | Owner:
Type: defect | Status: new
Priority: normal | Milestone:
Component: GUI-generic | Version: 2.9-svn
Keywords: scroll, blank | Blockedby:
Patch: 1 | Blocking:
---------------------------+------------------------------------------------
Changes (by iwobz):

* status: infoneeded_new => new


Comment:

Replying to [comment:1 vadz]:
> Could you please explain how exactly can this problem be seen? I.e.
ideally provide the smallest possible [HowToSubmitPatches patch] to the
scroll sample showing it?



i compiled wxWidgets(2.9.4) universal version with Visual C++ 2012, then i
created a wxListCtrl in my frame, if i scoll down the listctrl, then the
last line will be blank, and when i scroll up the listctrl, the first line
will be blank,

i tried to use the lasted version in the SVN, but at the last link step,
the compiler report the the wxGUIEventLoop was not resolved, so i am not
sure does the problem still exist in the lasted version. I compared the
file /src/generic/scrlwing.cpp between 2.9.4 and the svn's latest one, i
found that they are all the same, so i guess the problem still exist.



hopefully i have explained this clearly!


--
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:2>

wxTrac

unread,
Oct 3, 2012, 3:53:10 AM10/3/12
to wx-...@googlegroups.com
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:3>

#14719: avoid leave blank area while scrolling
-------------------------------+--------------------------------------------
Reporter: iwobz | Owner:
Type: defect | Status: new
Priority: normal | Milestone:
Component: wxUniv (any port) | Version: 2.9-svn
Keywords: scroll, blank | Blockedby:
Patch: 1 | Blocking:
-------------------------------+--------------------------------------------
Changes (by vadz):

* component: GUI-generic => wxUniv (any port)


Comment:

To fix the linking problem you need to reimport the project files which
were changed in the svn in the meanwhile.

Also, can the problem be seen in the listctrl sample provided with
wxWidgets itself?

But the most important question: is this really wxUniversal-specific? I.e.
do you use wxUniv and not the native wxMSW port?


--
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:3>

wxTrac

unread,
Oct 3, 2012, 9:13:25 AM10/3/12
to wx-...@googlegroups.com
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:4>

#14719: avoid leave blank area while scrolling
-------------------------------+--------------------------------------------
Reporter: iwobz | Owner:
Type: defect | Status: new
Priority: normal | Milestone:
Component: wxUniv (any port) | Version: 2.9-svn
Keywords: scroll, blank | Blockedby:
Patch: 1 | Blocking:
-------------------------------+--------------------------------------------

Comment(by iwobz):

Replying to [comment:3 vadz]:
> To fix the linking problem you need to reimport the project files which
were changed in the svn in the meanwhile.
>
> Also, can the problem be seen in the listctrl sample provided with
wxWidgets itself?
>
> But the most important question: is this really wxUniversal-specific?
I.e. do you use wxUniv and not the native wxMSW port?


I am sure i used the wxUniv and not the wxMSW port, you can use the sample
"listctrl" provided by wxWidgets itsel to see the problem, to see the
problem, you need to add more lines and scroll the listctrl. I'm glad to
show you the sample's snapshot, but i do not know how you upload picture.


--
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:4>

wxTrac

unread,
Oct 4, 2012, 8:15:19 AM10/4/12
to wx-...@googlegroups.com
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:5>

#14719: avoid leave blank area while scrolling in wxUniv/MSW
-------------------------------------+--------------------------------------
Reporter: iwobz | Owner:
Type: defect | Status: new
Priority: normal | Milestone:
Component: wxUniv (any port) | Version: 2.9-svn
Keywords: scroll blank needs-work | Blockedby:
Patch: 1 | Blocking:
-------------------------------------+--------------------------------------
Changes (by vadz):

* keywords: scroll, blank => scroll blank needs-work


Comment:

Something must be wrong elsewhere in wxUniv because `ScrollWindow()`
shouldn't require an `Update()` to work correctly. I.e. we probably need
to use `Update()` instead of `Refresh()` in `wxWindow::ScrollWindow()` in
`src/univ/winuniv.cpp`.

I also wonder why don't we just use native scrolling for MSW there (like
we do for X11), it seems like it should work better. Could you check if
this problem can be fixed at that level?

Finally, the question about wxUniv was just because sometimes people do it
accidentally. But this doesn't seem to be your case.


--
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:5>

wxTrac

unread,
Oct 4, 2012, 1:14:56 PM10/4/12
to wx-...@googlegroups.com
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:6>

#14719: avoid leave blank area while scrolling in wxUniv/MSW
-------------------------------------+--------------------------------------
Reporter: iwobz | Owner:
Type: defect | Status: new
Priority: normal | Milestone:
Component: wxUniv (any port) | Version: 2.9-svn
Keywords: scroll blank needs-work | Blockedby:
Patch: 1 | Blocking:
-------------------------------------+--------------------------------------

Comment(by iwobz):

Replying to [comment:5 vadz]:

[[BR]]
It seems that you are not familiar with wxUniversal project, i am not
familiar with it too, you can take a look at this page
[http://www.wxwidgets.org/about/wxuniv.htm] for it's history.(All the
universal version widgets are implemented in wxWidgets itself, and they
have little or no relationship with native controls, so i think i cannot
fix the problem at that level you meant.)


[[BR]]
I am writting a music player which is based on wsWidgets. At first I hoped
to get a universal looking-effect on all the supported platforms, i need
to customize many controls, so i chose the wxUniversal port. But now I
find that the wxUniversal has so many problems, I am doubting had i made
a right decision, and i also ask myself should i give the developing work
up. But on the other hand, i have spent so much time on this application
and i am not willing to give up.


[[BR]]
I debugged the universal wxListCtrl and i found that when i scrolled the
mouse, the paint event was triggered seversal times. i also found that at
the last time the scroll pos was same at the last-1 time, in other word,
when the wxListCtrl paint on the last time, it's scroll pos has not been
updated yet, so i guess other universal widgets which can be scrolled
"may" have the same problem.


--
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:6>

wxTrac

unread,
Oct 4, 2012, 3:11:59 PM10/4/12
to wx-...@googlegroups.com
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:7>

#14719: avoid leave blank area while scrolling in wxUniv/MSW
-------------------------------------+--------------------------------------
Reporter: iwobz | Owner:
Type: defect | Status: new
Priority: normal | Milestone:
Component: wxUniv (any port) | Version: 2.9-svn
Keywords: scroll blank needs-work | Blockedby:
Patch: 1 | Blocking:
-------------------------------------+--------------------------------------

Comment(by vadz):

Replying to [comment:6 iwobz]:
> Replying to [comment:5 vadz]:
>
> [[BR]]
> It seems that you are not familiar with wxUniversal project,

I think writing it counts as being familiar with it.

> (All the universal version widgets are implemented in wxWidgets itself,
and they have little or no relationship with native controls, so i think i
cannot fix the problem at that level you meant.)

Scrolling in wxUniv is implemented in `src/univ/winuniv.cpp` as I
explained in a previous comment. If it doesn't work correctly, it really
should be fixed there.

> I am writting a music player which is based on wsWidgets. At first I
hoped to get a universal looking-effect on all the supported platforms, i
need to customize many controls, so i chose the wxUniversal port. But now
I find that the wxUniversal has so many problems,

Sadly this is true. If you want to use wxUniv, you should be ready to
spend some time on fixing bugs in it. You will also almost certainly want
to write a better looking theme for it than the current one(s).

> I debugged the universal wxListCtrl and i found that when i scrolled the
mouse, the paint event was triggered seversal times. i also found that at
the last time the scroll pos was same at the last-1 time, in other word,
when the wxListCtrl paint on the last time, it's scroll pos has not been
updated yet, so i guess other universal widgets which can be scrolled
"may" have the same problem.

Which is why it should be really fixed at the root level, i.e. in
`wxWindow` itself. Unfortunately I really don't have time to debug this
myself.


--
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:7>

wxTrac

unread,
Mar 12, 2016, 1:01:35 PM3/12/16
to wx-...@googlegroups.com
#14719: avoid leave blank area while scrolling in wxUniv/MSW
--------------------------------+-------------------------------------
Reporter: iwobz | Owner:
Type: defect | Status: closed
Priority: normal | Milestone:
Component: wxUniv (any port) | Version: stable-latest
Resolution: invalid | Keywords: scroll blank needs-work
Blocked By: | Blocking:
Patch: 1 |
--------------------------------+-------------------------------------
Changes (by vadz):

* status: new => closed
* resolution: => invalid


Comment:

As previously mentioned, the problem needs to be fixed in wxUniv itself,
we really shouldn't have to change generic code common to all ports just
to make it work.

--
Ticket URL: <http://trac.wxwidgets.org/ticket/14719#comment:8>
Reply all
Reply to author
Forward
0 new messages