Ticket #1720 (closed bug: duplicate)

Opened 12 months ago

Last modified 12 months ago

MouseDown don't reach Window for Mozilla menus/popups

Reported by: fyysik Owned by: axeld
Priority: normal Milestone: R1
Component: - General Version: R1 development
Cc: fredrik.holmqvist@… Blocked By:
Platform: All Blocking:

Description

follow-up for ticket 1714 I hope I use build with both Axel's and Stephan's patches commited. While in main window of Mozilla mouse works properly, this is something very strange happening with menus (popups in Mozilla terms).

While MouseMove and MouseUp events reach BWindow successfully, MouseDown does not appear in BWindow's DispatchMessages either in BView's MouseDown.

Mozilla menus don't use any BMenu and relatives - it is separate BWindow with BView. BWindow has two specific flags set (not used in other Mozwidgets) - B_AVOID_FOCUS | B_NO_WORKSPACE_ACTIVATION.

Any idea for more detailed debugging?

Attachments

app_server.zip (353.9 KB) - added by jackburton 12 months ago.
app_server binary which doesnt' eat B_MOUSE_DOWN messages for B_AVOID_FOCUS view (for fyysik)

Change History

  Changed 12 months ago by jackburton

Could this be a dup of #1654 ?

  Changed 12 months ago by jackburton

Sorry I meant #1652

follow-up: ↓ 4   Changed 12 months ago by jackburton

The code in WindowLayer::MouseDown() (in the app_server) looks like this:

// eat the click if we don't accept first click if ((Flags() & B_WILL_ACCEPT_FIRST_CLICK) == 0

(Flags() & B_AVOID_FOCUS) != 0)

return;

So it seems we should just remove the second check.

in reply to: ↑ 3   Changed 12 months ago by fyysik

// eat the click if we don't accept first click if ((Flags() & B_WILL_ACCEPT_FIRST_CLICK) == 0

(Flags() & B_AVOID_FOCUS) != 0) return; So it seems we should just remove the second check.

JBurton - can you give URL to that code? - I wish to see more context.

in reply to: ↑ 5 ; follow-ups: ↓ 7 ↓ 11   Changed 12 months ago by fyysik

Replying to jackburton:

http://svn.berlios.de/viewcvs/haiku/haiku/trunk/src/servers/app/WindowLayer.cpp

After quick look at code I think it really shouldn't be there, at least in such form. B_AVOID_FOCUS should be taken in account in some another place, probably (hehe, guess that!) in focus handling part:) Code also explains why MouseMoved and MouseUp are working.

JBurton, anyone - can you provide me with appserver binary compiled with that codition removed?

Also, about ACCEPT_FIRST_CLICK. Current default BeOS/Haiku behaviour in this area is, IMHO, short way to relatives of Carpal Tunnel Syndrome. TO overcome it in BeOS I created at time special input-server add-on - "InstantClick" - http://bebits.com/app/1884.

But I think that in Haiku it is possible to add option in Mouse Preferences, near all those FFM and Warping settings - to set "Accept First Click" globally.

in reply to: ↑ 6 ; follow-up: ↓ 8   Changed 12 months ago by jackburton

Replying to fyysik:

JBurton, anyone - can you provide me with appserver binary compiled with that codition removed?

Of course. I'll attach it here.

Changed 12 months ago by jackburton

app_server binary which doesnt' eat B_MOUSE_DOWN messages for B_AVOID_FOCUS view (for fyysik)

in reply to: ↑ 7   Changed 12 months ago by fyysik

Replying to jackburton:

JBurton, anyone - can you provide me with appserver binary compiled with that codition removed?

Of course. I'll attach it here.

Something weird happens. Unpacked it in system/servers (btw, what is "fake_app_server" there?), launched Mozilla - and it crashed badly on attempt to click menu, with message "Looper must be locked".

Rebooted, after chkbfs (doen from BeOS) - and this time - no crashes, but also nothing changed in mouse behaviour - still no B_MOUSE_DWON in BWindow::DispatchMessage and neither in BView:MouseDown.

Tried to unpack it again - still same.

  Changed 12 months ago by fyysik

after removing whole

statement from WindowLayer::MouseDown

if ((Flags() & B_WILL_ACCEPT_FIRST_CLICK) == 0 (Flags() & B_AVOID_FOCUS) != 0) return; Mozilla menus started to work properly. So it seems to be really duplicate of two bugs already reported and needs axeld and stippi attention, I think.

  Changed 12 months ago by tqh

  • cc fredrik.holmqvist@… added

in reply to: ↑ 6   Changed 12 months ago by axeld

  • status changed from new to closed
  • resolution set to duplicate

This is indeed a duplicate of #1652.

Replying to fyysik:

Also, about ACCEPT_FIRST_CLICK. Current default BeOS/Haiku behaviour in this area is, IMHO, short way to relatives of Carpal Tunnel Syndrome. TO overcome it in BeOS I created at time special input-server add-on - "InstantClick" - http://bebits.com/app/1884. But I think that in Haiku it is possible to add option in Mouse Preferences, near all those FFM and Warping settings - to set "Accept First Click" globally.

I thought the same thing when I switched to BeOS (B_ACCEPT_FIRST_CLICK was the reason I switched to FFM in BeOS), and I guess I'll implement that some day before R1 :-)

Note: See TracTickets for help on using tickets.