]> git.ipfire.org Git - ipfire-3.x.git/blobdiff - xorg-x11-server/patches/xserver-1.6.99-right-of.patch
xorg-x11-server: Update to 1.13.2.
[ipfire-3.x.git] / xorg-x11-server / patches / xserver-1.6.99-right-of.patch
index 06c11831641b7cc59e8af2f9f0daf7fe4359e6dc..bf7e7c87f21593bdcf2badb790e9bdb516089fa0 100644 (file)
@@ -1,47 +1,37 @@
-From 1766ae8a69daa06730e41d094fdddf53db3a1a9e Mon Sep 17 00:00:00 2001
+From 291bc9f827188461ff9717efccec1e350db537e8 Mon Sep 17 00:00:00 2001
 From: Adam Jackson <ajax@redhat.com>
 Date: Tue, 28 Jul 2009 11:07:13 -0400
-Subject: [PATCH] RANDR: right-of placement by default
+Subject: [PATCH 3/7] RANDR: right-of placement by default
 
 [Enhanced to add a new prefer clone option for drivers. This
 allows for servers like RN50 where two heads are disjoint. - airlied]
-
-[Enhanced to ignore rightof on single crtc cards - airlied]
 ---
- hw/xfree86/common/xf86str.h |    9 ++++-
- hw/xfree86/modes/xf86Crtc.c |   77 +++++++++++++++++++++++++++++++++++++++----
- 2 files changed, 77 insertions(+), 9 deletions(-)
+ hw/xfree86/common/xf86str.h |    8 ++++-
+ hw/xfree86/modes/xf86Crtc.c |   76 ++++++++++++++++++++++++++++++++++++++-----
+ 2 files changed, 75 insertions(+), 9 deletions(-)
 
 diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h
-index 5c3aa00..8224668 100644
+index 0590262..d246634 100644
 --- a/hw/xfree86/common/xf86str.h
 +++ b/hw/xfree86/common/xf86str.h
-@@ -503,10 +503,13 @@ typedef struct _confdrirec {
+@@ -508,10 +508,13 @@ typedef struct _confdrirec {
  } confDRIRec, *confDRIPtr;
  
  /* These values should be adjusted when new fields are added to ScrnInfoRec */
--#define NUM_RESERVED_INTS             15
-+#define NUM_RESERVED_INTS             14
+-#define NUM_RESERVED_INTS             16
++#define NUM_RESERVED_INTS             15
  #define NUM_RESERVED_POINTERS         14
- #define NUM_RESERVED_FUNCS            11
+ #define NUM_RESERVED_FUNCS            10
  
 +/* let clients know they can use this */
 +#define XF86_SCRN_HAS_PREFER_CLONE 1
 +
- typedef pointer (*funcPointer)(void);
+ typedef pointer (*funcPointer) (void);
  
  /* flags for depth 24 pixmap options */
-@@ -672,7 +675,6 @@ typedef void xf86SetOverscanProc          (ScrnInfoPtr, int);
-  * are to be dependent on compile-time defines.
-  */
--
- typedef struct _ScrnInfoRec {
-     int                       driverVersion;
-     char *            driverName;             /* canonical name used in */
-@@ -778,6 +780,9 @@ typedef struct _ScrnInfoRec {
-     /* -nr support */
-     int                 canDoBGNoneRoot;
+@@ -769,6 +772,9 @@ typedef struct _ScrnInfoRec {
+     ClockRangePtr clockRanges;
+     int adjustFlags;
  
 +    /* initial rightof support disable */
 +    int                 preferClone;
@@ -50,26 +40,26 @@ index 5c3aa00..8224668 100644
       * These can be used when the minor ABI version is incremented.
       * The NUM_* parameters must be reduced appropriately to keep the
 diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
-index a66c979..4d14f57 100644
+index 154f684..c58088d 100644
 --- a/hw/xfree86/modes/xf86Crtc.c
 +++ b/hw/xfree86/modes/xf86Crtc.c
-@@ -1146,6 +1146,15 @@ xf86InitialOutputPositions (ScrnInfoPtr scrn, DisplayModePtr *modes)
-     int                       o;
-     int                       min_x, min_y;
-     
+@@ -1130,6 +1130,15 @@ xf86InitialOutputPositions(ScrnInfoPtr scrn, DisplayModePtr * modes)
+     int o;
+     int min_x, min_y;
 +    /* check for initial right-of heuristic */
 +    for (o = 0; o < config->num_output; o++)
 +    {
-+      xf86OutputPtr   output = config->output[o];
++        xf86OutputPtr output = config->output[o];
 +
-+      if (output->initial_x || output->initial_y)
++        if (output->initial_x || output->initial_y)
 +            return TRUE;
 +    }
 +
-     for (o = 0; o < config->num_output; o++)
-     {
-       xf86OutputPtr   output = config->output[o];
-@@ -2028,6 +2037,60 @@ bestModeForAspect(xf86CrtcConfigPtr config, Bool *enabled, float aspect)
+     for (o = 0; o < config->num_output; o++) {
+         xf86OutputPtr output = config->output[o];
+@@ -1998,6 +2007,57 @@ bestModeForAspect(xf86CrtcConfigPtr config, Bool *enabled, float aspect)
      return match;
  }
  
@@ -85,43 +75,40 @@ index a66c979..4d14f57 100644
 +
 +static Bool
 +xf86TargetRightOf(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
-+                DisplayModePtr *modes, Bool *enabled,
-+                int width, int height)
++                  DisplayModePtr *modes, Bool *enabled,
++                  int width, int height)
 +{
 +    int o;
 +    int w = 0;
 +
-+    if (config->num_crtc == 1)
-+      return FALSE;
-+
 +    if (scrn->preferClone)
-+      return FALSE;
++        return FALSE;
 +
 +    if (numEnabledOutputs(config, enabled) < 2)
-+      return FALSE;
++        return FALSE;
 +
 +    for (o = -1; nextEnabledOutput(config, enabled, &o); ) {
-+      DisplayModePtr mode =
-+          xf86OutputHasPreferredMode(config->output[o], width, height);
++        DisplayModePtr mode =
++            xf86OutputHasPreferredMode(config->output[o], width, height);
 +
-+      if (!mode)
-+          return FALSE;
++        if (!mode)
++            return FALSE;
 +
-+      w += mode->HDisplay;
++        w += mode->HDisplay;
 +    }
 +
 +    if (w > width)
-+      return FALSE;
++        return FALSE;
 +
 +    w = 0;
 +    for (o = -1; nextEnabledOutput(config, enabled, &o); ) {
-+      DisplayModePtr mode =
-+          xf86OutputHasPreferredMode(config->output[o], width, height);
++        DisplayModePtr mode =
++            xf86OutputHasPreferredMode(config->output[o], width, height);
 +
-+      config->output[o]->initial_x = w;
-+      w += mode->HDisplay;
++        config->output[o]->initial_x = w;
++        w += mode->HDisplay;
 +
-+      modes[o] = mode;
++        modes[o] = mode;
 +    }
 +
 +    return TRUE;
@@ -129,44 +116,47 @@ index a66c979..4d14f57 100644
 +
  static Bool
  xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
-                   DisplayModePtr *modes, Bool *enabled,
-@@ -2085,13 +2148,9 @@ xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
-      * biggest mode for its aspect ratio, assuming one exists.
+                     DisplayModePtr * modes, Bool *enabled,
+@@ -2074,14 +2134,10 @@ xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
       */
-     if (!ret) do {
--      int i = 0;
-       float aspect = 0.0;
+     if (!ret)
+         do {
+-            int i = 0;
+             float aspect = 0.0;
+             DisplayModePtr a = NULL, b = NULL;
  
--      /* count the number of enabled outputs */
--      for (i = 0, p = -1; nextEnabledOutput(config, enabled, &p); i++) ;
+-            /* count the number of enabled outputs */
+-            for (i = 0, p = -1; nextEnabledOutput(config, enabled, &p); i++);
 -
--      if (i != 1)
-+      if (numEnabledOutputs(config, enabled) != 1)
-           break;
-       p = -1;
-@@ -2378,6 +2437,8 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
+-            if (i != 1)
++            if (numEnabledOutputs(config, enabled) != 1)
+                 break;
  
-     if (xf86TargetUserpref(scrn, config, modes, enabled, width, height))
-       xf86DrvMsg(i, X_INFO, "Using user preference for initial modes\n");
-+    else if (xf86TargetRightOf(scrn, config, modes, enabled, width, height))
-+      xf86DrvMsg(i, X_INFO, "Using spanning desktop for initial modes\n");
-     else if (xf86TargetPreferred(scrn, config, modes, enabled, width, height))
-       xf86DrvMsg(i, X_INFO, "Using exact sizes for initial modes\n");
-     else if (xf86TargetAspect(scrn, config, modes, enabled, width, height))
-@@ -2394,8 +2455,10 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
-                       config->output[o]->name);
-       else
-           xf86DrvMsg (scrn->scrnIndex, X_INFO,
--                      "Output %s using initial mode %s\n",
--                      config->output[o]->name, modes[o]->name);
-+                      "Output %s using initial mode %s +%d+%d\n",
-+                      config->output[o]->name, modes[o]->name,
+             p = -1;
+@@ -2385,6 +2441,8 @@ xf86InitialConfiguration(ScrnInfoPtr scrn, Bool canGrow)
+     else {
+         if (xf86TargetUserpref(scrn, config, modes, enabled, width, height))
+             xf86DrvMsg(i, X_INFO, "Using user preference for initial modes\n");
++        else if (xf86TargetRightOf(scrn, config, modes, enabled, width, height))
++            xf86DrvMsg(i, X_INFO, "Using spanning desktop for initial modes\n");
+         else if (xf86TargetPreferred
+                  (scrn, config, modes, enabled, width, height))
+             xf86DrvMsg(i, X_INFO, "Using exact sizes for initial modes\n");
+@@ -2404,9 +2462,11 @@ xf86InitialConfiguration(ScrnInfoPtr scrn, Bool canGrow)
+                        "Output %s enabled but has no modes\n",
+                        config->output[o]->name);
+         else
+-            xf86DrvMsg(scrn->scrnIndex, X_INFO,
+-                       "Output %s using initial mode %s\n",
+-                       config->output[o]->name, modes[o]->name);
++            xf86DrvMsg (scrn->scrnIndex, X_INFO,
++                        "Output %s using initial mode %s +%d+%d\n",
++                        config->output[o]->name, modes[o]->name,
 +                        config->output[o]->initial_x,
 +                        config->output[o]->initial_y);
      }
  
      /*
 -- 
-1.7.0.1
+1.7.10.4