Adium

Opened 13 years ago

Closed 12 years ago

#7412 closed defect (fixed)

Contact list hide on edges does not work properly with vertically stacked displays

Reported by: ferromax Owned by: evands
Milestone: Adium 1.3 Component: Adium UI
Version: Severity: normal
Keywords: Cc:
Patch Status:

Description

"Automatically hide the contact list: On screen edges" feature doesn't work if I have external display connected to my MBP. Setting displays arrangement in OS X System Preferences so that the two are aligned on the edge solves the problem.

Attachments (2)

Working.png (2.4 KB) - added by ferromax 13 years ago.
AdiumX works fine with this arrangement
NotWorking.png (2.5 KB) - added by ferromax 13 years ago.
Auto-hide on screen edge doesn't work with this arrangement

Download all attachments as: .zip

Change History (18)

comment:1 Changed 13 years ago by Evan Schoenberg

What is the display arrangement when it doesn't work, and on which edge are you trying to dock the contact list which isn't working? A screenshot of your system preferences for the arrangement would be helpful.

Changed 13 years ago by ferromax

Attachment: Working.png added

AdiumX works fine with this arrangement

Changed 13 years ago by ferromax

Attachment: NotWorking.png added

Auto-hide on screen edge doesn't work with this arrangement

comment:2 Changed 13 years ago by ferromax

See screenshots attached above. AdiumX contact list is attached to the right edge of the lower monitor

comment:3 Changed 13 years ago by Trent Lloyd

Yes, I have the same problem with my Macbook

If I have my dell 24" above the macbook screen, adium won't autohide on either the left or the right of the macbook screen, but works fine on the dell.

If I take the external monitor off then it works fine

I'm not 100% on the details of the mac platform, but the way this works on say linux/Xorg is when you have 1 monitor larger than another - it creates a big rectangle that fits both monitors, and a portion of th edisplay is not visible.

So I think the problem is that when adium is on the edge of the bottom screen, its not on the edge of the overall rectangle so its not hiding

So I suspect Adium needs to use a different API call to figure out if its on the edge and should autohide

This seems confirmed by the fact if you move the top monitor so the right hand sides line up then it works again, but not if the top monitor goes further right than the normal display

comment:4 Changed 13 years ago by Jordan

Milestone: Adium X 1.3

I assume this remains a problem for 1.1.2 and the AdiumBeta?

comment:5 Changed 13 years ago by Trent Lloyd

Hi,

I just tested both 1.1.2 and 1.1.3b1 and the bug is still present

comment:6 Changed 13 years ago by Jordan

Version: 1.1b31.1.2

comment:7 Changed 12 years ago by Jordan

Version: 1.1.21.3svn

I also have seen this doing the exact same thing with the left side of the display. It seems that hiding the contact list on any edge where another display extends further than the edge you would like to hide it on results in it not hiding. My guess would be that the code grabs the edge that is furthest away on any display, when it should do so only for the display that the CL window resides on.

comment:8 Changed 12 years ago by Jordan

If there is a way of detecting the window position, we could have it use the MaxX and MinX of the display that the contact list resides on only when using vertically stacked displays. Since we want it to use the Min and Max X value of all displays combined only when they are side-by-side, this should work...

Something like:

If (MaxY - MinY of total screen space > MaxY - MinY of active display) //Then vertically stacked
    Use MinX and MaxX of each display (or the display the CL resides on) as slideable edges
else
    Use MinX and MaxX of all screens combined as slideable edges //should be how it currently behaves

Though that vertically-stacked display detection sucks... what happens if they're side-by-side but one has a higher resolution than the other.

comment:9 Changed 12 years ago by Jordan

Summary: Contact list hide on edges doesn't work with multiple displaysContact list hide on edges does not work properly with vertically stacked displays

comment:10 Changed 12 years ago by Evan Schoenberg

Owner: changed from nobody to Evan Schoenberg
Status: newassigned

comment:11 Changed 12 years ago by Evan Schoenberg

This morning's bug fix brought to you by Emory Psychiatry Grand Rounds.

comment:12 Changed 12 years ago by Evan Schoenberg

Resolution: fixed
Status: assignedclosed

(In [23422]) We now understand multiple display configurations which aren't a perfect horizontally aligned rectangle for contact list dock-like hiding purposes. Fixes #7412

comment:13 Changed 12 years ago by Jordan

Evan: this fix is causing problems with mouse over on the menu bar even if not using multiple displays. When mousing over the menu bar (and the CL is hidden), it causes it to reappear, and sometimes slide in and out in a loop.

comment:14 Changed 12 years ago by Jordan

Yes, if you mouse over a piece of the manubar exactly the width of the contact list (and directly above the contact list) it shows. If you mouse over anywhere else on the menubar it slides in and out repeatedly.

comment:15 Changed 12 years ago by Evan Schoenberg

Resolution: fixed
Status: closedreopened

I'm pretty sure I know why.

comment:16 Changed 12 years ago by Evan Schoenberg

Resolution: fixed
Status: reopenedclosed

(In [23425]) Fix the mouse-over-menubar situation for contact list hiding, which [23422] broke. Fixes #7412 properly. Thanks to jas8522 for the bug catch.

Note: See TracTickets for help on using tickets.