Fix 'Locate Pointer'
This commit is contained in:
parent
8e4b3c60a0
commit
60bd6a963a
@ -1,6 +1,6 @@
|
|||||||
Name: gnome-settings-daemon
|
Name: gnome-settings-daemon
|
||||||
Version: 2.27.91
|
Version: 2.27.91
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: The daemon sharing settings from GNOME to GTK+/KDE applications
|
Summary: The daemon sharing settings from GNOME to GTK+/KDE applications
|
||||||
|
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
@ -38,6 +38,8 @@ Patch12: gnome-settings-daemon-2.26.1-fix-touchpad.patch
|
|||||||
Patch13: locate-pointer-process.patch
|
Patch13: locate-pointer-process.patch
|
||||||
# http://bugzilla.gnome.org/show_bug.cgi?id=593112
|
# http://bugzilla.gnome.org/show_bug.cgi?id=593112
|
||||||
Patch14: buttonmapping.patch
|
Patch14: buttonmapping.patch
|
||||||
|
# http://bugzilla.gnome.org/show_bug.cgi?id=593115
|
||||||
|
Patch15: locate-pointer-csw.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
A daemon to share settings from GNOME to other applications. It also
|
A daemon to share settings from GNOME to other applications. It also
|
||||||
@ -60,6 +62,7 @@ developing applications that use %{name}.
|
|||||||
%patch12 -p1 -b .lefthand-touchpad
|
%patch12 -p1 -b .lefthand-touchpad
|
||||||
%patch13 -p1 -b .locate-pointer
|
%patch13 -p1 -b .locate-pointer
|
||||||
%patch14 -p1 -b .buttonmap
|
%patch14 -p1 -b .buttonmap
|
||||||
|
%patch15 -p1 -b .locate-pointer-csw
|
||||||
|
|
||||||
autoreconf -i -f
|
autoreconf -i -f
|
||||||
|
|
||||||
@ -173,6 +176,9 @@ fi
|
|||||||
%{_libdir}/pkgconfig/gnome-settings-daemon.pc
|
%{_libdir}/pkgconfig/gnome-settings-daemon.pc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Aug 30 2009 Matthias Clasen <mclasen@redhat.com> - 2.27.91-3
|
||||||
|
- Make 'Locate Pointer' work with metacity again
|
||||||
|
|
||||||
* Wed Aug 26 2009 Peter Hutterer <peter.hutterer@redhat.com> 2.27.91-2
|
* Wed Aug 26 2009 Peter Hutterer <peter.hutterer@redhat.com> 2.27.91-2
|
||||||
- buttonmapping.patch: Don't check for IsXExtensionDevice, only skip button
|
- buttonmapping.patch: Don't check for IsXExtensionDevice, only skip button
|
||||||
mappings for core devices instead (#502129).
|
mappings for core devices instead (#502129).
|
||||||
|
62
locate-pointer-csw.patch
Normal file
62
locate-pointer-csw.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
--- gnome-settings-daemon-2.27.91/plugins/mouse/gsd-locate-pointer.c 2009-08-30 02:33:02.791519895 -0400
|
||||||
|
+++ hacked/plugins/mouse/gsd-locate-pointer.c 2009-08-30 02:32:13.785515177 -0400
|
||||||
|
@@ -126,27 +126,29 @@
|
||||||
|
cairo_t *cr;
|
||||||
|
GdkBitmap *mask;
|
||||||
|
|
||||||
|
- if (event->window != data->window)
|
||||||
|
+ if (event && event->window != data->window)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
- cr = gdk_cairo_create (data->window);
|
||||||
|
-
|
||||||
|
if (gtk_widget_is_composited (data->widget))
|
||||||
|
- locate_pointer_paint (data, cr, TRUE);
|
||||||
|
- else
|
||||||
|
{
|
||||||
|
- locate_pointer_paint (data, cr, FALSE);
|
||||||
|
+ cr = gdk_cairo_create (data->window);
|
||||||
|
+ locate_pointer_paint (data, cr, TRUE);
|
||||||
|
cairo_destroy (cr);
|
||||||
|
-
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
/* create a bitmap for the shape, reuse the cairo_t to paint on it */
|
||||||
|
mask = gdk_pixmap_new (data->window, WINDOW_SIZE, WINDOW_SIZE, 1);
|
||||||
|
cr = gdk_cairo_create (mask);
|
||||||
|
locate_pointer_paint (data, cr, FALSE);
|
||||||
|
gdk_window_shape_combine_mask (data->window, mask, 0, 0);
|
||||||
|
g_object_unref (mask);
|
||||||
|
- }
|
||||||
|
+ cairo_destroy (cr);
|
||||||
|
|
||||||
|
- cairo_destroy (cr);
|
||||||
|
+ cr = gdk_cairo_create (data->window);
|
||||||
|
+ locate_pointer_paint (data, cr, FALSE);
|
||||||
|
+ cairo_destroy (cr);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
@@ -168,7 +170,7 @@
|
||||||
|
else if (progress >= data->progress + CIRCLES_PROGRESS_INTERVAL)
|
||||||
|
{
|
||||||
|
/* only invalidate window each circle interval */
|
||||||
|
- gdk_window_invalidate_rect (data->window, NULL, FALSE);
|
||||||
|
+ locate_pointer_expose (data->widget, NULL, data);
|
||||||
|
data->progress += CIRCLES_PROGRESS_INTERVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -340,10 +342,9 @@
|
||||||
|
g_signal_connect (data->widget, "composited-changed",
|
||||||
|
G_CALLBACK (composited_changed), data);
|
||||||
|
|
||||||
|
+ move_locate_pointer_window (data, screen);
|
||||||
|
composited_changed (data->widget, data);
|
||||||
|
-
|
||||||
|
gdk_window_show (data->window);
|
||||||
|
- move_locate_pointer_window (data, screen);
|
||||||
|
|
||||||
|
gsd_timeline_start (data->timeline);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user