Opened 12 years ago

Last modified 4 years ago

#8923 closed bug

[Deskbar] Auto-raise does not work correctly when covered by a window — at Version 4

Reported by: x-ist Owned by: anevilyak
Priority: normal Milestone: R1/beta2
Component: Applications/Deskbar Version: R1/Development
Keywords: Auto-raise Cc: edglex
Blocked By: Blocking:
Platform: All

Description (last modified by diver)

This is hrev44584.

  1. Drag the Deskbar to the lower screen edge.
  2. Enable Auto-raise.
  3. Open a window, e.g. a Tracker window
  4. Move the window such that it covers the Deskbar beyond the lower screen edge
  5. Hover the mouse down the window to the screen edge carefully without hovering over the Deskbar.
  6. Deskbar is NOT raised.
  7. Now hover over the Deskbar (not necessarily the edge)
  8. Now hover the mouse again down the window to the screen edge carefully without hovering over the Deskbar.
  9. This time it's raised.

Change History (4)

comment:1 by edglex, 12 years ago

I've seen other odd behaviour with deskbar auto-raise that I thought would make sense to add to this ticket.

If you have the deskbar set to auto-raise and put a window partialy covering it, when you click on that window in a place where the window is covering the deskbar, the deskbar auto-raises. However it doesn't always do this, only most of the time.

This is annoying since I tend to work with the deskbar in its default position and windows maximised. In this way when I move the mouse to the upper-right corner the deskbar auto-raises and I can use it to e.g. change workspace with the workspace applet (in the deskbar tray) or change application. However if I click in that area where the deskbar is covered by a window then the deskbar appears and I cant see what I'm doing. Currently I'm using auto-hide instead, but it's not as nice.

comment:2 by edglex, 12 years ago

Cc: edglex added

comment:3 by x-ist, 12 years ago

The issue was introduced by hrev44113. Enabling/disabling reception of mouse events is made dependent on the state of the transit parameter:

if (transit == B_ENTERED_VIEW && EventMask() == 0)
	SetEventMask(B_POINTER_EVENTS, B_NO_POINTER_HISTORY);

and

if (transit == B_EXITED_VIEW || transit == B_OUTSIDE_VIEW)
	SetEventMask(0);

That apparently excludes the case when the Deskbar is covered by other windows at the screen edge, effectively preventing auto-raise. @anevilyak: Do you see an alternative to that solution without reintroducing the bugs it solved?

comment:4 by diver, 12 years ago

Description: modified (diff)
Owner: changed from axeld to anevilyak
Status: newassigned
Note: See TracTickets for help on using tickets.