[gnome-settings-daemon] Make 'locate pointer' deal with wm/cm changes
- From: Matthias Clasen <matthiasc src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnome-settings-daemon] Make 'locate pointer' deal with wm/cm changes
- Date: Mon, 15 Jun 2009 01:53:20 -0400 (EDT)
commit fa240246ed384ef1d07615302bd9c8195e539a7f
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Jun 15 01:52:46 2009 -0400
Make 'locate pointer' deal with wm/cm changes
This fixes bug 585209.
plugins/mouse/gsd-locate-pointer.c | 22 ++++++++++++++++++++--
1 files changed, 20 insertions(+), 2 deletions(-)
---
diff --git a/plugins/mouse/gsd-locate-pointer.c b/plugins/mouse/gsd-locate-pointer.c
index 3d61cad..121cdc8 100644
--- a/plugins/mouse/gsd-locate-pointer.c
+++ b/plugins/mouse/gsd-locate-pointer.c
@@ -195,6 +195,22 @@ set_transparent_shape (GdkWindow *window)
}
static void
+unset_transparent_shape (GdkWindow *window)
+{
+ gdk_window_shape_combine_mask (data->window, NULL, 0, 0);
+}
+
+static void
+composited_changed (GtkWidget *widget,
+ GsdLocatePointerData *data)
+{
+ if (!gtk_widget_is_composited (widget))
+ set_transparent_shape (data->window);
+ else
+ unset_transparent_shape (data->window);
+}
+
+static void
timeline_finished_cb (GsdTimeline *timeline,
gpointer user_data)
{
@@ -317,8 +333,10 @@ gsd_locate_pointer (GdkScreen *screen)
data->progress = 0.;
- if (!gtk_widget_is_composited (data->widget))
- set_transparent_shape (data->window);
+ g_signal_connect (data->widget, "composited-changed",
+ G_CALLBACK (composited_changed), data);
+
+ composited_changed (data->widget, data);
gdk_window_show (data->window);
move_locate_pointer_window (data, screen);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]