EVENT:Sized fires different on different PCs - SOLVED


#1

Hello folks…

EVENT:Sized is fired once on a PC once a resize-process is done…and on other PC it fires at every mouse move I make…what’s the reason for?

It’s the same program…but differenz behaviours…the RTL is the same…the OS is the same…but the graphics card is different, could it be that the card is managing the trigger behaviour?

I’m confused…maybe someone can help me…

I’m using Clarion 10 on Windows 10 and it is a MDI-program.

Thanks!

Best wishes
Mike


#2

My guess is that the difference is based on the FullDrag setting

The following code appears in LIbsrc\Win\CWutil.clw

!-----------------------------------------------------------------------------!
!FullDrag
! Query or change full window dragging setting
!-----------------------------------------------------------------------------!
FullDrag           PROCEDURE( <LONG lDragSetting> )

lCurrentSetting    LONG

  CODE
  IF ~OMITTED( 1 )
    SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, lDragSetting, lCurrentSetting, SPIF_SENDWININICHANGE+SPIF_UPDATEINIFILE)
    RETURN lDragSetting
  END
  SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, lCurrentSetting, SPIF_SENDWININICHANGE+SPIF_UPDATEINIFILE)
  RETURN lCurrentSetting

#3

You can see the setting @MarkGoldberg is talking about in the Windows UI.
Go to System Settings
image

Then the performance button and look for “Show windows contents while dragging”


#4

You say ‘on the other it fires on every mouse move I make’ - what exactly is meant by that?

Are you saying that simply moving the mouse over the window causes the event:sized to fire?
(ie you’re not dragging the window by it’s caption but just moving the mouse over the window)

What embed point are you using to check event:sized is firing?
Also don’t use the MESSAGE function to check events - instead output to DebugView using the Windows API.

Graham


#5

It means, when you’re resizing the window the event fires every changed pixel.

I catch the event in the accept loop at event EVENT:SIZED.

I am already using DebugView for that…messages are creapy for debugging :wink:


#6

It’ on both PCs on…
But, if I set it off on the PC that fires multiple it fires just once.
That’s strange because on PC with that activated setting fires just once.

OK, I set it off and on again and now the behaviour is the same on both PCs…

Is there an API to deaktivate it?


#7

my fault…this is the function to set it off by programm…


#8

How can I mark this post as solved?


#9

So you were setting Window{PROP:Imm} = TRUE or FALSE then?
Which does control this.
I didn’t mention it as you had claimed you had the same program on both machines, so I assumed it was a machine configuration issue.


#10

We have always IMM on…it fires those events…we need this to handle some things.
On my machine the setting was on but it doesn’t effect.
I had to toggle the setting twice for showing an effect.


#11

Mark, I am pretty sure that is not true. I know the API you posted controls the setting.
Have you tested that? By default the ABC resize class sets prop:imm to true. That would be turning on the “drag while resizing” on every application/window, which is not my experience.