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}
|
||||
%global with_wayland 1
|
||||
%endif
|
||||
|
||||
Name: clutter
|
||||
Version: 1.14.4
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
Summary: Open Source software library for creating rich graphical user interfaces
|
||||
|
||||
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
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=692706
|
||||
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: cairo-gobject-devel gdk-pixbuf2-devel atk-devel
|
||||
@ -77,6 +81,7 @@ This package contains documentation for clutter.
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1 -b .cally_crash
|
||||
%patch1 -p1 -b .xi2-crash
|
||||
|
||||
%build
|
||||
(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
|
||||
|
||||
%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
|
||||
- Backport an upstream patch for frequent gnome-shell crashes (#827158)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user