diff --git a/0001-no-return-in-non-void.patch b/0001-no-return-in-non-void.patch index 9f05bce..eaa7e97 100644 --- a/0001-no-return-in-non-void.patch +++ b/0001-no-return-in-non-void.patch @@ -1,8 +1,8 @@ -diff --git a/modules/access/v4l2/demux.c b/modules/access/v4l2/demux.c -index 73af8ce..8ffad6f 100644 ---- a/modules/access/v4l2/demux.c -+++ b/modules/access/v4l2/demux.c -@@ -629,6 +629,7 @@ static void *MmapThread (void *data) +Index: vlc-2.2.1/modules/access/v4l2/demux.c +=================================================================== +--- vlc-2.2.1.orig/modules/access/v4l2/demux.c ++++ vlc-2.2.1/modules/access/v4l2/demux.c +@@ -632,6 +632,7 @@ static void *MmapThread (void *data) } assert (0); @@ -10,7 +10,7 @@ index 73af8ce..8ffad6f 100644 } static void *ReadThread (void *data) -@@ -691,6 +692,7 @@ static void *ReadThread (void *data) +@@ -694,6 +695,7 @@ static void *ReadThread (void *data) #endif } assert (0); @@ -18,11 +18,11 @@ index 73af8ce..8ffad6f 100644 } static int DemuxControl( demux_t *demux, int query, va_list args ) -diff --git a/modules/control/dbus/dbus.c b/modules/control/dbus/dbus.c -index 8d7dc6e..cc924aa 100644 ---- a/modules/control/dbus/dbus.c -+++ b/modules/control/dbus/dbus.c -@@ -880,6 +880,7 @@ static void *Run( void *data ) +Index: vlc-2.2.1/modules/control/dbus/dbus.c +=================================================================== +--- vlc-2.2.1.orig/modules/control/dbus/dbus.c ++++ vlc-2.2.1/modules/control/dbus/dbus.c +@@ -891,6 +891,7 @@ static void *Run( void *data ) vlc_restorecancel( canc ); } assert(0); @@ -30,11 +30,11 @@ index 8d7dc6e..cc924aa 100644 } static void wakeup_main_loop( void *p_data ) -diff --git a/modules/control/motion.c b/modules/control/motion.c -index 72d7ec6..49c5620 100644 ---- a/modules/control/motion.c -+++ b/modules/control/motion.c -@@ -190,6 +190,7 @@ static void *RunIntf( void *data ) +Index: vlc-2.2.1/modules/control/motion.c +=================================================================== +--- vlc-2.2.1.orig/modules/control/motion.c ++++ vlc-2.2.1/modules/control/motion.c +@@ -188,6 +188,7 @@ static void *RunIntf( void *data ) vlc_restorecancel( canc ); } assert(0); @@ -42,11 +42,11 @@ index 72d7ec6..49c5620 100644 } #undef LOW_THRESHOLD #undef HIGH_THRESHOLD -diff --git a/modules/control/motionlib.c b/modules/control/motionlib.c -index 9d24ced..b087410 100644 ---- a/modules/control/motionlib.c -+++ b/modules/control/motionlib.c -@@ -196,6 +196,7 @@ static int GetOrientation( motion_sensors_t *motion ) +Index: vlc-2.2.1/modules/control/motionlib.c +=================================================================== +--- vlc-2.2.1.orig/modules/control/motionlib.c ++++ vlc-2.2.1/modules/control/motionlib.c +@@ -196,6 +196,7 @@ static int GetOrientation( motion_sensor default: assert( 0 ); } @@ -54,11 +54,11 @@ index 9d24ced..b087410 100644 } /***************************************************************************** -diff --git a/modules/stream_out/rtp.c b/modules/stream_out/rtp.c -index 62c89b7..81f884a 100644 ---- a/modules/stream_out/rtp.c -+++ b/modules/stream_out/rtp.c -@@ -1501,6 +1501,7 @@ static void *rtp_listen_thread( void *data ) +Index: vlc-2.2.1/modules/stream_out/rtp.c +=================================================================== +--- vlc-2.2.1.orig/modules/stream_out/rtp.c ++++ vlc-2.2.1/modules/stream_out/rtp.c +@@ -1499,6 +1499,7 @@ static void *rtp_listen_thread( void *da } assert( 0 ); @@ -66,11 +66,11 @@ index 62c89b7..81f884a 100644 } -diff --git a/modules/visualization/visual/visual.c b/modules/visualization/visual/visual.c -index 0baa2bc..6b788cb 100644 ---- a/modules/visualization/visual/visual.c -+++ b/modules/visualization/visual/visual.c -@@ -366,6 +366,7 @@ static void *Thread( void *data ) +Index: vlc-2.2.1/modules/visualization/visual/visual.c +=================================================================== +--- vlc-2.2.1.orig/modules/visualization/visual/visual.c ++++ vlc-2.2.1/modules/visualization/visual/visual.c +@@ -382,6 +382,7 @@ static void *Thread( void *data ) vlc_restorecancel( canc ); } assert(0); @@ -78,11 +78,11 @@ index 0baa2bc..6b788cb 100644 } static block_t *DoWork( filter_t *p_filter, block_t *p_in_buf ) -diff --git a/src/misc/events.c b/src/misc/events.c -index b430ee5..29c387f 100644 ---- a/src/misc/events.c -+++ b/src/misc/events.c -@@ -271,6 +271,7 @@ int vlc_event_attach( vlc_event_manager_t * p_em, +Index: vlc-2.2.1/src/misc/events.c +=================================================================== +--- vlc-2.2.1.orig/src/misc/events.c ++++ vlc-2.2.1/src/misc/events.c +@@ -271,6 +271,7 @@ int vlc_event_attach( vlc_event_manager_ FOREACH_END() /* Unknown event = BUG */ assert( 0 ); @@ -90,9 +90,11 @@ index b430ee5..29c387f 100644 } /** ---- a/modules/demux/mp4/mp4.c.orig 2015-04-13 16:35:15.220228877 +0200 -+++ b/modules/demux/mp4/mp4.c 2015-04-13 16:35:15.255228142 +0200 -@@ -277,6 +277,7 @@ +Index: vlc-2.2.1/modules/demux/mp4/mp4.c +=================================================================== +--- vlc-2.2.1.orig/modules/demux/mp4/mp4.c ++++ vlc-2.2.1/modules/demux/mp4/mp4.c +@@ -277,6 +277,7 @@ static inline int64_t MP4_TrackGetPTSDel i_sample -= ck->p_sample_count_pts[i_index]; } diff --git a/vlc-qt5.5-mousepointer.patch b/vlc-qt5.5-mousepointer.patch new file mode 100644 index 0000000..791fab1 --- /dev/null +++ b/vlc-qt5.5-mousepointer.patch @@ -0,0 +1,93 @@ +From 729d28e766f37e166000c0c9d15c19138281b754 Mon Sep 17 00:00:00 2001 +From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= +Date: Fri, 23 Oct 2015 22:46:26 +0300 +Subject: [PATCH] qt5: unsubscribe disable motion and XI2 mouse events +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf8 +Content-Transfer-Encoding: 8bit + +╔═══════════════════════════╗ +║ PARENTAL ADVISORY: R-24 ║ +║ EXPLICIT CONTENT ║ +║ INAPPROPRIATE KLUDGY HACK ║ +╚═══════════════════════════╝ + +This extends the existing kludge to catch mouse clicks in the video +output instead of the Qt framework. From version 5.5, Qt uses XI2 to +catch mouse events. + +May or may not interfere with touch devices. +May or may not interfere with cursor changes. +May or may not be forward compatible. + +(cherry picked from commit 4e55554c37e7c55586c41a5e9fc50f393167ac0b) +Signed-off-by: Jean-Baptiste Kempf +--- + configure.ac | 10 ++++++++++ + modules/gui/qt4/components/interface_widgets.cpp | 21 +++++++++++++++++++++ + 2 files changed, 31 insertions(+) + +diff --git a/configure.ac b/configure.ac +index bed99d9..63a0577 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3722,6 +3722,16 @@ AS_IF([test "${enable_qt}" != "no"], [ + PKG_CHECK_MODULES([QTX11], [Qt5X11Extras], [ + VLC_ADD_LIBS([qt4],[${QTX11_LIBS}]) + VLC_ADD_CXXFLAGS([qt4],[${QTX11_CFLAGS} -DQT5_HAS_X11]) ++ PKG_CHECK_MODULES([XI], [xi], [ ++ VLC_ADD_LIBS([qt4], [${XI_LIBS}]) ++ VLC_ADD_CXXFLAGS([qt4], [${XI_CFLAGS} -DHAVE_XI]) ++ ], [ ++ PKG_CHECK_EXISTS([Qt5Gui >= 5.5], [ ++ AC_MSG_ERROR([${XI_PKG_ERRORS}.]) ++ ], [ ++ AC_MSG_WARN([${XI_PKG_ERRORS}.]) ++ ]) ++ ]) + ],[ + AC_MSG_WARN([Not building Qt Interface with X11 helpers.]) + ]) +diff --git a/modules/gui/qt4/components/interface_widgets.cpp b/modules/gui/qt4/components/interface_widgets.cpp +index 8c30ac0..f433446 100644 +--- a/modules/gui/qt4/components/interface_widgets.cpp ++++ b/modules/gui/qt4/components/interface_widgets.cpp +@@ -58,6 +58,9 @@ + + #ifdef Q_WS_X11 + # include ++# ifdef HAVE_XI ++# include ++# endif + # include + #endif + +@@ -148,7 +151,25 @@ WId VideoWidget::request( int *pi_x, int *pi_y, + + XGetWindowAttributes( dpy, w, &attr ); + attr.your_event_mask &= ~(ButtonPressMask|ButtonReleaseMask); ++ attr.your_event_mask &= ~PointerMotionMask; + XSelectInput( dpy, w, attr.your_event_mask ); ++# ifdef HAVE_XI ++ int n; ++ XIEventMask *xi_masks = XIGetSelectedEvents( dpy, w, &n ); ++ if( xi_masks != NULL ) ++ { ++ for( int i = 0; i < n; i++ ) ++ if( xi_masks[i].mask_len >= 1 ) ++ { ++ xi_masks[i].mask[0] &= ~XI_ButtonPressMask; ++ xi_masks[i].mask[0] &= ~XI_ButtonReleaseMask; ++ xi_masks[i].mask[0] &= ~XI_MotionMask; ++ } ++ ++ XISelectEvents( dpy, w, xi_masks, n ); ++ XFree( xi_masks ); ++ } ++# endif + #endif + sync(); + return stable->winId(); +-- +1.7.10.4 + diff --git a/vlc.changes b/vlc.changes index 7a95323..167d121 100644 --- a/vlc.changes +++ b/vlc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Dec 7 03:07:12 UTC 2015 - dimstar@opensuse.org + +- Add vlc-qt5.5-mousepointer.patch: Fix mouse cursor in video + interface (boo#956769). + ------------------------------------------------------------------- Tue Dec 1 10:37:35 UTC 2015 - lnussel@suse.de diff --git a/vlc.spec b/vlc.spec index beae2a2..724b6a8 100644 --- a/vlc.spec +++ b/vlc.spec @@ -43,6 +43,8 @@ Source1: %{name}.changes Source2: %{name}-rpmlintrc # PATCH-FIX-OPENSUSE vlc-2.1.5-fix-skins2-default-skin-creation.patch -- see description in patch header Patch1: vlc-2.1.5-fix-skins2-default-skin-creation.patch +# PATCH-FIX-UPSTREAM vlc-qt5.5-mousepointer.patch boo#956769 dimstar@opensuse.org -- Fix mouse cursor in video interface +Patch2: vlc-qt5.5-mousepointer.patch Patch3: 0001-no-return-in-non-void.patch Patch4: vlc-2.2.0-fix_deinterlace_mmx.patch BuildRequires: Mesa-devel @@ -302,6 +304,7 @@ date %if 0%{?suse_version} >=1140 %patch1 -p1 %endif +%patch2 -p1 %patch3 -p1 %if 0%{?suse_version} == 1110 %ifarch %ix86