A strange application behaviour on Windows 10 Creators Edition (1703 build)

Hi all,

After the said update, I started seeing instances, where some of the entry control would not show text as I type. It will not show the blinking cursor either. When I tab out, the already typed text would appear. But, it would do exactly the same on the control onto which the focus has now moved into. This does not happen on all the window but always happens on same window.

Other observations:

  1. If I move the window using the title bar OR press the ALT key, this problem goes away. (It would happen again, the next time I start the application again).
  1. It gives the impression that, there an invisible window on top and it could be taking over the focus.
  1. One of my window has an automatic 5 minutes autoclose timer. This timer text is update in the windows timer event. The bizzare part is, it doesn’t refreshes the timer text at all. But, as soon as I move the window using the title bar or press ALT key, everything would works fine as expected.
  1. I reverted my Windows to the previous build (1607) and everything would worked fine as normal.
  1. This is not an isolated incident on 1 or 2 PCs. Nearly all the PC we have updated to Windows 10 1703 has this issue. Infact, it was reported to us by some of our clients.

I am in the process of isolating this issue by logging, debugging, and also removing 3rd party templates one at a time. But, so far without any success.

Is there anything anybody could think of, please suggest. I am very desparate to get to the bottom of this as this new update is being forced onto the PCs and there is not opting out feature available anymore.

Regards

Mathew

I’ve not seen your problems but Creator’s is causing problems for me on my C6 app.

We’ve seen it on multiple PC’s. We’ve also been able to a working Windows 10 PC and install Creator’s and then have a broken app.

My problems relate to the print previewer (TinTools). It pauses during report generation and then only resumes when you wiggle the mouse. Also once you have the preview on the screen, click it to zoom in and out has no effect. This can be resolved by minimising and then restoring the window but I’m obviously not going to be able to tell my clients that!

Did you try press the ALT key when it pauses during the report generation? Also, on my application, if I keep the mouse clicked (IE keep it pressed for 2 second atleast) it would work.

In my case it looks like there is a hidden window (like a popup menu) somewhere that is taking the focus away from the main window.

NOTE: I get the same issue in C10 compiled app as well.

In the report generation, I had to POST an EVENT:Timer to get it to work.

For the preview, I only just discovered that the ALT key (F10 too) recovers the preview today.

I’ve also noticed that pressing Esc no longer closes the window so like you say, it’s a loss of focus.

Looks like we are on the same boat to an extent. I also noticed on my application, that when I hover the mouse over entry control, the cursor doesn’t change to “I” and remain as a pointer. As soon as I press the alt key, everything works normal. This goes on to prove that the window in question is losing the focus.

Yeah, there’s certainly some similarities. I was able to fix the report preview by adding this to the OpenWindow event:

PressKey(F10)
PressKey(EscKey)

I don’t fully understand WHY it works but it DOES work.

I wonder if its the LIFO/FIFO event processing I have seen which is causing the problem, you get random hangs with this, and its more noticable with some events than others.

Your only way of testing for this is to use debugview, the clarion debugger wont show it as it only processes one thread at a time, where as debugview can accept messages from all threads as they happen.

This post will get you started with debugview. Debugview++ and DebugInfo

This approach works with my app also to an extent. The issue with me is, I have come across a few windows that has this issue. There could be several more. If, I add the code the an existing window without the above mentioned focus issue (may be using a new template to add it to all the windows), it will auto-close as soon as the window is opened.

also, on the problem windows, if the user clicks OR press alt before the above mentioned code (F10, EscKey), then it will receive the focus, then your code will ESCAPE close the window.

Interesting, there are few more new posts that I believe are pointing to the said issue. Let me give them a try and see what I find.

Cheers

If F10 Esc causes problems. I also had some success with F10 F10 (i.e. twice).

I found a solution to my issue. I don’t fully understand why this has fixed it. I would like to share my findings.

My multi-dll application has 20+ DLL and 1 exe application.

Previously
The First Procedure in my Exe application used to be source procedure called (StartupSequence)

After lot of trial and error, I’ve changed the First Procedure to a window procedure called LauncherProc:

Added the following code in LauncherPro (OPENWINDOW )
0{PROP:HIDE} = TRUE
StartupSequene()
POST(EVENT:CLOSEWINDOW)

This seem to have fixed the issue. I don’t know why!!! I have done some serious amount of testing and it seem to be working fine.

Cheers

1 Like

I had pretty much the exact symptoms just recently!
In my case, it seemed to be connected to opening a child window too early in the main frame threads startup code.

  • Frame thread loads
  • In ThisWindow.Init there was a call to a WindowProcedure (a login window as it happens).
  • That login window was behaving as you describe.

The login window was not firing events at all after it opened until you “activated” it somehow. By moving it or possible lose/gain focus. I can’t remember exactly.

My fix was to delay the calling of this window until later, the theory being that would allow the main frame to fully open in whatever way it need, and to also start the login window on a new thread rather than directly on the main frames thread. This also required a different approach in order to retain the “you can do anything until you have logged in” requirement.

The issue I had was not just on the Application Frame. It happen even before the MDI Frame procedure was called. It was happening on the LoginScreen procedure, which was a non -mdi child window. It ALSO happened on the MDI window (Application Frame) and also on some of the other windows launched from Application Fame.

I have even called a dummy window instead of the login screen with no code at all in it. Even the dummy window procedure showed the issue. This proved, in my case, that is was not a code related issue. The approach I (as explained) seemed to have fixed all the issues…:thinking:

The problem seems to have resurfaced again for my application. But, this time I think I found the culprit. In Windows 10 there is this option under Printers & Scanners called Lets Windows Manage my default printer. See image below:

With this option ticked, whenever the first time my application try to do a PRINTER{PROPPRINT:Device} = ‘My Whatever Printer’, it would cause the window to lose focus and it actually prevented the entire ACCEPT loop from properly function. This can be resolved by press the ALT key once or move the window using the titlebar, and thereafter everything would be fine for that session.

I also found, as soon as your application opens, if you open the printer dialog box and even cancel out of it, the application would work find thereafter for that session.

I do not have a resolution yet that I can implement within my application to resolve this. The work around I have for now is to Untick the above mentioned option within Printers & Scanners.

Affected OS: Windows 10 1703 / 1709

Thanks

Mathew