Closed
Bug 53121
Opened 24 years ago
Closed 24 years ago
Mouse pointer shows busy icon when filepicker open; and during startup phase.
Categories
(Core :: XUL, defect, P2)
Tracking
()
VERIFIED
FIXED
People
(Reporter: shrir, Assigned: mikepinkerton)
References
Details
(Whiteboard: [nsbeta3-][pdtp2][rtm++])
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•24 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•24 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•24 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•24 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•24 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•24 years ago
|
||
checked in
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Whiteboard: [nsbeta3+] fix in hand → [nsbeta3+]
Comment 7•24 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•24 years ago
|
||
yeah, yeah, yeah, i forgot this one. easy fix. mpt can bite me.
Assignee | ||
Comment 9•24 years ago
|
||
fixed, and fixed. both filePicker and fileWidget are ready for all mpt can dish
out.
Comment 11•24 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•24 years ago
|
||
yup.
Status: REOPENED → RESOLVED
Closed: 24 years ago → 24 years ago
Resolution: --- → FIXED
Comment 13•24 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•24 years ago
|
||
We'll just have to live with that. nsbeta3-/future
Whiteboard: [nsbeta3+][pdtp2] → [nsbeta3-][pdtp2]
Target Milestone: M18 → Future
Comment 15•24 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 17•24 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•24 years ago
|
Status: REOPENED → ASSIGNED
Assignee | ||
Comment 18•24 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•24 years ago
|
||
a=hyatt
Assignee | ||
Comment 20•24 years ago
|
||
removing need info. have patch, and r (pchen) and a (hyatt).
Whiteboard: [nsbeta3-][pdtp2][rtm+ need info] → [nsbeta3-][pdtp2][rtm+]
Comment 21•24 years ago
|
||
PDT marking [rtm++]
Whiteboard: [nsbeta3-][pdtp2][rtm+] → [nsbeta3-][pdtp2][rtm++]
Assignee | ||
Comment 22•24 years ago
|
||
fix landed on branch and trunk.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago → 24 years ago
Resolution: --- → FIXED
Comment 23•24 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
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.
Description
•