[xlib] nsWindow::SetFocus causes *major* unnecessary redraws

RESOLVED WONTFIX

Status

()

Core
XUL
P2
major
RESOLVED WONTFIX
17 years ago
11 years ago

People

(Reporter: pocemit, Assigned: Roland Mainz)

Tracking

Trunk
x86
Linux
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

17 years ago
The current implementation of nsWindow::SetFocus blows.
You know the delay you get when exposing Mozilla window in Xlib toolkit and no
such delay in GTK toolkit? Well, SetFocus is the problem.

Current implementation is ugly, incorrect, and makes Xlib port very slow.

Fixing this will also fix bug 58158.

To verify that SetFocus() is indeed the culprit of slow redraws:

1. edit nsWindow.cpp and comment out all the code in SetFocus.
2. Recompile.3. notice major redraw speedup on expose and during desktop switching

Any ideas, anyone?
(Reporter)

Comment 1

17 years ago
This one is big, fixing it will speed up Xlib toolkit both locally and remote... :)
Blocks: 58158, 79119
Keywords: helpwanted
Priority: -- → P2
Target Milestone: --- → mozilla0.9.3
xlib --> blizzard
Assignee: trudelle → blizzard

Comment 3

17 years ago
Here is patch that removes actevate part, it seems to speed up lot.


Index: widget/src/xlib/nsWindow.cpp
===================================================================
RCS file: /cvsroot/mozilla/widget/src/xlib/nsWindow.cpp,v
retrieving revision 1.46
diff -u -r1.46 nsWindow.cpp
--- widget/src/xlib/nsWindow.cpp        2001/07/10 23:44:02     1.46
+++ widget/src/xlib/nsWindow.cpp        2001/07/23 21:04:02
@@ -387,20 +387,6 @@
   DispatchEvent(&event, status);
   Release();
   
-  
-
-  event.message = NS_ACTIVATE;
-  
-  event.widget  = this;
-  event.eventStructType = NS_GUI_EVENT;
-  event.time = 0;
-  event.point.x = 0;
-  event.point.y = 0;
-  
-  AddRef();
-  DispatchWindowEvent(event);
-  Release();
-  
   mBlockFocusEvents = PR_FALSE;
   
   return NS_OK;
(Reporter)

Updated

17 years ago
Target Milestone: mozilla0.9.3 → mozilla0.9.4
(Assignee)

Comment 4

17 years ago
Stealing patch from blizzard to get it in "quick"...
Assignee: blizzard → Roland.Mainz
Target Milestone: mozilla0.9.4 → mozilla0.9.3
(Assignee)

Comment 5

17 years ago
Created attachment 43385 [details] [diff] [review]
Tomi's patch for 2001-07-23-08-trunk
(Assignee)

Comment 6

17 years ago
Filed Tomi's patch as attachment.

r=roland.mainz@informatik.med.uni-giessen.de - major speedup
Status: NEW → ASSIGNED
Keywords: helpwanted
(Assignee)

Updated

17 years ago
Keywords: patch, review
(Reporter)

Comment 7

17 years ago
the patch is no good - i mean it may speed things up but it makes the HTML area
unusable from keyboard - it gets no input focus. the solution still evades us.
:)
(Assignee)

Comment 8

17 years ago
Confirming. The patch causes that XP widgets won't get focus anymore... ;-((
Keywords: patch, review

Comment 9

17 years ago
Missed 0.9.3.
Target Milestone: mozilla0.9.3 → mozilla0.9.4

Comment 10

17 years ago
May God have mercy on us all. The 212 bug spam-o-rama is Now!
QA Contact: aegis → jrgm
(Assignee)

Comment 11

17 years ago
Retargeting to milestone 0.9.6 for now ... ;-((
Target Milestone: mozilla0.9.4 → mozilla0.9.6
(Assignee)

Comment 12

17 years ago
Any ideas how to fix this bug ?
(Assignee)

Comment 13

17 years ago
I revamped parts of the Xlib widget&&timer code... is this still an issue ?
Target Milestone: mozilla0.9.6 → mozilla0.9.8
Target Milestone: mozilla0.9.8 → ---

Comment 14

16 years ago
I am _begging_ to get this fixed for the 1.3 version.  If it is not fixed my
company will have to continue using Netscape 4.76 on Red Hat 6.x for mail. Can
you believe it?  We are in the midst of migrating to Red Hat 8 and have really
hit a wall on this.

I believe that this bug may be the same or is very closely related to:

  Bug 84920
  Bug 89919 ?? maybe
  Bug 104176
  Bug 103241 
  Bug 136230
  Bug 163264

I am reporting the same message to these other bug nubmers.

This bug is extremely serious to those users that it affects and makes Mozilla
-- ESPECIALLY THE MAIL which does constant opening and closing of windows --
unusuable in a business/production environment.  Several reporters have stated
this, but so far -- after more than 18 months -- to no effect.

I believe that this bug has not received the proper attention because:

1) It was spread over many reports that used varying terminology. 

2) It was assigned to various people, one of whom appears to have been oblivious
about it before he become employed elsewhere. Nobody seems to have realized that
all these reports are about the same thing.

3) ***** The bug is less noticable on faster or dedicated systems that
developers and engineers are more likely to use. However, for a business user
working over a busy network, connecting to a busy server, it is a PRODUCTIVITY
KILLER.

The distillation of all the reports is:

PROBLEM:

A) Any screen redrawing resulting from window opening, closing, moving,
minimizing/maximizing, or resizing is EXTREMELY SLOW, particularly when multiple
Mozilla windows are open.  Redrawing is also very slow when focus is changed
from one mail folder to another or when the user right clicks on a mail folder
to get a context menu.

For example, when I move THIS browser window, I momentarily see FIVE (5)
duplicates of this window and I can count four seconds before all the screen
redrawing is done.  Resizing is even slower -- it take about an 8-count before
the screen is redrawn.  Closing this window also takes about an 8-count before
the screen is fully redrawn. Minimizing this window is quite bizzare; there are
about fifteen (15) momentary black-outlined rectangles getting smaller and
smaller as it minimizes; a 5-count before all redrawing is complete.

B) If you are working only in one screen typing like I am now, this is not a big
deal. However, _MAIL_ users are constantly opening message windows, changing
focus between IMAP folders, etc., etc.  As I have spent a couple days test using
the mail, I have made many mistakes because I thought all the redrawing was done
when it was not. As a result, messages have been dragged to the wrong folders,
folders have been expanded or unexpanded when I was trying to do the opposite,
etc.  (I have tons of experience using NS 4.76 doing the exact same work and
have never had any of these kinds of problems.)  This is a PRODUCTIVITY KILLER
for mail users.

C) Reporters have reported this on:
Linux X11
Linux (ver not stated) on a PC
Windows 95 PC
Windows NT4 PC
Windows NT 5.1
Windows 2000
OS X on iMac & G4 (but maybe only 10.2 or higher??)
Sun OS (version ?)
Solaris 2.8

D) All reporters seem to be reporting on reasonably (to very) fast machines with
decent to excellent amounts of RAM.

E) Several reporters have clearly stated that it is "virtually unusable" or
otherwise not useable in a business environment.  I must agree!

MY EXPERIENCE:

1) This Mozilla is running on a Red Hat 8 server to which we are migrating. Our
migration is essentially stalled until this issue is addressed.  I cannot
believe that I am going to have to keep running a Red Hat 6.x server to provide
Netscape 4.76 email to my staff!

  Red Hat 8.0 with kernel 2.4.18-18.8.0 and all but the latest (i.e. last two
weeks) updates via RH up2date. UW IMAP vers 2001a release 15 from Red Hat 
supplied RPMs (from RH install CD). 

  Mozilla 1.2.1 (Xft build) from Mozilla RPMs
  Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2) Gecko/20021202

2) When we first saw the problem, we assumed that it was an X problem, so we
tested per the below.  The workstations are Windows 95 PCs (we hope to be
Microsoft free by the end of 2003!) running X windowing software to provide X
access to the Linux servers.

*** NOTE THAT THIS X WINDOWING (and 10 mb network in general) IS PROBABLY
PROVIDING SOME OF THE DELAY THAT MAKES THIS BUG MORE OBVIOUS.  (It is sort of
like testing an application over a 28.8 kb modem to see what is really going
on.) HOWEVER, _ALL_, I REPEAT _ALL_ OF OUR OTHER RH 6.X AND RH 8 APPLICATIONS DO
_NOT_ HAVE ANY OF THESE REDRAW SPEED ISSUES, EVEN WHEN THE NETWORK IS UNDER
HEAVY LOAD.

a) Tested through SCO's PC XVISION 7.32 running on Windows 95 running Mozilla
running on our RH 8 server.  Mozilla is the only application that shows any
redraw speed problems.  This is our oldest Xwindowing software.  The PCs tested
were 300 to 400 MHZ machines with 256 to 512 MB of RAM.

b) Tested through CYGWIN XFREE86 4.2 (the latest production release) running on
Windows 95 running Mozilla running on our RH 8 server. Mozilla is the only
application that shows any redraw speed problems.  On this newer Xwindowing
software, the redraw problem was perhaps 20% less (20% faster) than on the
XVISION. The PC tested with Cygwin (specifically installed for THIS test) is a
400 MHZ machine with 512 MB of RAM.

c) Tested directly on our Red Hat 8 server console (i.e. no network, PC, or
windowing software to slow things down) running DUAL 1 GB processors with 3
(three) _GB_ of RAM.  Redraw is noticable, but would not bother anybody. When
moving one Mozilla browswer window around on top of another, I get momentary
duplication of the chrome -- about five to six copies of the window. By
comparison, similar window movements of other application windows on this
machine do NOT show this delay -- for other applications, redraw is
instantaneous. However, as I said, it is perfectly usable -- BUT not every staff
member (none, in fact) can use the server as a workstation!

Please help!

Jay

Updated

16 years ago
Depends on: 104176
Xlib port has been removed from trunk (bug 326152)

-> WONTFIX
Status: ASSIGNED → RESOLVED
Last Resolved: 11 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.