[Interest] QApplication.activeWindow().pos() not returning correct value after sacling on OSX

Tony Rietwyk tony at rightsoft.com.au
Thu Feb 18 04:59:57 CET 2016


Hi Frank - sorry for replying to you directly before! 

 

Have you looked at event filtering?  A derived QObject can monitor, and
supress events going to another QObject - including windows.  So:

 

- when the hot key occurs, you installEventFilter on the current window, 

- if KeyPress Esc, then cancel, 

- if MousePress, then record start pos, 

- if MouseMove, then record the end pos 

- if MouseRelease, then record the end pos and finish

 

When you finish or cancel, removeEventFilter.  While active, you always
suppress the event to stop if going to the target window.  

 

Hope that helps, 

 

Tony

 

 

From: Frank Rueter | OHUfx [mailto:frank at ohufx.com] 
Sent: Thursday, 18 February 2016 2:21 PM
To: Tony Rietwyk
Cc: interest at qt-project.org
Subject: Re: [Interest] QApplication.activeWindow().pos() not returning
correct value after sacling on OSX

 

Hi Tony,

sorry, let me clarify:
QT's co-oridnate system starts at the top left, right?
So when I scale the window by dragging the left side (or the top), the point
of origin changes and thus I expect a different global position for the
widget.

The reason I am tying to determine the exact geometry of the parent
application is because I am trying to implement something like an invisible
slider, a mode where the use can click+drag anywhere in the host application
to change a certain value. Upon release the mode disables itself until a
hotkey is pressed again.
E.g. if the host application is a video player, I am trying to implement a
mode where the user can hit a hotkey, then click&drag anywhere in the player
to scrub through the video.

I'm sure there are better ways to go about this (and I'd love to hear advise
on this), but at the moment, as a proof of concept, I am creating a
transparent widget that catches the mouse event and emits the required
signal, and I'd like for that widget to perfectly sit on top of the parent
app so if the user click/drags outside of it, it won't have any effect.

Ideally I'd just force the mouse event to my QObject rather than create an
transparent widget, but I don't know if this is possible?

Does that make sense?

Cheers,
frank



On 18/02/16 3:59 pm, Tony Rietwyk wrote:

Hi Frank, 

 

I don't understand what you are asking!  Why do you expect that changing the
window size will change the position?   You say 'resulting in an offset for
my widget' - sounds like you are adding the new pos instead of just using
it?  

 

Tracking foreign native windows is pretty rare.  You need to provide a
cut-down version of what you are doing so others can easily run it.  

 

Regards, 

 

Tony

 

 

From: Interest
[mailto:interest-bounces+tony=rightsoft.com.au at qt-project.org] On Behalf Of
Frank Rueter | OHUfx
Sent: Thursday, 18 February 2016 8:14 AM
To: interest at qt-project.org
Subject: Re: [Interest] QApplication.activeWindow().pos() not returning
correct value after sacling on OSX

 

anybody?
is this a bug?

On 16/02/16 12:21 pm, Frank Rueter | OHUfx wrote:

Hi,

I am trying to figure out my host application's window geometry reliably and
am struggling a bit.

I use QApplication.activeWindow().geometry() to drive my custom widget's
geometry (I need to sit exactly on top of the host application).
All works fine and my widget sits exactly on top of the host application
window, until the host app is scaled by dragging one of it's sides out or
in. After that QApplication.activeWindow().geometry() still returns the same
exact position, though the size is correct, resulting in an offset for my
widget.
Turns out scaling windows on OSX by dragging their edges doesn't seem to
update QApplication.activeWindow().pos()

As soon as I grab the title bar and move the host app a tiny bit,
QApplication.activeWindow().pos() seems to be updated correctly.

Is there a fix/workaround for this?

Cheers,
frank

-- 


 <http://www.ohufx.com> ohufxLogo 50x50

vfx compositing <http://ohufx.com/index.php/vfx-compositing>  | workflow
customisation and consulting <http://ohufx.com/index.php/vfx-customising>  







_______________________________________________
Interest mailing list
Interest at qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

 

-- 


 <http://www.ohufx.com> ohufxLogo 50x50

vfx compositing <http://ohufx.com/index.php/vfx-compositing>  | workflow
customisation and consulting <http://ohufx.com/index.php/vfx-customising>  

 

 

-- 


 <http://www.ohufx.com> ohufxLogo 50x50

vfx compositing <http://ohufx.com/index.php/vfx-compositing>  | workflow
customisation and consulting <http://ohufx.com/index.php/vfx-customising>  

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160218/a9052ad4/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 2666 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160218/a9052ad4/attachment.png>


More information about the Interest mailing list