<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi,<br>
<br>
<blockquote cite="mid:4C1486C9.5070807@yahoo.fr" type="cite">
  <meta http-equiv="content-type"
 content="text/html; charset=ISO-8859-1">
  <h1>[vlc-commits] commit: Fixed mouse buttons state for msw vouts
(close #3519). ( Laurent Aimar )</h1>
  <b>git at videolan.org</b> <a moz-do-not-send="true"
 href="mailto:vlc-commits%40videolan.org?Subject=Re%3A%20%5Bvlc-commits%5D%20commit%3A%20Fixed%20mouse%20buttons%20state%20for%20msw%20vouts%0A%09%28close%20%233519%29.%20%28%20Laurent%20Aimar%20%29&In-Reply-To=%3C20100612231415.112EEF42D1%40albiero.videolan.org%3E"
 title="[vlc-commits] commit: Fixed mouse buttons state for msw vouts      
(close #3519). ( Laurent Aimar )">git
at
videolan.org </a><br>
  <i>Sun Jun 13 01:14:14 CEST 2010</i>
  <ul>
    <li>Previous message: <a moz-do-not-send="true"
 href="http://mailman.videolan.org/pipermail/vlc-commits/2010-June/002021.html">[vlc-commits]

commit:
Qt: try to fix hangout on win32 (Jean-Baptiste Kempf ) </a></li>
    <li>Next message: <a moz-do-not-send="true"
 href="http://mailman.videolan.org/pipermail/vlc-commits/2010-June/002023.html">[vlc-commits]

commit:
Fixed potential unaligned access in vaapi/dxva2 picture copy. (
Laurent Aimar ) </a></li>
    <li> <b>Messages sorted by:</b> <a moz-do-not-send="true"
 href="http://mailman.videolan.org/pipermail/vlc-commits/2010-June/date.html#2022">[

date
]</a> <a moz-do-not-send="true"
 href="http://mailman.videolan.org/pipermail/vlc-commits/2010-June/thread.html#2022">[

thread
]</a> <a moz-do-not-send="true"
 href="http://mailman.videolan.org/pipermail/vlc-commits/2010-June/subject.html#2022">[

subject
]</a> <a moz-do-not-send="true"
 href="http://mailman.videolan.org/pipermail/vlc-commits/2010-June/author.html#2022">[

author
]</a> </li>
  </ul>
  <hr><!--beginarticle-->
  <pre>vlc/vlc-1.1 | branch: master | Laurent Aimar <<a
 moz-do-not-send="true"
 href="http://mailman.videolan.org/listinfo/vlc-commits">fenrir at videolan.org</a>> | Sun Jun 13 00:44:31 2010 +0200| [0e9bb2b6027e3327cf00694cfef5aaa76f446602] | committer: Jean-Baptiste Kempf 

Fixed mouse buttons state for msw vouts (close #3519).

Used SetCapture/ReleaseCapture to emulate what x11 seems to do by default.
(cherry picked from commit 2a1f2f0bf5f14963417fb758910db478ac407a62)
  </pre>
</blockquote>
<br>
   These mouse input quirks are most probably due to the GUI being
managed by mainly two (even three) different threads<br>
           - the main GUI thread (qt4)  (owner of the parent windows)<br>
           - the background thread (msw) (owner of the hwnd and
hvideownd subwindows)<br>
           - the vout thread (some windows interaction via
vout_display_Control)<br>
<br>
   Mouse input is a part of the win32 api that is subject to a set of
warnings/limitations in a multiple thread (multiple event loops)
environment (cf msdn
doc)<br>
<br>
   In addition, multiple threads prevent libvlc developers from easily
(and legitimately) accessing mouse events when the mouse is over
the video.<br>
   (the only solution is based global hooks, that are not really
straightforward)<br>
<br>
   Imho, a clean solution would be to merge the two main threads (qt4
and msw) in a single one, i.e one single event loop, that just
dispatches messages to their right window procedures. The third thread
is less of a problem, but still part of the equation (beware of
blocking calls)<br>
<br>
   I do have a patch that does the following : <br>
<br>
    - extend vout_window_t  to request the vout
window provider (qt4, skins2, libvlc dev thread, ...) thread to execute
the code that is currently executed
by the msw thread (basically, subwindows creation and configuration)<br>
    - Since there is now only one single event loop, move message
management in Windows Procs.<br>
<br>
  This patch works satisfactorily. It just needs to be updated with
latest vlc1.2 changes in msw. If this approach is deemed worth, I can
update it and send it on this ml for review.<br>
<br>
Rgds<br>
Erwan10<br>
<br>
<br>
</body>
</html>