adobe / brackets

An open source code editor for the web, written in JavaScript, HTML and CSS.
http://brackets.io
MIT License
33.25k stars 7.63k forks source link

scrollbar & scroll content issues #6869

Open sathyamoorthi opened 10 years ago

sathyamoorthi commented 10 years ago

Issue 1:

steps: a.Open a javascript file with scrollbar (at least 1500 lines of code). b.Then scroll to bottom of the page and put cursor in the editor. c.Then press windows + D for few times (i did 5 to 10 times). behaviour: Page scrolls to top automatically. [edit: (pflynn) - this part seems like the same issue as adobe/brackets#7351]

Issue 2:

steps: a.Open a file. b.Then drag scroll thumb to top and press windows + D few times. behaviour: Scroll thumb's height reduced to 1/4 th of it's original height. When i drag it to bottom, it slowly regains it's original height.

Platform: windows 7

Useful Links: Youtube video for this issue Google groups thread

redmunds commented 10 years ago

@JeffryBooher Can you look at this one?

JeffryBooher commented 10 years ago

@sathyamoorthi I'm unable to reproduce this scenario on Windows 8. I tried Windows 7 with Sprint 34's build but my machine has unfortunately died. @redmunds was UTR on Windows 7 with Sprint 36 but it sounds like there was at least one other person who ran into this so can we get more info?

peterflynn commented 10 years ago

@sathyamoorthi Have you tried this with all extensions disabled?

marcelgerber commented 10 years ago

@JeffryBooher

@peterflynn Yes, extensions disabled

Windows 8.1, adobe/brackets@2b557ec

peterflynn commented 10 years ago

UTR for me, though I'm frequently hitting a problem where some other app is restored to the foreground instead of Brackets, which was on top at the time I initially toggled to the Desktop. Not sure if that's an OS bug or a brackets-shell bug (this is on Windows 7).

@sathyamoorthi What are your settings for word wrap & highlight active line? Both off?

Also, how far back does this go? Did it start in any specific sprint? (Not that you can't check this purely by doing git checkouts in the Brackets repo, since brackets-shell changes between sprints as well; the safest way to check is to actually download each sprint's installer).

peterflynn commented 10 years ago

Oh, and always important to clarify -- is this with an official installed build? Or are you building brackets-shell yourself?

marcelgerber commented 10 years ago

@peterflynn In my case it's an official Brackets Sprint 36 shell, but a brackets repo pointing to 2b557ec.

Just tried multiple Brackets versions:

So it was CodeMirror which was updated in #5097. (changes)

Everything was tested with these settings:

Btw, I've got the same issue about not-always-switching-to-brackets

marcelgerber commented 10 years ago

Just did some further research: It is marijnh/codemirror@36edc05!

JeffryBooher commented 10 years ago

thanks @SAPlayer. @njx can you work with marijnh on this issue?

sathyamoorthi commented 10 years ago

@JeffryBooher, Win + D & "Show Desktop" at the left end of Taskbar are doing the same functionality. I just used "Show Desktop" button for my recording purpose to show that I gave decent time for click. And this happens in all type of files in Brackets.

@peterflynn Yes. I disabled all extensions and tried. Same behaviour ! word wrap is On. highlight active line is Off. I'm using Brackets stable release. sprint 36 experimental build 0.36.0-11506 (release 942505c3a) and these issues started from this release. Not before that.

and FYI, Scrolling is very slow at some times. You could notice that in my recording. And while I scroll up, it keep on scroll on the same line. I cannot reproduce this. But it happens me frequently. Let me try to record that as well. And sometimes brackets is taking 25% of CPU. As a work around i quit brackets and do restart. I cannot reproduce it. But it started only in this sprint. I faced 3 to 4 times this issue after I installed this sprint.

sathyamoorthi commented 10 years ago

@JeffryBooher @peterflynn I recorded poor scrolling performance and scrolls on the same line (at 00.48 Secs) issues. Once i scroll entire page it get back to normal performance. You can watch this at the end of video.

http://youtu.be/BfG6LggtWR0

How to reproduce:

  1. Win + D twice.
  2. Scroll to the bottom page by dragging scroll thumb. 3.Then, do mouse scroll upwards.
sathyamoorthi commented 10 years ago

@peterflynn @JeffryBooher

Hi, I again faced CPU burning issue. Today I have some good things to share with you. While I open dev tools i see few errors in /Utils/PerfUtils.js

https://drive.google.com/file/d/0BzqZ1GVGGP9sLTdKRnJmSE9OVjA/edit?usp=sharing

and i record a timeline for you. A timer event is kept on firing from thirdparty.min.js. Here is the timeline data.

https://docs.google.com/file/d/0BzqZ1GVGGP9sd0FMZTNMb2pBOUE/edit

njx commented 10 years ago

Bumping priority - sounds like there are a number of issues here. Nominating for 1.0 milestone.

marcelgerber commented 10 years ago

@JeffryBooher The problem is, I can't repro it in vanilla CodeMirror. But I'm not sure if it needs to be fixed in Brackets or in CM.

sathyamoorthi commented 10 years ago

CPU burning issue happens when I lock my screen or hibernate my system and come back after an hour and open brackets, it is started burning CPU.

:) I faced this several times. But i can't say it is reproducible. Maybe my above two links (console error and timeline export) could help you.

pthiess commented 10 years ago

Added Needs Review to circle back if anyone on the team run into this or can repro.

marcelgerber commented 10 years ago

I just filed this on suspicion to CM: marijnh/CodeMirror#2497

RaymondLim commented 10 years ago

I can reproduce the issue 1 only with Word Wrap on in a js file with more than 500 lines (eg. EditorManager.js from Brackets repo). And I believe this and #7351 are the same. Both of them started with sprint 36 shell, but not in sprint 35 shell (see https://github.com/adobe/brackets/issues/6869#issuecomment-35646196 and https://github.com/adobe/brackets/issues/7351#issuecomment-39251999). So I believe @SAPlayer is correct in identifying the CodeMirror change that is causing this issue. So we can investigate the shell code to prevent it from triggering unnecessary resizing events or we have to wait for a fix in CodeMirror.

sathyamoorthi commented 10 years ago

FYI,

I'm on sprint 38 experimental build 0.38.0-12606 (release 4df8afdad) and i'm not facing "poor scrolling performance and scrolls on the same line" issues.

I'm still facing Issue 1 (Page scrolls to top automatically).and Issue 2 (Scroll thumb's height reduced)

RaymondLim commented 10 years ago

Closing as fixed. @sathyamoorthi You can verify the fix when sprint 39 build is available. Or if you have set up brackets-shell repo for hacking, then you can get the latest from master and verify it on your dev build.

marcelgerber commented 10 years ago

@RaymondLim I'm still seeing issue 1 and 2 on current master. EDIT: Oh, didn't read I needed a new brackets-shell... Will try

marcelgerber commented 10 years ago

@RaymondLim After building the latest version of brackets-shell, I'm still facing this issue!

RaymondLim commented 10 years ago

Hmm.. I did verify it on my win 7 and I'm sure @JeffryBooher did on his win 8.1. @SAPlayer Are you compiling with Visual Studio, or are you just running grunt from command line? If you're using VS, can you verify that you have the changed code? I know you have some issues like #5731 that you can reproduce it with your dev build but no one else. So maybe you can verify it when the sprint 39 build is available.

JeffryBooher commented 10 years ago

Actually, @RaymondLim, I could never reproduce this case on Windows 8.1 but I still see some flicker with codemirror. I'm not sure what is causing this.

njx commented 10 years ago

FYI, the issue about the scroll position jumping backwards might be fixed with the fix for https://github.com/marijnh/CodeMirror/issues/2537 - though there might be other cases where the wheel delta values get incorrectly calculated.

marcelgerber commented 10 years ago

@RaymondLim Yes, I built it with VS (2012 Express), but I'll just wait for your build.

@njx I just tested this change (by simply copying + pasting, hehe), still the same issue.

njx commented 10 years ago

@SAPlayer - do you mean that the issue about scrolling jumping backwards wasn't fixed with Marijn's fix? Or the filer's original issue?

marcelgerber commented 10 years ago

Yep, I mean marijnh's fix didn't help.

njx commented 10 years ago

Hm, ok. Can you reproduce the jumping backwards issue every time (or very frequently)? That would be helpful since I don't have consistent repro steps for that specific issue.

marcelgerber commented 10 years ago

Yes, I can easily repro it by pressing Win+D approx 6 times in a fast manner (Windows 8.1). But I just tested it in a Win7 VM, where I cannot repro it.

marcelgerber commented 10 years ago

@RaymondLim Verified. Not fixed with Sprint 39 shell (the official one).

RaymondLim commented 10 years ago

Reopening since @SAPlayer still can reproduce it on win 8.1.

njx commented 10 years ago

Looking at this thread, I think there might still be some confusion as to what still reproduces. By "jumping backwards", I didn't mean jumping to the top of the file (which is the filer's original bug - hitting Win+D multiple times jumps to the top of the file). I meant the issue where scrolling upwards with the mousewheel or touch input sometimes gets "stuck" and prevents you from scrolling further.

@SAPlayer, it sounds like the issue you're reproducing is the Win+D issue. If so, that seems to be a duplicate of #7351, as @peterflynn noted. Do you agree? If so, I think we can just close this.

marcelgerber commented 10 years ago

@njx Jup, like these issues are quite similar. But as #7351 is already closed as fixed, I'm inclined to leaving this one open.

njx commented 10 years ago

Oops, you're right. So let's leave this open, but I'll change it to low priority. Thanks.

pthiess commented 10 years ago

1.0 last reviewed

bluell commented 10 years ago

I checked this thread, it looks like have some different with me, but similar.

I use Win 7 64. When I start use Brackets, this issue already have. Now I use the last version. Still have this issue.

peterflynn commented 9 years ago

@bluell Can you list exact, specific steps to clarify what you mean by "minimize the Brackets twice"? Where are you clicking (or what key are you pressing) to minimize? What are you doing to restore the window so that you can minimize it a 2nd time? Are you doing anything in between? Is the Brackets window size maximized, or is it some other size (or does it happen either way?).

If you have customized the Brackets font size at all, try View > Restore Font Size and see if it still happens then.

Does this happen for all files, or just some. For example, if you open the Getting Started project that comes with Brackets, does it happen for those files?

Does it matter where the cursor is within the file? Does it happen even if the view is scrolled all the way to the top of the file, or do you need to be scrolled down a certain amount before it will happen?

peterflynn commented 9 years ago

@JeffryBooher Fwiw, I'm still seeing funny resize events when restoring the Brackets window from a minimized state (contrary to the #7351 fix). This could explain why some users continue to see weird scroll pos jumping...

  1. Run $(window).resize(function () { console.log("Resize:", window.innerWidth, window.innerHeight); }) on the console
  2. Minimize/restore the window -- either by clicking the TaskBar icon twice, or by using the titlebar minimize button and then restoring (via either TaskBar or Alt-Tab)

Result: I get Resize: 144 0 x2 followed by Resize: 1920 1126 (or whatever) x2. When I do the same thing in browser I get zero resize events.

bluell commented 9 years ago

My comment below:

Can you list exact, specific steps to clarify what you mean by "minimize the Brackets twice"? Where are you clicking (or what key are you pressing) to minimize? What are you doing to restore the window so that you can minimize it a 2nd time? Are you doing anything in between? Is the Brackets window size maximized, or is it some other size (or does it happen either way?).

If you have customized the Brackets font size at all, try View > Restore Font Size and see if it still happens then.

Does this happen for all files, or just some. For example, if you open the Getting Started project that comes with Brackets, does it happen for those files?

Does it matter where the cursor is within the file? Does it happen even if the view is scrolled all the way to the top of the file, or do you need to be scrolled down a certain amount before it will happen?

marcelgerber commented 9 years ago

Yeah, it looks like this is finally fixed in CEF 2171! I'm so happy right now as this has bugged me for a long time!

marcelgerber commented 9 years ago

@peterflynn @JeffryBooher I managed to bisect brackets-shell (which is quite cumbersome...) and found out that adobe/brackets-shell@b6869c1a9aaa540741c18552b6391e873fb611df is the culprit, causing the spurious resize events.

peterflynn commented 9 years ago

@MarcelGerber Hmm, but it's fixed in 2171? That's odd, because the code in that commit is still part of newer builds. Maybe the new CEF has some sort of guard to ignore spurious sizes? Or maybe the slight async delay that's now seen in CEF's resize repainting (see https://github.com/adobe/brackets/issues/4841#issuecomment-65526081) is enough to insulate CEF from the momentary bad size...

marcelgerber commented 9 years ago

No, you got me wrong. The bug reported by @sathyamoorthi is fixed, but the funny resize event is still there in CEF 2171, and it probably causes other bugs.