Closed Bug 274792 Opened 20 years ago Closed 6 years ago

nsIDomInternalWindow::GetAttention does nothing on BeOS

Categories

(Core Graveyard :: Widget: BeOS, defect)

Other
BeOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: bugzillamozilla, Assigned: beos)

References

()

Details

Under Windows, Chatzilla blinks the taskbar button to notify users of action
(when its window is inactive). This is quite convenient, but it's probably not
available in BeOS. A blinking system-tray icon in the Deskbar could serve as an
adequate alternative.

Prog.
Need adding Deskbar replicant object on startup.
Probably somewhere nearly to splashscreen launch.

Or, as simple fast workaround - beep sound
I believe you need to take this up with whoever deals with BeOS' nsWindow
implementation. :)

Unfortunately I know absolutely nothing about BeOS or I'd be suggesting fixes.

Windows' implementation of GetAttention:
  http://lxr.mozilla.org/mozilla/source/widget/src/windows/nsWindow.cpp#6843

Global base implementation:
  http://lxr.mozilla.org/mozilla/source/widget/src/xpwidgets/nsBaseWidget.cpp#919

Location to put BeOS implementation:
  http://lxr.mozilla.org/mozilla/source/widget/src/beos/nsWindow.cpp#111

Moving to Core - DOM: Mozilla Extensions.
Assignee: rginda → general
Component: ChatZilla → DOM: Mozilla Extensions
Product: Other Applications → Core
QA Contact: samuel → ian
Summary: Chatzilla/BeOS doesn't have system wide visual notification → nsIDomInternalWindow::GetAttention does nothing on BeOS
Version: unspecified → Trunk
Setting timer is not problematic in BeOS.
But we hasn't any system methods which allows window-flash.

So in probably complex solution GetAttention should start timer for replicant.
And activation even should stop it.

Low priority atm, as there are much more annoying problems on the way.
Until at least someone propose some event simpler than deskbar replicant flashing
James, can you also tell me which method/event stops notification/flashing?

NS_ACTIVATE ?
Hmm, here are some more useful links...

The timer it setup on
  http://lxr.mozilla.org/mozilla/source/widget/src/windows/nsWindow.cpp#6869
which specifies nsGetAttentionTimerFunc as the callback, which is defined on
  http://lxr.mozilla.org/mozilla/source/widget/src/windows/nsWindow.cpp#6811
The gAttentionTimerMonitor is an instance of nsAttentionTimerMonitor, from
  http://lxr.mozilla.org/mozilla/source/widget/src/windows/nsWindow.cpp#596

It appears that nsGetAttentionTimerFunc does the 'stop' code, when the window is
found to be the foreground window at the time of the check (this is lame and I
frequently find it doesn't always stop it).
Sergei, your preliminary solution implemented in the test-build is very nice. It
is most effective when Chatzilla is maximized and the Deskbar placed on the
bottom of the screen. However, I shifted the title-tab to the right (where it
would *always* be visible) and it resets to the left upon flashing. Other than
that, I already find it very useful.

Thanks,

Prog.
"it resets to the left upon flashing"
Unfortunately window decor API is unavialable in R5, so i cannot control tab
position. I was unsatisfied with this fact also regarding my other projects.
Hope at least this API which i use here is compatible with Dano/Zeta.
But i didn't test notification under Dano yet.
Assignee: general → beos
Component: DOM: Mozilla Extensions → Widget: BeOS
QA Contact: ian → timeless
InfoPopper now offers a notification API for BeOS. You can find it here:

http://bebits.com/app/4163

Prog.
QA Contact: timeless → beos
Product: Core → Core Graveyard
Nothing has been happening on the beos side for a while, closing.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.