patches/gnome-session-04-busy-cursor.diff
author rohinis
Tue, 29 Nov 2011 17:32:55 +0000
branchs11express-2010-11
changeset 22234 c23e64da3e06
parent 13113 e0003844f498
permissions -rw-r--r--
2011-11-29 Rohini S <[email protected]> * patches/Python26-22-audio.diff: Fixes CVE-2010-1634 * specs/SUNWPython26.spec: Fixes CR 7085446
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13113
e0003844f498 2008-08-13 Erwann Chenede - <[email protected]>
erwannc
parents: 12752
diff changeset
     1
--- ../gnome-session-2.23.6/splash/gnome-session-splash.c	2008-08-13 14:45:57.078221713 +0200
e0003844f498 2008-08-13 Erwann Chenede - <[email protected]>
erwannc
parents: 12752
diff changeset
     2
+++ gnome-session-2.23.6/splash/gnome-session-splash.c	2008-08-13 14:47:57.199399805 +0200
e0003844f498 2008-08-13 Erwann Chenede - <[email protected]>
erwannc
parents: 12752
diff changeset
     3
@@ -271,6 +271,47 @@
e0003844f498 2008-08-13 Erwann Chenede - <[email protected]>
erwannc
parents: 12752
diff changeset
     4
         gtk_main_quit ();
12752
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
     5
 }
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
     6
 
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
     7
+/* display a busy cursor in window if it exist and on 
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
     8
+ * the root window. This is done in plain X and opening a new 
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
     9
+ * connection each time to avoid keeping the default cursor size
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    10
+ * as it is modified by gnome-daemon-settings while gnome-session is running 
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    11
+ * (hence the user set cursor size would be lost if only one connection 
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    12
+ * was open)*/
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    13
+static void 
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    14
+set_busy_cursor (GdkWindow *window, gboolean enable)
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    15
+{
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    16
+  static gboolean busy = FALSE;
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    17
+  Cursor cur; 
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    18
+  Display *dpy;
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    19
+  int scr_num, i;
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    20
+
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    21
+  dpy = XOpenDisplay (NULL);
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    22
+
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    23
+  if (enable)
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    24
+    {
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    25
+      if (busy)
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    26
+	return;
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    27
+      cur = XCreateFontCursor (dpy, GDK_WATCH);
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    28
+      busy = TRUE;
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    29
+    }
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    30
+  else
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    31
+    {
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    32
+      cur = XCreateFontCursor (dpy, GDK_LEFT_PTR);
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    33
+      busy = FALSE;
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    34
+    }
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    35
+  
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    36
+  scr_num = ScreenCount (dpy);
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    37
+
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    38
+  for (i = 0; i < scr_num; i++)
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    39
+    {
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    40
+      XDefineCursor (dpy, RootWindow (dpy, i), cur);
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    41
+    }
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    42
+
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    43
+  if (GDK_IS_WINDOW (window))
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    44
+    XDefineCursor (dpy, GDK_WINDOW_XID (window), cur);
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    45
+  XSync (dpy, FALSE);
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    46
+  XCloseDisplay (dpy);
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    47
+}
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    48
 int
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    49
 main (int argc, char *argv[])
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    50
 {
13113
e0003844f498 2008-08-13 Erwann Chenede - <[email protected]>
erwannc
parents: 12752
diff changeset
    51
@@ -291,10 +332,14 @@
e0003844f498 2008-08-13 Erwann Chenede - <[email protected]>
erwannc
parents: 12752
diff changeset
    52
                           G_CALLBACK (quit),
e0003844f498 2008-08-13 Erwann Chenede - <[email protected]>
erwannc
parents: 12752
diff changeset
    53
                           NULL);
12752
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    54
 
13113
e0003844f498 2008-08-13 Erwann Chenede - <[email protected]>
erwannc
parents: 12752
diff changeset
    55
+	set_busy_cursor (NULL, TRUE);
12752
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    56
+
13113
e0003844f498 2008-08-13 Erwann Chenede - <[email protected]>
erwannc
parents: 12752
diff changeset
    57
         set_session_running_handler ();
12752
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    58
 
13113
e0003844f498 2008-08-13 Erwann Chenede - <[email protected]>
erwannc
parents: 12752
diff changeset
    59
         setup_splash_window ();
e0003844f498 2008-08-13 Erwann Chenede - <[email protected]>
erwannc
parents: 12752
diff changeset
    60
         gtk_main ();
12752
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    61
 
13113
e0003844f498 2008-08-13 Erwann Chenede - <[email protected]>
erwannc
parents: 12752
diff changeset
    62
+	set_busy_cursor (NULL, FALSE);
12752
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    63
+
13113
e0003844f498 2008-08-13 Erwann Chenede - <[email protected]>
erwannc
parents: 12752
diff changeset
    64
         return 0;
12752
7a38a411c0be 2008-07-02 Niall Power <[email protected]>
niall
parents:
diff changeset
    65
 }