Dual screen I: ToolTips and Quick Search dialog

Bug reports will be moved here when the described bug has been fixed

Moderators: white, Hacker, petermad, Stefan2

User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Dual screen I: ToolTips and Quick Search dialog

Post by *HolgerK »

Some tests concerning window positioning on dual screen.
My configurations are:
- WinXPproSP2, TC7B1
- nVidia Desktop manager was disabled during test.
- Primary monitor 1280*768, 16”, 100dpi (placed at the right side).
- Secondary monitor 1600*1200, 20”, 100dpi (placed at the left side).
- The monitors are top aligned.
- All screenshots are resampled to 1440*600 and saved as GIF.
The desktop background is colored in unique green.
The small black rectangle at the right bottom is off screen area.
You can download the complete set of screenshots at once:
http://holgerk.drivehq.com//TC//TC7B1_DualScreenShots.zip (about 1.8M(i)Byte)

Button Bar ToolTip
OK: In no case the ToolTip is cut by the boundaries of the physical screen, always appears on the same screen where the button (respective mouse cursor) is visible,
http://holgerk.drivehq.com//TC//TC7B1_ToolTip_Button1_ok.gif
http://holgerk.drivehq.com//TC//TC7B1_ToolTip_Button2_ok.gif
(Maybe this is based on the fact that this ToolTip is centered below the mouse, see below…)

Drive Button ToolTip
Minor Bugs: If the button is near the center border between the monitors, the corresponding ToolTip rectangle exceeds the monitor border:
http://holgerk.drivehq.com//TC//TC7B1_ToolTip_drive_bug.gif

The font used for this ToolTip (standard system?) differs to the other ToolTips font (TC’s dialog font).
The placement isn’t optimal: parts of the ToolTip are covered by the mouse cursor.

Folder Tab ToolTip
Minor bug: In contrary to the button bar ToolTips, these tool tips are left aligned to the mouse cursor.
If the center of the unclipped ToolTip rectangle is on the same screen as the mouse cursor, the position is always OK:
http://holgerk.drivehq.com//TC//TC7B1_ToolTip_Tab1_ok.gif

The following picture shows the same Folder Tab ToolTip as above, but now the folder tab is near the center of the 2 monitors:
http://holgerk.drivehq.com//TC//TC7B1_Tooltip_Tab2_bug.gif

Win32-style-tips with file comments
Minor bug: The same as for “Folder Tabs”.
As long as the mouse hover the name column there are no problems:
http://holgerk.drivehq.com//TC//TC7B1_ToolTip_w32style1_ok.gif
http://holgerk.drivehq.com//TC//TC7B1_ToolTip_w32style3_ok.gif

Now the mouse is near the center of the 2 screens (hover the attr. column):
http://holgerk.drivehq.com//TC//TC7B1_ToolTip_w32style2_bug.gif
http://holgerk.drivehq.com//TC//TC7B1_ToolTip_w32style4_bug.gif

Again the center of the unclipped rectangle is on the right/primary screen, leading to wrong monitor detection.

As these ToolTips are always left aligned to the mouse cursor position, it would be better to detect the screen where the mouse is placed at the moment, and use this screen limits for clipping.

Quick search dialog
OK: Always placed at correct position (bottom of TC window). If TC window is moved down (status line is off screen) the dialog is clipped to the active screen.

Only one minor bug, when TC’s right panel is smaller than the width of the quick search dialog, and the TC window is placed near the right monitor border:
http://holgerk.drivehq.com//TC//TC7B1_QuickSearch_bug.gif

The quick search dialog isn’t resized or moved to the left, so the right part of the dialog is visible on the right monitor. The same effect is provable with single monitor (and also with 6.55).

Kind regards
Holger
TealC
Junior Member
Junior Member
Posts: 96
Joined: 2005-08-10, 11:34 UTC

Re: Dual screen I: ToolTips and Quick Search dialog

Post by *TealC »

HolgerK wrote: Quick search dialog
OK: Always placed at correct position (bottom of TC window). If TC window is moved down (status line is off screen) the dialog is clipped to the active screen.

Kind regards
Holger
well, not with my configuration...
If the secondary Screen has a smaller resolution (in my case 1280 for the primary and 1024 for the secondary and the third), or if the lower border of the secondary screen is "placed" higher then the border of the primary, the quick search dialog is always shown at the "highest" border position.

I'll make a screenshot and post it as soon as i am back home again...
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Re: Dual screen I: ToolTips and Quick Search dialog

Post by *HolgerK »

TealC wrote:.. If the secondary Screen has a smaller resolution (in my case 1280 for the primary and 1024 for the secondary and the third), or if the lower border of the secondary screen is "placed" higher then the border of the primary, the quick search dialog is always shown at the "highest" border position ...
This is true for TC6.55, but it should be (and here it is!) fixed in TC7:
History.txt wrote:20.10.06 Added: Restrict quick search window, tooltips and overwrite dialog to current screen also when using multiple monitors
Btw.: Do you also use a nVidia graphic card(s)?
Maybe it's a good idea if someone can test this with Matrox or ATI graphic cards.

Kind regards
Holger
TealC
Junior Member
Junior Member
Posts: 96
Joined: 2005-08-10, 11:34 UTC

Re: Dual screen I: ToolTips and Quick Search dialog

Post by *TealC »

HolgerK wrote:[
Btw.: Do you also use a nVidia graphic card(s)?
Maybe it's a good idea if someone can test this with Matrox or ATI graphic cards.

Kind regards
Holger
IIRC i didn't have this in 6.55, but i have it in 7b1. But i'm not sure anymore, i will test it at home. I have a ATI graphics card (X800)
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48097
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

About the tooltips: Here I'm using
Monitor:=MonitorFromRect(windowrect,MONITOR_DEFAULTTONEAREST);

with windowrect the rectangle of the tooltip window. This means that the tip is moved completely to the monitor on which most of its window would be. How else should I solve that?
Author of Total Commander
https://www.ghisler.com
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

ghisler(Author) wrote:About the tooltips: Here I'm using
Monitor:=MonitorFromRect(windowrect,MONITOR_DEFAULTTONEAREST);

with windowrect the rectangle of the tooltip window. This means that the tip is moved completely to the monitor on which most of its window would be. How else should I solve that?
This is the best method for dialogs and the button bar tool tip.
But not for tool tips which are left aligned to the mouse cursor position.
In this case the 100% solution is to use a small rectangle(size 1,1) round the mouse cursor position for monitor detection.
A 99% solution is to use a small rectangle around the upper left corner of the tool tips rectangle instead.

Kind regards
Holger
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48097
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

OK, I will try that!
Author of Total Commander
https://www.ghisler.com
TealC
Junior Member
Junior Member
Posts: 96
Joined: 2005-08-10, 11:34 UTC

Re: Dual screen I: ToolTips and Quick Search dialog

Post by *TealC »

TealC wrote: IIRC i didn't have this in 6.55, but i have it in 7b1. But i'm not sure anymore, i will test it at home. I have a ATI graphics card (X800)
hmm, strange... the right tab is ok, and works like it should:
http://i146.photobucket.com/albums/r274/bugmenot9988/ok.jpg

however, the left tab doesn't
http://i146.photobucket.com/albums/r274/bugmenot9988/bug.jpg

Graphics cards are radeon x800 (monitor 1&2) and radeon 7000 (monitor 3). Both with ati catalyst version 8.252.0.0 (May 3rd, 2006)

tc 6.55 works fine.
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Re: Dual screen I: ToolTips and Quick Search dialog

Post by *HolgerK »

2TealC
That's really strange.
Can you please download this small application: http://holgerk.drivehq.com//TC//MonitorInfo.zip
Nothing special, but maybe this can help Christian to find the bug.

Every time you press "Get monitor info", this simple application gets the own dialog position, detects the nearest monitor and prints some info in the small text box (and copies this info to the clipboard).

Code: Select all

    CString str;
    HMONITOR hMonitor;
    MONITORINFO mi;
    CRect rect;
	
    GetWindowRect( rect );
    hMonitor = MonitorFromRect( rect, MONITOR_DEFAULTTONEAREST );
    mi.cbSize = sizeof( mi );
    GetMonitorInfo( hMonitor, &mi );
	
    m_Rich.SetSel( 0, -1 );
	
    str.Format( "WindowRect is:\t  X:%4d   Y:%4d   W:%4d   H:%4d\n"
				, rect.left, rect.top, rect.Width(), rect.Height() 
				); 
    m_Rich.ReplaceSel( str );

    CRect rectM( mi.rcMonitor );
    str.Format( "MonitorRect is:\t  X:%4d   Y:%4d   W:%4d   H:%4d\n"
				, rectM.left, rectM.top, rectM.Width(), rectM.Height()
				); 
    m_Rich.ReplaceSel( str );

    CRect rectW( mi.rcWork );
    str.Format("WorkAreaRect is:\t  X:%4d   Y:%4d   W:%4d   H:%4d\n"
				, rectW.left, rectW.top, rectW.Width(), rectW.Height()
				); 
    m_Rich.ReplaceSel( str );

    m_Rich.SetSel( 0,-1 );
    m_Rich.Copy();
The output is formatted like this:

Code: Select all

WindowRect is:	  X: 572   Y: 568   W: 486   H: 187
MonitorRect is:	  X:   0   Y:   0   W:1152   H: 864
WorkAreaRect is:	  X:   0   Y:   0   W:1152   H: 816
Can you please move this dialog to different screen positions (espacially the left and right bottom border of your primary screen and the center of the three screens) and post the results here.

I will post the results from the nVidia dual screen tomorrow.

Kind regards
Holger
TealC
Junior Member
Junior Member
Posts: 96
Joined: 2005-08-10, 11:34 UTC

Re: Dual screen I: ToolTips and Quick Search dialog

Post by *TealC »

HolgerK wrote:2TealC

Can you please move this dialog to different screen positions (espacially the left and right bottom border of your primary screen and the center of the three screens) and post the results here.

I will post the results from the nVidia dual screen tomorrow.

Kind regards
Holger
bottom left, window fully visible

Code: Select all

WindowRect is:	  X:   0   Y: 809   W: 486   H: 188
MonitorRect is:	  X:   0   Y:   0   W:1280   H:1024
WorkAreaRect is:	  X:   0   Y:   0   W:1280   H: 997
bottom left, only titlebar visible

Code: Select all

WindowRect is:	  X:   0   Y: 974   W: 486   H: 188
MonitorRect is:	  X:   0   Y:   0   W:1280   H:1024
WorkAreaRect is:	  X:   0   Y:   0   W:1280   H: 997
bottom right, fully

Code: Select all

WindowRect is:	  X: 795   Y: 811   W: 486   H: 188
MonitorRect is:	  X:   0   Y:   0   W:1280   H:1024
WorkAreaRect is:	  X:   0   Y:   0   W:1280   H: 997
bottom right, titlebar

Code: Select all

WindowRect is:	  X: 797   Y: 973   W: 486   H: 188
MonitorRect is:	  X:   0   Y:   0   W:1280   H:1024
WorkAreaRect is:	  X:   0   Y:   0   W:1280   H: 997
center (approx. :wink: )

Code: Select all

WindowRect is:	  X: 383   Y: 409   W: 486   H: 188
MonitorRect is:	  X:   0   Y:   0   W:1280   H:1024
WorkAreaRect is:	  X:   0   Y:   0   W:1280   H: 997
hope that helps...

but as stated, i have no problems in 6.55, so i guess something must have changed there between 6.55 an 7b1...
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Re: Dual screen I: ToolTips and Quick Search dialog

Post by *HolgerK »

TealC wrote:hope that helps...
At least it is a proof that monitor detection for the primary screen is correct.
Can you please post additional infos when the dialog is placed centered on the left or right screen?
TealC wrote:... but as stated, i have no problems in 6.55, so i guess something must have changed there between 6.55 an 7b1...
But I had, because my primary screen is smaller than the secondary, and i guess this will also happen with yours configuration if you only declare the left or right screen as primary.

Thanks and kind regards
Holger
TealC
Junior Member
Junior Member
Posts: 96
Joined: 2005-08-10, 11:34 UTC

Re: Dual screen I: ToolTips and Quick Search dialog

Post by *TealC »

HolgerK wrote:
TealC wrote:hope that helps...
At least it is a proof that monitor detection for the primary screen is correct.
Can you please post additional infos when the dialog is placed centered on the left or right screen?
left screen:

Code: Select all

WindowRect is:	  X:-667   Y: 407   W: 486   H: 188
MonitorRect is:	  X:-1024   Y: 136   W:1024   H: 768
WorkAreaRect is:	  X:-790   Y: 136   W: 790   H: 741
right screen:

Code: Select all

WindowRect is:	  X:1608   Y: 418   W: 486   H: 188
MonitorRect is:	  X:1280   Y: 136   W:1024   H: 768
WorkAreaRect is:	  X:1280   Y: 136   W:1024   H: 741
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

2TealC

Thanks again.

OK: Monitor rectangle is always detected as expected.

OK: For the primary screen the work areas height is decreased by the Explorer task bars height (27 pixel).

OK: The second and third screens work area height is decreased by 27 Pixel (im not sure, but it looks like an empty explorer tool bar that's placed at the bottom of these two screens).

???: The width of the left (third) screens work area is decreased by 234 pixel.

Was there a tool bar (auto hide disabled, always on top enabled) placed at the left border, while running the test?


The results from my office computer are the following:

Code: Select all

centered on primary screen:
WindowRect is:	  X: 397   Y: 384   W: 486   H: 187
MonitorRect is:	  X:   0   Y:   0   W:1280   H:1024
WorkAreaRect is:	  X:   0   Y:   0   W:1280   H: 954

centered on secondary screen:
WindowRect is:	  X:-1125   Y: 421   W: 486   H: 187
MonitorRect is:	  X:-1600   Y:   0   W:1600   H:1200
WorkAreaRect is:	  X:-1600   Y:   0   W:1600   H:1200

bottom left: secondary screen:
WindowRect is:	  X:-1600   Y:1012   W: 486   H: 187
MonitorRect is:	  X:-1600   Y:   0   W:1600   H:1200
WorkAreaRect is:	  X:-1600   Y:   0   W:1600   H:1200

bottom left  secondary screen, partial off screen:
WindowRect is:	  X:-1626   Y:1134   W: 486   H: 187
MonitorRect is:	  X:-1600   Y:   0   W:1600   H:1200
WorkAreaRect is:	  X:-1600   Y:   0   W:1600   H:1200

bottom right secondary screen: 
WindowRect is:	  X:-478   Y:1023   W: 486   H: 187
MonitorRect is:	  X:-1600   Y:   0   W:1600   H:1200
WorkAreaRect is:	  X:-1600   Y:   0   W:1600   H:1200

bottom right secondary screen, partial off screen:
WindowRect is:	  X:-264   Y:1093   W: 486   H: 187
MonitorRect is:	  X:-1600   Y:   0   W:1600   H:1200
WorkAreaRect is:	  X:-1600   Y:   0   W:1600   H:1200

bottom left primary screen:
WindowRect is:	  X:  -2   Y: 768   W: 486   H: 187
MonitorRect is:	  X:   0   Y:   0   W:1280   H:1024
WorkAreaRect is:	  X:   0   Y:   0   W:1280   H: 954

bottom left primary screen, partial under task bar:
WindowRect is:	  X:  -1   Y: 886   W: 486   H: 187
MonitorRect is:	  X:   0   Y:   0   W:1280   H:1024
WorkAreaRect is:	  X:   0   Y:   0   W:1280   H: 954

bottom right primary screen:
WindowRect is:	  X: 794   Y: 766   W: 486   H: 187
MonitorRect is:	  X:   0   Y:   0   W:1280   H:1024
WorkAreaRect is:	  X:   0   Y:   0   W:1280   H: 954

bottom right primary screen, partial under task bar:
WindowRect is:	  X: 858   Y: 887   W: 486   H: 187
MonitorRect is:	  X:   0   Y:   0   W:1280   H:1024
WorkAreaRect is:	  X:   0   Y:   0   W:1280   H: 954

______________
Now moving the primary screen around the secondary:

centered on secondary screen: secondary is below primary:
WindowRect is:	  X: 214   Y:1532   W: 486   H: 187
MonitorRect is:	  X:-312   Y:1024   W:1600   H:1200
WorkAreaRect is:	  X:-312   Y:1024   W:1600   H:1200

centered on secondary screen: secondary is above primary:
WindowRect is:	  X: 526   Y:-692   W: 486   H: 187
MonitorRect is:	  X:   0   Y:-1200   W:1600   H:1200
WorkAreaRect is:	  X:   0   Y:-1200   W:1600   H:1200

centered on secondary screen:secondary is right from primary:
WindowRect is:	  X:1806   Y: 332   W: 486   H: 187
MonitorRect is:	  X:1280   Y:-176   W:1600   H:1200
WorkAreaRect is:	  X:1280   Y:-176   W:1600   H:1200
All as expected here:
Task bar (double height) at the bottom of the primary screen reduces the primary screen work area by 70 pixel.
The primary screens upper left corner is always 0,0 and the secondary screens coordinates are corresponding to the placement.

It seems that nVidia, ATI and M$ delivers reliable results for this function.


So I think the moved right quick search is a small bug in TC7B1?
http://i146.photobucket.com/albums/r274/bugmenot9988/bug.jpg
BTW: the lower position of this dialog is exact the lower border the right (second screen) work area.

Kind regards
Holger
TealC
Junior Member
Junior Member
Posts: 96
Joined: 2005-08-10, 11:34 UTC

Post by *TealC »

HolgerK wrote: OK: The second and third screens work area height is decreased by 27 Pixel (im not sure, but it looks like an empty explorer tool bar that's placed at the bottom of these two screens).
that's a tool called ultramon. it adds a taskbar for every screen, and displays only the windows which apply to each screen in the corresponding task bar, so you don't have the taskbar of the primary monitor full of windows.

but the problem persists when i disable it.

btw., ultramon has quite some useful features, like display profiles, keyboard shortcuts, a tool for creating a background image, which spans over all monitors, from different image files, save and restore desktop icon positions, and more..
???: The width of the left (third) screens work area is decreased by 234 pixel.

Was there a tool bar (auto hide disabled, always on top enabled) placed at the left border, while running the test?
ah, yes, that was trillian, which is usually docked at the left border of the left screen. forgot to disable it for the test, sorry.
but it wasn't enabled on the screenshots, so no effect on the bug with quicksearch...
So I think the moved right quick search is a small bug in TC7B1?
http://i146.photobucket.com/albums/r274/bugmenot9988/bug.jpg
BTW: the lower position of this dialog is exact the lower border the right (second screen) work area.

Kind regards
Holger
would be my guess too

thanks for your help :)
TealC
Junior Member
Junior Member
Posts: 96
Joined: 2005-08-10, 11:34 UTC

Post by *TealC »

i've just tried 7b2, and the problem is still there....
Post Reply