Updating branch refs/heads/xrandr-display-settings
         to e75d59d2dc773ca0365968b4c6e39468548dc065 (commit)
       from 33ae22339844a1ec3fdffe76db2b9140efad9aa6 (commit)

commit e75d59d2dc773ca0365968b4c6e39468548dc065
Author: Lionel Le Folgoc <mrpo...@gmail.com>
Date:   Sat Jun 12 16:25:05 2010 +0200

    Use gdk functions instead of querying X directly
    
    gdk (might do|does) some caching, so it might be faster. It can't hurt 
anyway…

 dialogs/display-settings/xfce-randr.c |    8 ++---
 xfce4-settings-helper/displays.c      |   54 +++++++++++++++-----------------
 2 files changed, 28 insertions(+), 34 deletions(-)

diff --git a/dialogs/display-settings/xfce-randr.c 
b/dialogs/display-settings/xfce-randr.c
index 5d898ca..491d00b 100644
--- a/dialogs/display-settings/xfce-randr.c
+++ b/dialogs/display-settings/xfce-randr.c
@@ -405,7 +405,7 @@ xfce_randr_friendly_name (XfceRandr   *randr,
     unsigned long    nitems, bytes_after;
     Atom             actual_type;
     Atom             connector_type;
-    gchar           *connector_name;
+    const gchar     *connector_name;
     gchar           *friendly_name = NULL;
 
     g_return_val_if_fail (randr != NULL && output != None && name != NULL, 
"<null>");
@@ -414,7 +414,7 @@ xfce_randr_friendly_name (XfceRandr   *randr,
     xdisplay = gdk_x11_display_get_xdisplay (randr->display);
 
     /* try to use the connector type first, more reliable */
-    connector_type = XInternAtom (xdisplay, RR_PROPERTY_CONNECTOR_TYPE, False);
+    connector_type = gdk_x11_get_xatom_by_name (RR_PROPERTY_CONNECTOR_TYPE);
 
     if (randr->has_1_3 && connector_type != None)
     {
@@ -425,7 +425,7 @@ xfce_randr_friendly_name (XfceRandr   *randr,
             if (actual_type == XA_ATOM && actual_format == 32 && nitems == 1)
             {
                 connector_type = *((Atom *) prop);
-                connector_name = XGetAtomName (xdisplay, connector_type);
+                connector_name = gdk_x11_get_xatom_name (connector_type);
 
                 if (connector_name)
                 {
@@ -441,8 +441,6 @@ xfce_randr_friendly_name (XfceRandr   *randr,
                         friendly_name = _("Television");
                     else
                         g_warning ("Unknown or unsupported connector type.");
-
-                    XFree (connector_name);
                 }
             }
             XFree (prop);
diff --git a/xfce4-settings-helper/displays.c b/xfce4-settings-helper/displays.c
index 4a2ce19..b4d9090 100644
--- a/xfce4-settings-helper/displays.c
+++ b/xfce4-settings-helper/displays.c
@@ -168,31 +168,27 @@ xfce_displays_helper_finalize (GObject *object)
 
 #ifdef HAS_RANDR_ONE_POINT_TWO
 static void
-xfce_displays_helper_process_screen_size (Display   *xdisplay,
-                                          gint       mode_width,
-                                          gint       mode_height,
-                                          gint       crtc_pos_x,
-                                          gint       crtc_pos_y,
-                                          gint      *width,
-                                          gint      *height,
-                                          gint      *mm_width,
-                                          gint      *mm_height)
+xfce_displays_helper_process_screen_size (gint  mode_width,
+                                          gint  mode_height,
+                                          gint  crtc_pos_x,
+                                          gint  crtc_pos_y,
+                                          gint *width,
+                                          gint *height,
+                                          gint *mm_width,
+                                          gint *mm_height)
 {
     gdouble dpi = 0;
-    gint    screen = gdk_x11_get_default_screen ();
-
-    g_return_if_fail (xdisplay != NULL);
 
     *width = MAX (*width, crtc_pos_x + mode_width);
     *height = MAX (*height, crtc_pos_y + mode_height);
 
-    dpi = 25.4 * DisplayHeight (xdisplay, screen);
-    dpi /= DisplayHeightMM (xdisplay, screen);
+    dpi = 25.4 * gdk_screen_height ();
+    dpi /= gdk_screen_height_mm ();
 
     if (dpi <= 0)
     {
-        *mm_width = DisplayWidthMM (xdisplay, screen);
-        *mm_height = DisplayHeightMM (xdisplay, screen);
+        *mm_width = gdk_screen_width_mm ();
+        *mm_height = gdk_screen_height_mm ();
     }
     else
     {
@@ -471,13 +467,15 @@ xfce_displays_helper_channel_apply (XfceDisplaysHelper 
*helper,
 
                 /* get the sizes of the mode to enforce */
                 if ((rot & (RR_Rotate_90|RR_Rotate_270)) != 0)
-                    xfce_displays_helper_process_screen_size (xdisplay, 
resources->modes[j].height,
-                                                              
resources->modes[j].width, pos_x, pos_y,
-                                                              &width, &height, 
&mm_width, &mm_height);
+                    xfce_displays_helper_process_screen_size 
(resources->modes[j].height,
+                                                              
resources->modes[j].width,
+                                                              pos_x, pos_y, 
&width, &height,
+                                                              &mm_width, 
&mm_height);
                 else
-                    xfce_displays_helper_process_screen_size (xdisplay, 
resources->modes[j].width,
-                                                              
resources->modes[j].height, pos_x, pos_y,
-                                                              &width, &height, 
&mm_width, &mm_height);
+                    xfce_displays_helper_process_screen_size 
(resources->modes[j].width,
+                                                              
resources->modes[j].height,
+                                                              pos_x, pos_y, 
&width, &height,
+                                                              &mm_width, 
&mm_height);
 
                 /* check if we really need to do something */
                 if (crtc_info->mode != mode || crtc_info->rotation != rot
@@ -505,15 +503,13 @@ xfce_displays_helper_channel_apply (XfceDisplaysHelper 
*helper,
         g_free (output_name);
     }
 
-    /* everything has been applied, set the screen size */
-    n = gdk_x11_get_default_screen ();
-    /* call it only if it's really needed and valid */
+    /* set the screen size only if it's really needed and valid */
     if (width >= min_width && width <= max_width
         && height >= min_height && height <= max_height
-        && (width != DisplayWidth (xdisplay, n)
-            || height != DisplayHeight (xdisplay, n)
-            || mm_width != DisplayWidthMM (xdisplay, n)
-            || mm_height != DisplayHeightMM (xdisplay, n)))
+        && (width != gdk_screen_width ()
+            || height != gdk_screen_height ()
+            || mm_width != gdk_screen_width_mm ()
+            || mm_height != gdk_screen_height_mm ()))
         XRRSetScreenSize (xdisplay, GDK_WINDOW_XID (root_window),
                           width, height, mm_width, mm_height);
 
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to