fix a shell crash
This commit is contained in:
parent
2d8603a03b
commit
ad7aa91136
70
0001-x11-trap-errors-when-calling-XIQueryDevice.patch
Normal file
70
0001-x11-trap-errors-when-calling-XIQueryDevice.patch
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
From d343cc6289583a7b0d929b82b740499ed588b1ab Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matthias Clasen <mclasen@redhat.com>
|
||||||
|
Date: Mon, 10 Jun 2013 21:41:24 -0400
|
||||||
|
Subject: [PATCH] x11: trap errors when calling XIQueryDevice
|
||||||
|
|
||||||
|
Devices can disappear at any time, causing XIQueryDevice
|
||||||
|
to throw an error. At the same time, plug a memory leak.
|
||||||
|
|
||||||
|
https://bugzilla.gnome.org/show_bug.cgi?id=701974
|
||||||
|
---
|
||||||
|
clutter/x11/clutter-device-manager-xi2.c | 30 ++++++++++++++++++++++--------
|
||||||
|
1 file changed, 22 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/clutter/x11/clutter-device-manager-xi2.c b/clutter/x11/clutter-device-manager-xi2.c
|
||||||
|
index 6a06cec..49ee212 100644
|
||||||
|
--- a/clutter/x11/clutter-device-manager-xi2.c
|
||||||
|
+++ b/clutter/x11/clutter-device-manager-xi2.c
|
||||||
|
@@ -408,10 +408,16 @@ translate_hierarchy_event (ClutterBackendX11 *backend_x11,
|
||||||
|
|
||||||
|
CLUTTER_NOTE (EVENT, "Hierarchy event: device enabled");
|
||||||
|
|
||||||
|
+ clutter_x11_trap_x_errors ();
|
||||||
|
info = XIQueryDevice (backend_x11->xdpy,
|
||||||
|
ev->info[i].deviceid,
|
||||||
|
&n_devices);
|
||||||
|
- add_device (manager_xi2, backend_x11, &info[0], FALSE);
|
||||||
|
+ clutter_x11_untrap_x_errors ();
|
||||||
|
+ if (info != NULL)
|
||||||
|
+ {
|
||||||
|
+ add_device (manager_xi2, backend_x11, &info[0], FALSE);
|
||||||
|
+ XIFreeDeviceInfo (info);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
else if (ev->info[i].flags & XIDeviceDisabled)
|
||||||
|
{
|
||||||
|
@@ -448,16 +454,24 @@ translate_hierarchy_event (ClutterBackendX11 *backend_x11,
|
||||||
|
/* and attach the slave to the new master if needed */
|
||||||
|
if (ev->info[i].flags & XISlaveAttached)
|
||||||
|
{
|
||||||
|
+ clutter_x11_trap_x_errors ();
|
||||||
|
info = XIQueryDevice (backend_x11->xdpy,
|
||||||
|
ev->info[i].deviceid,
|
||||||
|
&n_devices);
|
||||||
|
- master = g_hash_table_lookup (manager_xi2->devices_by_id,
|
||||||
|
- GINT_TO_POINTER (info->attachment));
|
||||||
|
- _clutter_input_device_set_associated_device (slave, master);
|
||||||
|
- _clutter_input_device_add_slave (master, slave);
|
||||||
|
-
|
||||||
|
- send_changed = TRUE;
|
||||||
|
- XIFreeDeviceInfo (info);
|
||||||
|
+ clutter_x11_untrap_x_errors ();
|
||||||
|
+ if (info != NULL)
|
||||||
|
+ {
|
||||||
|
+ master = g_hash_table_lookup (manager_xi2->devices_by_id,
|
||||||
|
+ GINT_TO_POINTER (info->attachment));
|
||||||
|
+ if (master != NULL)
|
||||||
|
+ {
|
||||||
|
+ _clutter_input_device_set_associated_device (slave, master);
|
||||||
|
+ _clutter_input_device_add_slave (master, slave);
|
||||||
|
+
|
||||||
|
+ send_changed = TRUE;
|
||||||
|
+ }
|
||||||
|
+ XIFreeDeviceInfo (info);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (send_changed)
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
10
clutter.spec
10
clutter.spec
@ -1,10 +1,12 @@
|
|||||||
|
%global _changelog_trimtime %(date +%s -d "1 year ago")
|
||||||
|
|
||||||
%if 0%{?fedora}
|
%if 0%{?fedora}
|
||||||
%global with_wayland 1
|
%global with_wayland 1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
Name: clutter
|
Name: clutter
|
||||||
Version: 1.14.4
|
Version: 1.14.4
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: Open Source software library for creating rich graphical user interfaces
|
Summary: Open Source software library for creating rich graphical user interfaces
|
||||||
|
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
@ -13,6 +15,8 @@ URL: http://www.clutter-project.org/
|
|||||||
Source0: http://download.gnome.org/sources/clutter/1.14/clutter-%{version}.tar.xz
|
Source0: http://download.gnome.org/sources/clutter/1.14/clutter-%{version}.tar.xz
|
||||||
# https://bugzilla.gnome.org/show_bug.cgi?id=692706
|
# https://bugzilla.gnome.org/show_bug.cgi?id=692706
|
||||||
Patch0: 0001-cally-Use-a-weak-pointer-to-hold-the-key-focus-in-Ca.patch
|
Patch0: 0001-cally-Use-a-weak-pointer-to-hold-the-key-focus-in-Ca.patch
|
||||||
|
# https://bugzilla.gnome.org/show_bug.cgi?id=701974
|
||||||
|
Patch1: 0001-x11-trap-errors-when-calling-XIQueryDevice.patch
|
||||||
|
|
||||||
BuildRequires: glib2-devel mesa-libGL-devel pkgconfig pango-devel
|
BuildRequires: glib2-devel mesa-libGL-devel pkgconfig pango-devel
|
||||||
BuildRequires: cairo-gobject-devel gdk-pixbuf2-devel atk-devel
|
BuildRequires: cairo-gobject-devel gdk-pixbuf2-devel atk-devel
|
||||||
@ -77,6 +81,7 @@ This package contains documentation for clutter.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1 -b .cally_crash
|
%patch0 -p1 -b .cally_crash
|
||||||
|
%patch1 -p1 -b .xi2-crash
|
||||||
|
|
||||||
%build
|
%build
|
||||||
(if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; CONFIGFLAGS=--enable-gtk-doc; fi;
|
(if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; CONFIGFLAGS=--enable-gtk-doc; fi;
|
||||||
@ -125,6 +130,9 @@ find %{buildroot} -name '*.la' -exec rm -f {} ';'
|
|||||||
%{_datadir}/gtk-doc/html/cally
|
%{_datadir}/gtk-doc/html/cally
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Jun 23 2013 Matthias Clasen <mclasen@redhat.com> - 1.14.4-3
|
||||||
|
- Backport another upstream patch for gnome-shell crashes (#954054)
|
||||||
|
|
||||||
* Fri May 17 2013 Kalev Lember <kalevlember@gmail.com> - 1.14.4-2
|
* Fri May 17 2013 Kalev Lember <kalevlember@gmail.com> - 1.14.4-2
|
||||||
- Backport an upstream patch for frequent gnome-shell crashes (#827158)
|
- Backport an upstream patch for frequent gnome-shell crashes (#827158)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user