SHA256
1
0
forked from pool/vlc

Accepting request 347694 from home:dimstar:branches:multimedia:libs

- Add vlc-qt5.5-mousepointer.patch: Fix mouse cursor in video
  interface (boo#956769).

OBS-URL: https://build.opensuse.org/request/show/347694
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vlc?expand=0&rev=145
This commit is contained in:
Dominique Leuenberger 2015-12-07 03:57:34 +00:00 committed by Git OBS Bridge
parent 9ca3fe9ddd
commit a910613a1e
4 changed files with 143 additions and 39 deletions

View File

@ -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];
}

View File

@ -0,0 +1,93 @@
From 729d28e766f37e166000c0c9d15c19138281b754 Mon Sep 17 00:00:00 2001
From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
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 <jb@videolan.org>
---
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 <X11/Xlib.h>
+# ifdef HAVE_XI
+# include <X11/extensions/XInput2.h>
+# endif
# include <qx11info_x11.h>
#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

View File

@ -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

View File

@ -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