SmartFTP window title blinking in the taskbar

Hi,

I've searched for this bug in the forum and could not find it, so I'm posting it. I hope it is not a "duplicate".
I see this behaviour in all v2 SmartFTP including the latest beta.
I am using windows 2000.

What I see is:
- When SmartFTP is not minimised, the SmartFTP title in the taskbar button is not blinking.
- When SmartFTP is minimised and the taskbar button is in the 'pushed' state it does not blink if the mouse hovers the taskbar button... it blinks twice a second if the mouse is elsewhere. Strange thing is I can't get the taskbar button in the pushed state while minimised now! Well... skip to the next bullet then.
- When SmartFTP is minimised and the taskbar button is in the "depressed" state, the window title printed in the taskbar button blinks twice a second.

What I tried:
- Closing all panes (leaving only the toolbars (address, login, password etc) -> still blinks
- Testing on another computer (laptop with windows 2000 too) => does not blink ?

Ok so maybe it is my computer then? What I don't understand is that when I run Process Explorer on SmartFTP, it seems that SmartFTP is always doing something. And that on both the desktop and the laptop!

So on all my computer SmartFTP never idles, with only visible symptoms on my desktop.
If I run Spy++ on SmartFTP, I see *a lot* of activity, activity that I don't see on other minimised programs (firefox for instance). The kind of activity noted is:

Less than 1 second of activity:

<02061> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FC70

<02062> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FC70 (False)

<02063> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FC58

<02064> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FC58 (False)

<02065> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02066> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02067> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02068> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02069> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02070> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02071> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02072> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02073> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02074> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02075> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02076> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02077> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02078> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02079> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02080> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02081> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02082> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02083> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02084> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02085> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02086> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02087> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02088> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02089> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02090> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02091> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FB04

<02092> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FB04 (False)

<02093> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02094> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02095> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FB04

<02096> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FB04 (False)

<02097> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02098> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02099> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FB04

<02100> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FB04 (False)

<02101> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FB70

<02102> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FB70 (False)

<02103> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FB70

<02104> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FB70 (False)

<02105> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02106> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02107> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02108> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02109> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FC58

<02110> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FC58 (False)

<02111> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02112> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02113> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02114> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02115> 000701EE S WM_GETDLGCODE

<02116> 000701EE R WM_GETDLGCODE fuDlgCode:DLGC_WANTARROWS | DLGC_WANTTAB | DLGC_HASSETSEL | DLGC_WANTCHARS

<02117> 0005024E S WM_GETDLGCODE

<02118> 0005024E R WM_GETDLGCODE fuDlgCode:DLGC_WANTARROWS | DLGC_WANTTAB | DLGC_HASSETSEL | DLGC_WANTCHARS

<02119> 000701CA S WM_GETDLGCODE

<02120> 000701CA R WM_GETDLGCODE fuDlgCode:DLGC_WANTARROWS | DLGC_WANTTAB | DLGC_HASSETSEL | DLGC_WANTCHARS

<02121> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FC58

<02122> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FC58 (False)

<02123> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02124> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02125> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FBA4

<02126> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FBA4 (False)

<02127> 00060178 S WM_GETDLGCODE

<02128> 00060178 R WM_GETDLGCODE fuDlgCode:DLGC_WANTARROWS | DLGC_WANTTAB | DLGC_HASSETSEL | DLGC_WANTCHARS

<02129> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FC58

<02130> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FC58 (False)

<02131> 000E0244 P WM_TIMER wTimerID:801 tmprc:00000000

<02132> 000A01F0 S WM_MDIGETACTIVE lpfMaximized:0012FD20

<02133> 000A01F0 R WM_MDIGETACTIVE hwndActiveChild:(null) lpfMaximized:0012FD20 (False)

<02134> 000E0244 S WM_SETTEXT lpsz:0012FAD8 ("SmartFTP v2.0 - Unlicensed")

<02135> 000E0244 S .WM_GETTEXT cchTextMax:510 lpszText:0012EEC0

<02136> 000E0244 R .WM_GETTEXT cchCopied:26 lpszText:0012EEC0 ("S")

<02137> 000E0244 R WM_SETTEXT fSucceeded:False


I don't know why SmartFTP needs all theses WM_MDIGETACTIVE, and it's your optimisation problem as a developer, but what is interesting is that SmartFTP is indeed always refreshing its window title with WM_SETTEXT!!!
It is the same thing on my laptop, except that the SETTEXT does not makes the button blink... don't know why but it may be related to the smaller refresh rate and the LCD screen...

Can you get the blinking go away when SmartFTP is minimised please?
I note that there is no WM_SETTEXT when SmartFTP is not minimised, so there must be a way to make them go away completely!

Thanks!

Thank you for your detailed report.

The problem has been fixed in the latest version:
https://www.smartftp.com/download

Now the window text is only updated if a transfer is in progress and the option in the Settings->Interface "Show status when minimized" is enabled.

The WM_MDIGETACTIVE messages come from the idle loop which updates the GUI controls (enable/disable menu/buttons).

Regards,
-Mat
SmartFTP