Mouse pointer shows busy icon when filepicker open; and during startup phase.

VERIFIED FIXED

Status

()

Core
XUL
P2
normal
VERIFIED FIXED
18 years ago
10 years ago

People

(Reporter: shrirang khanzode, Assigned: Mike Pinkerton (not reading bugmail))

Tracking

Trunk
PowerPC
Mac System 9.x
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [nsbeta3-][pdtp2][rtm++])

(Reporter)

Description

18 years ago
build:091808m18 mac only

Steps:

1 Launch Composer
2 Type some text 
3 Goto 'File|Print'
4 Observe that the mouse pointer changes to a busy icon and stays like that 
  forever.

Expected: Mouse pointer should not show busy state after dialog is open.
(Assignee)

Comment 1

18 years ago
oh, drat, guess i didn't try that testcase. I forgot about OS modal dialogs. Is 
this that major? It's probably worth fixing.
Hardware: PC → Macintosh

Comment 2

18 years ago
Another code path to consider: start a drag and hold it for a few seconds. 
The cursor changes to the 'watch' cursor.
(Assignee)

Comment 3

18 years ago
since this will confuse users to no end (thinking the app has just hung on them), 
i suggest we beta3+ this. it is a perceived crash, when in fact the app is happy 
and functioning normally.

the fix is pretty safe, and needs to be done for dnd as well.
Keywords: nsbeta3
Priority: P3 → P2

Comment 4

18 years ago
Watch cursor is a powerful cue for Mac users that the app has gone 'bye-bye',
they will think it is crashed. nsbeta3+/p2 for m18
Whiteboard: [nsbeta3+]
Target Milestone: --- → M18
(Assignee)

Comment 5

18 years ago
i've got a fix, just need someone kewl like smfr to look over it
Whiteboard: [nsbeta3+] → [nsbeta3+] fix in hand
(Assignee)

Comment 6

18 years ago
checked in
Status: NEW → RESOLVED
Last Resolved: 18 years ago
Resolution: --- → FIXED
Whiteboard: [nsbeta3+] fix in hand → [nsbeta3+]

Comment 7

18 years ago
At mpt's prompting (on bug 52108), while this is fixed for the print dialog
and the drag session, there are two other common code paths which need to 
have the cursor change suspended: 1) the filepicker native dialog (File->Open,
File->Save As), and 2) during the entire startup sequence (it seems a bit 
redundant in that case). Reopening.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Summary: Mouse pointer shows busy icon after PRINT dialog is opened in composer → Mouse pointer shows busy icon when filepicker open; and during startup phase.
(Assignee)

Comment 8

18 years ago
yeah, yeah, yeah, i forgot this one. easy fix. mpt can bite me.
(Assignee)

Comment 9

18 years ago
fixed, and fixed. both filePicker and fileWidget are ready for all mpt can dish 
out.

Comment 10

18 years ago
pdt agrees p2.
Whiteboard: [nsbeta3+] → [nsbeta3+][pdtp2]

Comment 11

18 years ago
/me bites pinkerton ... So Mike, are you going to be jumping around fixing new 
instances of this bug every time any part of the Mozilla chrome becomes
Mac-native? For example:
* when we start using the native Mac color picker for prefs
* when we start using the native Mac color picker for Composer
* when bug 16766 (single-drag context menu access) is fixed
* when bug 34572 (native context menus) is fixed
* when Mozilla starts supporting the Keychain, and brings up native Keychain
  dialogs
etc etc etc ...

If so, then it really looks as if you fixed bug 52108 the Wrong Way.
(Assignee)

Comment 12

18 years ago
yup.
Status: REOPENED → RESOLVED
Last Resolved: 18 years ago18 years ago
Resolution: --- → FIXED

Comment 13

18 years ago
Reopening. With build 2000092212, I no longer get the flickering busy cursor 
while native dialogs are open, or the busy cursor in the Print dialog, but I 
still get:
* spastic cursor (flickering between normal and busy) during startup phase, as
  noted in this bug by jrgm on 2000-09-21;
* busy cursor in the Save Image dialog when using FlashIt to take a screenshot of
  Mozilla;
* busy cursor whenever I mousedown anywhere in the Open File or Save dialogs for
  more than a second (e.g. dragging the scrollbar thumb, or even mousing down on
  a non-widget part of the dialog).
Status: RESOLVED → REOPENED
Resolution: FIXED → ---

Comment 14

18 years ago
We'll just have to live with that.  nsbeta3-/future
Whiteboard: [nsbeta3+][pdtp2] → [nsbeta3-][pdtp2]
Target Milestone: M18 → Future

Comment 15

18 years ago
[Using the same build]

The cursor also continuously flickers between the arrow and the spinning watch in 
the mail three-pane window, if a mail folder is open (i.e. displaying its 
messages in the thread pane). This is pretty disconcerting (not to mention 
inexplicable) when you're trying to read your e-mail. So you may want to consider 
the nsbeta3- status of this bug.

Comment 16

18 years ago
nominate for rtm consideration
Keywords: rtm

Comment 17

18 years ago
rtm+ need info: Visible bug, known safe one-line fix that has already been done 
elsewhere in the app, Pink will need to make changes to this file for other rtm 
bugs.
Whiteboard: [nsbeta3-][pdtp2] → [nsbeta3-][pdtp2][rtm+ need info]
Target Milestone: Future → M19
(Assignee)

Updated

18 years ago
Status: REOPENED → ASSIGNED
(Assignee)

Comment 18

18 years ago
here's my patch, r=pchen

Index: mozilla/widget/src/mac/nsScrollbar.cpp
===================================================================
RCS file: /m/pub/mozilla/widget/src/mac/nsScrollbar.cpp,v
retrieving revision 1.34
diff -u -2 -r1.34 nsScrollbar.cpp
--- nsScrollbar.cpp	2000/04/19 22:12:01	1.34
+++ nsScrollbar.cpp	2000/10/05 19:12:38
@@ -27,4 +27,6 @@
 #endif

+#include "nsWatchTask.h"
+
 NS_IMPL_ADDREF(nsScrollbar);
 NS_IMPL_RELEASE(nsScrollbar);
@@ -207,5 +209,7 @@

					// for the thumb (this was illegal in previous

					// versions of the defproc).
+
					nsWatchTask::GetTask().Suspend();

					::TrackControl(mControl, thePoint, sControlActionProc);
+
					nsWatchTask::GetTask().Resume();

					// We don't dispatch the mouseDown event because mouseUp is eaten

					// by TrackControl anyway and the only messages the app really

Index: mozilla/widget/src/mac/nsFileWidget.cpp
===================================================================
RCS file: /m/pub/mozilla/widget/src/mac/nsFileWidget.cpp,v
retrieving revision 1.27
diff -u -2 -r1.27 nsFileWidget.cpp
--- nsFileWidget.cpp	2000/09/22 04:27:24	1.27
+++ nsFileWidget.cpp	2000/10/05 19:12:38
@@ -206,6 +206,4 @@
 static pascal void myProc ( NavEventCallbackMessage msg, NavCBRecPtr cbRec,
NavCallBackUserData data )
 {
-  nsWatchTask::GetTask().EventLoopReached();
-
 	switch ( msg ) {
 	case kNavCBEvent:
@@ -253,4 +251,5 @@

	

	// Display the get file dialog
+    nsWatchTask::GetTask().Suspend();

	anErr = ::NavPutFile(

				NULL,
@@ -261,4 +260,5 @@

				creatorToSave,

				NULL); // callbackUD	
+    nsWatchTask::GetTask().Resume();
 	

	// See if the user has selected save
@@ -326,4 +326,5 @@

	

	// Display the get file dialog
+    nsWatchTask::GetTask().Suspend();

	anErr = ::NavGetFile(

				NULL,
@@ -335,4 +336,5 @@

				NULL, //typeList,

				NULL); // callbackUD	
+    nsWatchTask::GetTask().Resume();
 	

	// See if the user has selected save
@@ -394,4 +396,5 @@

	

	// Display the get file dialog
+    nsWatchTask::GetTask().Suspend();

	anErr = ::NavChooseFolder(

				NULL,
@@ -401,4 +404,5 @@

				NULL, // filter proc

				NULL); // callbackUD	
+    nsWatchTask::GetTask().Resume();
 	

	// See if the user has selected save


Index: mozilla/widget/src/mac/nsFilePicker.cpp
===================================================================
RCS file: /m/pub/mozilla/widget/src/mac/nsFilePicker.cpp,v
retrieving revision 1.24
diff -u -2 -r1.24 nsFilePicker.cpp
--- nsFilePicker.cpp	2000/09/22 04:27:22	1.24
+++ nsFilePicker.cpp	2000/10/05 19:12:38
@@ -172,6 +172,4 @@
 static pascal void FileDialogEventHandlerProc( NavEventCallbackMessage msg,
NavCBRecPtr cbRec, NavCallBackUserData data )
 {
-  nsWatchTask::GetTask().EventLoopReached();
-
 	switch ( msg ) {
 	case kNavCBEvent:
@@ -303,4 +301,5 @@

	// Display the get file dialog. Only use a filter proc if there are any

	// filters registered.
+    nsWatchTask::GetTask().Suspend();

	anErr = ::NavGetFile(

				NULL,
@@ -312,4 +311,5 @@

				NULL, //typeList,

				this); // callbackUD - used by the filterProc
+    nsWatchTask::GetTask().Resume();
 	

	// See if the user has selected save
@@ -370,4 +370,5 @@

	

	// Display the get file dialog
+    nsWatchTask::GetTask().Suspend();

	anErr = ::NavChooseFolder(

				NULL,
@@ -377,4 +378,5 @@

				NULL, // filter proc

				NULL); // callbackUD	
+    nsWatchTask::GetTask().Resume();
 	

	// See if the user has selected save
@@ -427,4 +429,5 @@

	

	// Display the get file dialog
+    nsWatchTask::GetTask().Suspend();

	anErr = ::NavPutFile(

				NULL,
@@ -435,4 +438,5 @@

				creatorToSave,

				NULL); // callbackUD	
+    nsWatchTask::GetTask().Resume();
 	

	// See if the user has selected save


Index: mozilla/widget/src/mac/nsMacMessagePump.cpp
===================================================================
RCS file: /m/pub/mozilla/widget/src/mac/nsMacMessagePump.cpp,v
retrieving revision 1.110
diff -u -2 -r1.110 nsMacMessagePump.cpp
--- nsMacMessagePump.cpp	2000/09/21 05:11:51	1.110
+++ nsMacMessagePump.cpp	2000/10/05 19:12:38
@@ -193,4 +193,7 @@
 	mTSMMessagePump = nsMacTSMMessagePump::GetSingleton();
 	NS_ASSERTION(mTSMMessagePump!=NULL,"nsMacMessagePump::nsMacMessagePump: Unable
to create TSM Message Pump.");
+
+  // startup the watch cursor idle time vbl task
+  nsWatchTask::GetTask().Start();
 }



Index: mozilla/gfx/src/mac/nsWatchTask.h
===================================================================
RCS file: /m/pub/mozilla/gfx/src/mac/nsWatchTask.h,v
retrieving revision 1.1
diff -u -2 -r1.1 nsWatchTask.h
--- nsWatchTask.h	2000/09/21 05:05:09	1.1
+++ nsWatchTask.h	2000/10/05 19:13:46
@@ -45,4 +45,9 @@
   ~nsWatchTask ( ) ;

+    // Registers the VBL task and does other various init tasks to begin
+    // watching for time away from the event loop. It is ok to call other
+    // methods on this object w/out calling Start().
+  NS_GFX void Start ( ) ;
+
     // call from the main event loop
   NS_GFX void EventLoopReached ( ) ;


Index: mozilla/gfx/src/mac/nsWatchTask.cpp
===================================================================
RCS file: /m/pub/mozilla/gfx/src/mac/nsWatchTask.cpp,v
retrieving revision 1.1
diff -u -2 -r1.1 nsWatchTask.cpp
--- nsWatchTask.cpp	2000/09/21 05:05:05	1.1
+++ nsWatchTask.cpp	2000/10/05 19:13:46
@@ -47,12 +47,5 @@
      mInstallSucceeded(PR_FALSE), mAnimation(0)
 {
-  // setup the task
-  mTask.qType = vType;
-
mTask.vblAddr = NewVBLProc((VBLProcPtr)DoWatchTask);
-  mTask.vblCount = kRepeatInterval;
-  mTask.vblPhase = 0;
-
-  // install it
-  mInstallSucceeded = ::VInstall((QElemPtr)&mTask) == noErr;
+
 }

@@ -64,4 +57,26 @@
   InitCursor();
 }
+
+
+//
+// Start
+//
+// Registers the VBL task and does other various init tasks to begin
+// watching for time away from the event loop. It is ok to call other
+// methods on this object w/out calling Start().
+//
+void
+nsWatchTask :: Start ( )
+{
+  // setup the task
+  mTask.qType = vType;
+
mTask.vblAddr = NewVBLProc((VBLProcPtr)DoWatchTask);
+  mTask.vblCount = kRepeatInterval;
+  mTask.vblPhase = 0;
+
+  // install it
+  mInstallSucceeded = ::VInstall((QElemPtr)&mTask) == noErr;
+
+} // Start


Comment 19

18 years ago
a=hyatt
(Assignee)

Comment 20

18 years ago
removing need info. have patch, and r (pchen) and a (hyatt).
Whiteboard: [nsbeta3-][pdtp2][rtm+ need info] → [nsbeta3-][pdtp2][rtm+]

Comment 21

18 years ago
PDT marking [rtm++]
Whiteboard: [nsbeta3-][pdtp2][rtm+] → [nsbeta3-][pdtp2][rtm++]
(Assignee)

Comment 22

18 years ago
fix landed on branch and trunk.
Status: ASSIGNED → RESOLVED
Last Resolved: 18 years ago18 years ago
Resolution: --- → FIXED

Comment 23

18 years ago
verified fixed, branch 2000101108 mac

Watch does not appear in Print and filepicker dialogs, when mousedown on a 
control in a native dialog, when mousedown-hold on the scrollbar of an HTML 
select in a web page (native), or anywhere in the XUL of the app including in 
the three-pane mail.

We are not going to address the flickering cursor at startup, and there is a 
bug 55683 "Watch cursor displayed when taking a screen shot" filed on the 
screen shot issue.
Status: RESOLVED → VERIFIED

Updated

17 years ago
Depends on: 52108

Updated

13 years ago
OS: Mac System 9.x

Updated

10 years ago
Component: XP Toolkit/Widgets: Menus → XUL
QA Contact: jrgmorrison → xptoolkit.widgets
You need to log in before you can comment on or make changes to this bug.