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