[Xfce4-commits] <xfce4-settings:nick/clipboard-manager> Share xserver time function for clipboard manager.

Nick Schermer noreply at xfce.org
Sat May 7 22:22:02 CEST 2011


Updating branch refs/heads/nick/clipboard-manager
         to 682b5e7025e86f3803bb9789925796586abaa09a (commit)
       from 1badff8a32e9d931ca266f37acf3eed48db90e46 (commit)

commit 682b5e7025e86f3803bb9789925796586abaa09a
Author: Nick Schermer <nick at xfce.org>
Date:   Sat May 7 18:38:27 2011 +0200

    Share xserver time function for clipboard manager.

 xfsettingsd/xsettings.c |   31 ++++++++++++++++++++++---------
 xfsettingsd/xsettings.h |    3 +++
 2 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/xfsettingsd/xsettings.c b/xfsettingsd/xsettings.c
index bb35fb9..4d96b56 100644
--- a/xfsettingsd/xsettings.c
+++ b/xfsettingsd/xsettings.c
@@ -1029,6 +1029,26 @@ xfce_xsettings_helper_timestamp_predicate (Display  *xdisplay,
 
 
 
+Time     
+xfce_xsettings_get_server_time (Display *xdisplay,
+                                Window   window)
+{
+    Atom   timestamp_atom;
+    guchar c = 'a';
+    XEvent xevent;
+
+    /* get the current xserver timestamp */
+    timestamp_atom = XInternAtom (xdisplay, "_TIMESTAMP_PROP", False);
+    XChangeProperty (xdisplay, window, timestamp_atom, timestamp_atom,
+                     8, PropModeReplace, &c, 1);
+    XIfEvent (xdisplay, &xevent, xfce_xsettings_helper_timestamp_predicate,
+              GUINT_TO_POINTER (window));
+
+    return xevent.xproperty.time;
+}
+
+
+
 gboolean
 xfce_xsettings_helper_register (XfceXSettingsHelper *helper,
                                 GdkDisplay          *gdkdisplay,
@@ -1039,11 +1059,9 @@ xfce_xsettings_helper_register (XfceXSettingsHelper *helper,
     Window               window;
     gchar                atom_name[64];
     Atom                 selection_atom;
-    Atom                 timestamp_atom;
     gint                 n_screens, n;
-    guchar               c = 'a';
+    
     XfceXSettingsScreen *screen;
-    XEvent               xevent;
     Time                 timestamp;
     XClientMessageEvent  xev;
     gboolean             succeed;
@@ -1079,12 +1097,7 @@ xfce_xsettings_helper_register (XfceXSettingsHelper *helper,
         XSelectInput (xdisplay, window, PropertyChangeMask);
 
         /* get the current xserver timestamp */
-        timestamp_atom = XInternAtom (xdisplay, "_TIMESTAMP_PROP", False);
-        XChangeProperty (xdisplay, window, timestamp_atom, timestamp_atom,
-                         8, PropModeReplace, &c, 1);
-        XIfEvent (xdisplay, &xevent, xfce_xsettings_helper_timestamp_predicate,
-                  GUINT_TO_POINTER (window));
-        timestamp = xevent.xproperty.time;
+        timestamp = xfce_xsettings_get_server_time (xdisplay, window);
 
         /* request ownership of the xsettings selection on this screen */
         XSetSelectionOwner (xdisplay, selection_atom, window, timestamp);
diff --git a/xfsettingsd/xsettings.h b/xfsettingsd/xsettings.h
index 76371a6..01ad801 100644
--- a/xfsettingsd/xsettings.h
+++ b/xfsettingsd/xsettings.h
@@ -36,4 +36,7 @@ gboolean xfce_xsettings_helper_register (XfceXSettingsHelper *helper,
                                          GdkDisplay          *gdkdisplay,
                                          gboolean             force_replace);
 
+Time     xfce_xsettings_get_server_time (Display             *display,
+                                         Window               window);
+
 #endif /* !__XSETTINGS_H__ */



More information about the Xfce4-commits mailing list