Opened 18 years ago

Closed 18 years ago

Last modified 18 years ago

#594 closed bug (fixed)

[BMenu] doesn't close on focus lost

Reported by: diver Owned by: jackburton
Priority: normal Milestone: R1
Component: - General Version:
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

Click attribute menu in tracker window and then click in container window, attribute menu should close, but it won't.

Change History (11)

comment:1 by jackburton, 18 years ago

Owner: changed from axeld to jackburton

comment:2 by jackburton, 18 years ago

Status: newassigned

comment:3 by jackburton, 18 years ago

That's weird. Especially because it only happens inside tracker. It happens, though, so something might be wrong indeed.

comment:4 by jackburton, 18 years ago

By the way... can you tell/remember if it's a problem introduced only recently ? Have you got the chance to try a revision older than 15876 or 15877 ?

comment:5 by jackburton, 18 years ago

Cc: axeld@… added

comment:6 by jackburton, 18 years ago

Axel, I noticed that BPoseView::MouseDown() also uses a synchronous loop to check mouse buttons, but with a delay which is much smaller than the one used in BMenu. Since both use the GetMouse() variation which checks the message queue, I think PoseView "steals" the B_MOUSE_DOWN message, and bmenu never gets the clicked state.

Should I use the other variation of GetMouse(), the one which only gets the current mouse state ? Couldn't that lose clicks as well, if the menu tracking loop doesn't execute fast enough ?

Does what I wrote make sense ?

comment:7 by jackburton, 18 years ago

I just committed a change which should've fixed this. Can you check ?

comment:8 by jackburton, 18 years ago

Apparently this bug is fixed, but I introduced a new problem: closing menus this way makes them open again when you move the cursor over the menubar.

comment:9 by jackburton, 18 years ago

Status: assignedclosed

comment:10 by jackburton, 18 years ago

Fixed in hrev17654

comment:11 by jackburton, 18 years ago

Resolution: fixed
Note: See TracTickets for help on using tickets.