|
|
60bd6a9 |
--- gnome-settings-daemon-2.27.91/plugins/mouse/gsd-locate-pointer.c 2009-08-30 02:33:02.791519895 -0400
|
|
|
60bd6a9 |
+++ hacked/plugins/mouse/gsd-locate-pointer.c 2009-08-30 02:32:13.785515177 -0400
|
|
|
60bd6a9 |
@@ -126,27 +126,29 @@
|
|
|
60bd6a9 |
cairo_t *cr;
|
|
|
60bd6a9 |
GdkBitmap *mask;
|
|
|
60bd6a9 |
|
|
|
60bd6a9 |
- if (event->window != data->window)
|
|
|
60bd6a9 |
+ if (event && event->window != data->window)
|
|
|
60bd6a9 |
return FALSE;
|
|
|
60bd6a9 |
|
|
|
60bd6a9 |
- cr = gdk_cairo_create (data->window);
|
|
|
60bd6a9 |
-
|
|
|
60bd6a9 |
if (gtk_widget_is_composited (data->widget))
|
|
|
60bd6a9 |
- locate_pointer_paint (data, cr, TRUE);
|
|
|
60bd6a9 |
- else
|
|
|
60bd6a9 |
{
|
|
|
60bd6a9 |
- locate_pointer_paint (data, cr, FALSE);
|
|
|
60bd6a9 |
+ cr = gdk_cairo_create (data->window);
|
|
|
60bd6a9 |
+ locate_pointer_paint (data, cr, TRUE);
|
|
|
60bd6a9 |
cairo_destroy (cr);
|
|
|
60bd6a9 |
-
|
|
|
60bd6a9 |
+ }
|
|
|
60bd6a9 |
+ else
|
|
|
60bd6a9 |
+ {
|
|
|
60bd6a9 |
/* create a bitmap for the shape, reuse the cairo_t to paint on it */
|
|
|
60bd6a9 |
mask = gdk_pixmap_new (data->window, WINDOW_SIZE, WINDOW_SIZE, 1);
|
|
|
60bd6a9 |
cr = gdk_cairo_create (mask);
|
|
|
60bd6a9 |
locate_pointer_paint (data, cr, FALSE);
|
|
|
60bd6a9 |
gdk_window_shape_combine_mask (data->window, mask, 0, 0);
|
|
|
60bd6a9 |
g_object_unref (mask);
|
|
|
60bd6a9 |
- }
|
|
|
60bd6a9 |
+ cairo_destroy (cr);
|
|
|
60bd6a9 |
|
|
|
60bd6a9 |
- cairo_destroy (cr);
|
|
|
60bd6a9 |
+ cr = gdk_cairo_create (data->window);
|
|
|
60bd6a9 |
+ locate_pointer_paint (data, cr, FALSE);
|
|
|
60bd6a9 |
+ cairo_destroy (cr);
|
|
|
60bd6a9 |
+ }
|
|
|
60bd6a9 |
|
|
|
60bd6a9 |
return TRUE;
|
|
|
60bd6a9 |
}
|
|
|
60bd6a9 |
@@ -168,7 +170,7 @@
|
|
|
60bd6a9 |
else if (progress >= data->progress + CIRCLES_PROGRESS_INTERVAL)
|
|
|
60bd6a9 |
{
|
|
|
60bd6a9 |
/* only invalidate window each circle interval */
|
|
|
60bd6a9 |
- gdk_window_invalidate_rect (data->window, NULL, FALSE);
|
|
|
60bd6a9 |
+ locate_pointer_expose (data->widget, NULL, data);
|
|
|
60bd6a9 |
data->progress += CIRCLES_PROGRESS_INTERVAL;
|
|
|
60bd6a9 |
}
|
|
|
60bd6a9 |
|
|
|
60bd6a9 |
@@ -340,10 +342,9 @@
|
|
|
60bd6a9 |
g_signal_connect (data->widget, "composited-changed",
|
|
|
60bd6a9 |
G_CALLBACK (composited_changed), data);
|
|
|
60bd6a9 |
|
|
|
60bd6a9 |
+ move_locate_pointer_window (data, screen);
|
|
|
60bd6a9 |
composited_changed (data->widget, data);
|
|
|
60bd6a9 |
-
|
|
|
60bd6a9 |
gdk_window_show (data->window);
|
|
|
60bd6a9 |
- move_locate_pointer_window (data, screen);
|
|
|
60bd6a9 |
|
|
|
60bd6a9 |
gsd_timeline_start (data->timeline);
|
|
|
60bd6a9 |
}
|