aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-11-15 09:01:06 +0100
committermarha <marha@users.sourceforge.net>2013-11-15 09:01:06 +0100
commitaa095d69b3874eb179cb77f033109a7f8f351041 (patch)
treef13f7495afe598aa3549ce1a02fe52c56962184b
parent4c9f1ba041644329543e4ca21c0d95cf872f988e (diff)
downloadvcxsrv-aa095d69b3874eb179cb77f033109a7f8f351041.tar.gz
vcxsrv-aa095d69b3874eb179cb77f033109a7f8f351041.tar.bz2
vcxsrv-aa095d69b3874eb179cb77f033109a7f8f351041.zip
xcb-proto mesa xserver git update 15 nov 2013
xserver commit 29240e5cbf6e7f875b128fc7bfc4d56b2350835a libxcb commit e8663a935890ff366f49e356211049dfd0d9756a libxcb/xcb-proto commit 7c85d67b1b2edc421d889f9c5c3873e163363e7a xkeyboard-config commit 70bbf18d6cddb7271db1b2e042765ace3c4ac485 libX11 commit 6cb02b166361200da35ba14f52cd9aaa493eb0ea libXdmcp commit 089081dca4ba3598c6f9bf401c029378943b5854 libXext commit 7378d4bdbd33ed49ed6cfa5c4f73d7527982aab4 libfontenc commit 3acba630d8b57084f7e92c15732408711ed5137a libXinerama commit 6e1d1dc328ba8162bba2f4694e7f3c706a1491ff libXau commit 304a11be4727c5a7feeb2501e8e001466f8ce84e xkbcomp commit e3e6e938535532bfad175c1635256ab7fb3ac943 pixman commit 8487dfbcd056eff066939dc253fcf361b391592a xextproto commit 3f355f138d6df57e067458a20f47307883048adb randrproto commit e7526e6b5fe0966929cda10b2ded0258413744db glproto commit aacc7a51b6161c765b04524e0d2ab31e5e586834 mkfontscale commit f48de13423c7300f4da9f61993b624426b38ddc0 xwininfo commit ba0d1b0da21d2dbdd81098ed5778f3792b472e13 libXft commit c5e760a239afc62a1c75e0509868e35957c8df52 libXmu commit 2539e539eafdac88177c8ee30b043c5d52f017e4 libxtrans commit 0153d1670e4a1883e1bb6dd971435d6268eac5ba fontconfig commit 38acb08d9778ebad2bfc3407532adf8f2e8e667e mesa commit 78fc159d68becdf4c04d35e3d21917ae45b839ba
-rw-r--r--libxcb/xcb-proto/HACKING20
-rw-r--r--libxcb/xcb-proto/src/.gitattributes1
-rw-r--r--libxcb/xcb-proto/src/xinput.xml34
-rw-r--r--libxcb/xcb-proto/src/xkb.xml24
-rw-r--r--libxcb/xcb-proto/src/xv.xml8
-rw-r--r--libxcb/xcb-proto/xcbgen/xtypes.py2
-rw-r--r--mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.cpp60
-rw-r--r--mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.h3
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyr.c9
-rw-r--r--xorg-server/hw/kdrive/ephyr/hostx.c4
-rw-r--r--xorg-server/hw/kdrive/src/kdrive.c3
-rw-r--r--xorg-server/hw/kdrive/src/kdrive.h1
-rw-r--r--xorg-server/hw/kdrive/src/kinput.c10
-rw-r--r--xorg-server/hw/xfree86/modes/xf86Crtc.c3
-rw-r--r--xorg-server/include/input.h12
-rw-r--r--xorg-server/mi/mieq.c2
-rw-r--r--xorg-server/test/Makefile.am4
17 files changed, 136 insertions, 64 deletions
diff --git a/libxcb/xcb-proto/HACKING b/libxcb/xcb-proto/HACKING
new file mode 100644
index 000000000..e954a766a
--- /dev/null
+++ b/libxcb/xcb-proto/HACKING
@@ -0,0 +1,20 @@
+Make patches more descriptive
+=============================
+
+By default hunk headers of a patch will look like this:
+
+ @@ -1227,6 +1227,8 @@ authorization from the authors.
+
+Which is not very usefull as it doesn't give a hint where the change
+happened (except for the line number). To make those hunk headers more
+descriptive, i.e.:
+
+ @@ -1227,6 +1227,8 @@ <struct name="HierarchyChange">
+
+Add these 2 lines to your .git/config file:
+
+ [diff "xcb"]
+ xfuncname = "(<\\b(xcb|enum|event|request|struct|union)\\b.*>)"
+
+For more background on this magic have a look at src/.gitattributes and
+the man page gitattributes(5) chapter "Defining a custom hunk-header".
diff --git a/libxcb/xcb-proto/src/.gitattributes b/libxcb/xcb-proto/src/.gitattributes
new file mode 100644
index 000000000..8d345b069
--- /dev/null
+++ b/libxcb/xcb-proto/src/.gitattributes
@@ -0,0 +1 @@
+*.xml diff=xcb
diff --git a/libxcb/xcb-proto/src/xinput.xml b/libxcb/xcb-proto/src/xinput.xml
index e62b7cb74..dd3f18438 100644
--- a/libxcb/xcb-proto/src/xinput.xml
+++ b/libxcb/xcb-proto/src/xinput.xml
@@ -1257,10 +1257,42 @@ authorization from the authors.
<!-- XISelectEvents -->
+ <enum name="XIEventMask">
+ <item name="DeviceChanged"> <bit>1</bit> </item>
+ <item name="KeyPress"> <bit>2</bit> </item>
+ <item name="KeyRelease"> <bit>3</bit> </item>
+ <item name="ButtonPress"> <bit>4</bit> </item>
+ <item name="ButtonRelease"> <bit>5</bit> </item>
+ <item name="Motion"> <bit>6</bit> </item>
+ <item name="Enter"> <bit>7</bit> </item>
+ <item name="Leave"> <bit>8</bit> </item>
+ <item name="FocusIn"> <bit>9</bit> </item>
+ <item name="FocusOut"> <bit>10</bit> </item>
+ <item name="Hierarchy"> <bit>11</bit> </item>
+ <item name="Property"> <bit>12</bit> </item>
+ <!-- ⋅⋅⋅ Events (v2.1) ⋅⋅⋅ -->
+ <item name="RawKeyPress"> <bit>13</bit> </item>
+ <item name="RawKeyRelease"> <bit>14</bit> </item>
+ <item name="RawButtonPress"> <bit>15</bit> </item>
+ <item name="RawButtonRelease"> <bit>16</bit> </item>
+ <item name="RawMotion"> <bit>17</bit> </item>
+ <!-- ⋅⋅⋅ Events (v2.2) ⋅⋅⋅ -->
+ <item name="TouchBegin"> <bit>18</bit> </item>
+ <item name="TouchUpdate"> <bit>19</bit> </item>
+ <item name="TouchEnd"> <bit>20</bit> </item>
+ <item name="TouchOwnership"> <bit>21</bit> </item>
+ <item name="RawTouchBegin"> <bit>22</bit> </item>
+ <item name="RawTouchUpdate"> <bit>23</bit> </item>
+ <item name="RawTouchEnd"> <bit>24</bit> </item>
+ <!-- ⋅⋅⋅ Events (v2.3) ⋅⋅⋅ -->
+ <item name="BarrierHit"> <bit>25</bit> </item>
+ <item name="BarrierLeave"> <bit>26</bit> </item>
+ </enum>
+
<struct name="EventMask">
<field type="DeviceId" name="deviceid" altenum="Device" />
<field type="CARD16" name="mask_len" />
- <list type="CARD32" name="mask"> <!-- set of EventMaskBit -->
+ <list type="CARD32" name="mask" mask="XIEventMask">
<fieldref>mask_len</fieldref>
</list>
</struct>
diff --git a/libxcb/xcb-proto/src/xkb.xml b/libxcb/xcb-proto/src/xkb.xml
index 2ea659c29..1df0771e1 100644
--- a/libxcb/xcb-proto/src/xkb.xml
+++ b/libxcb/xcb-proto/src/xkb.xml
@@ -547,6 +547,7 @@ authorization from the authors.
<typedef oldname="char" newname="STRING8" />
+ <!-- XXX: Property is broken
<struct name="Property">
<field name="nameLength" type="CARD16" />
<list name="name" type="STRING8">
@@ -557,6 +558,15 @@ authorization from the authors.
<fieldref>valueLength</fieldref>
</list>
</struct>
+ -->
+ <!-- XXX: This would be the correct Property structure as per spec.,
+ but it's broken atm. too. Add it anyway here, so we don't
+ loose that information.
+ <struct name="Property">
+ <field name="name" type="CountedString16" />
+ <field name="value" type="CountedString16" />
+ </struct>
+ -->
<struct name="Outline">
<field name="nPoints" type="CARD8" />
@@ -633,6 +643,7 @@ authorization from the authors.
<item name="Logo"> <value>5</value> </item>
</enum>
+ <!-- XXX: doodads are broken
<struct name="CommonDoodad">
<field name="name" type="ATOM" />
<field name="type" type="CARD8" enum="DoodadType" />
@@ -726,6 +737,7 @@ authorization from the authors.
<fieldref>nOverlays</fieldref>
</list>
</struct>
+ -->
<struct name="Listing">
<field name="flags" type="CARD16" />
@@ -1869,6 +1881,7 @@ authorization from the authors.
</switch>
</request>
+ <!-- XXX: Property and doodads are broken, which renders GetGeometry useless
<request name="GetGeometry" opcode="19">
<field name="deviceSpec" type="DeviceSpec" />
<pad bytes="2" />
@@ -1909,7 +1922,9 @@ authorization from the authors.
</list>
</reply>
</request>
+ -->
+ <!-- XXX: Property and doodads are broken, which renders SetGeometry useless
<request name="SetGeometry" opcode="20">
<field name="deviceSpec" type="DeviceSpec" />
<field name="nShapes" type="CARD8" />
@@ -1944,6 +1959,7 @@ authorization from the authors.
<fieldref>nKeyAliases</fieldref>
</list>
</request>
+ -->
<request name="PerClientFlags" opcode="21">
<field name="deviceSpec" type="DeviceSpec" />
@@ -1966,6 +1982,7 @@ authorization from the authors.
<request name="ListComponents" opcode="22">
<field name="deviceSpec" type="DeviceSpec" />
<field name="maxNames" type="CARD16" />
+ <!-- XXX: Intermixed fixed size fields and lists are broken
<field name="keymapsSpecLen" type="CARD8" />
<list name="keymapsSpec" type="STRING8">
<fieldref>keymapsSpecLen</fieldref>
@@ -1990,6 +2007,7 @@ authorization from the authors.
<list name="geometrySpec" type="STRING8">
<fieldref>geometrySpecLen</fieldref>
</list>
+ -->
<reply>
<field name="deviceID" type="CARD8" />
<field name="nKeymaps" type="CARD16" />
@@ -2027,6 +2045,7 @@ authorization from the authors.
<field name="want" type="CARD16" mask="GBNDetail" />
<field name="load" type="BOOL" />
<pad bytes="1" />
+ <!-- XXX: Intermixed fixed size fields and lists are broken
<field name="keymapsSpecLen" type="CARD8" />
<list name="keymapsSpec" type="STRING8">
<fieldref>keymapsSpecLen</fieldref>
@@ -2051,6 +2070,7 @@ authorization from the authors.
<list name="geometrySpec" type="STRING8">
<fieldref>geometrySpecLen</fieldref>
</list>
+ -->
<reply>
<field name="deviceID" type="CARD8" />
<field name="minKeyCode" type="KEYCODE" />
@@ -2324,6 +2344,7 @@ authorization from the authors.
<field name="baseColorNdx" type="CARD8" />
<field name="labelColorNdx" type="CARD8" />
<field name="labelFont" type="CountedString16" />
+ <!-- XXX: Property is broken
<list name="properties" type="Property">
<fieldref>nProperties</fieldref>
</list>
@@ -2333,6 +2354,8 @@ authorization from the authors.
<list name="shapes" type="Shape">
<fieldref>nShapes</fieldref>
</list>
+ -->
+ <!-- XXX: doodads are broken
<list name="sections" type="Section">
<fieldref>nSections</fieldref>
</list>
@@ -2342,6 +2365,7 @@ authorization from the authors.
<list name="keyAliases" type="KeyAlias">
<fieldref>nKeyAliases</fieldref>
</list>
+ -->
</bitcase>
</switch>
</reply>
diff --git a/libxcb/xcb-proto/src/xv.xml b/libxcb/xcb-proto/src/xv.xml
index a05767c53..0b55d3633 100644
--- a/libxcb/xcb-proto/src/xv.xml
+++ b/libxcb/xcb-proto/src/xv.xml
@@ -112,10 +112,6 @@ authorization from the authors.
<field type="CARD16" name="name_size" />
<field type="CARD16" name="width" />
<field type="CARD16" name="height" />
- <!--
- Some versions of Xvproto.h incorrectly have
- this padding after "rate".
- -->
<pad bytes="2" />
<field type="Rational" name="rate" />
<list type="char" name="name">
@@ -234,10 +230,6 @@ authorization from the authors.
<reply>
<pad bytes="1" />
<field type="CARD16" name="num_encodings" />
- <!--
- In Xvproto.h this padding is 24 bytes
- in actuality it is 22 bytes
- -->
<pad bytes="22" />
<list type="EncodingInfo" name="info">
<fieldref>num_encodings</fieldref>
diff --git a/libxcb/xcb-proto/xcbgen/xtypes.py b/libxcb/xcb-proto/xcbgen/xtypes.py
index 951731afc..5f45723ce 100644
--- a/libxcb/xcb-proto/xcbgen/xtypes.py
+++ b/libxcb/xcb-proto/xcbgen/xtypes.py
@@ -76,7 +76,7 @@ class Type(object):
complex_type.fields.append(new_field)
def make_fd_of(self, module, complex_type, fd_name):
- '''
+ '''
Method for making a fd member of a structure.
'''
new_fd = Field(self, module.get_type_name('INT32'), fd_name, True, False, False, None, True)
diff --git a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.cpp b/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.cpp
index 52e8e5ede..df697e4a3 100644
--- a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.cpp
+++ b/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.cpp
@@ -72,7 +72,6 @@ MesaSoftwareRast::MesaSoftwareRast(BGLView* view, ulong options,
fDirectModeEnabled(false),
fInfo(NULL),
fInfoLocker("info locker"),
- fContext(NULL),
fVisual(NULL),
fFrameBuffer(NULL),
fFrontRenderBuffer(NULL),
@@ -114,34 +113,27 @@ MesaSoftwareRast::MesaSoftwareRast(BGLView* view, ulong options,
functions.Flush = _Flush;
// create core context
- fContext = _mesa_create_context(API_OPENGL_COMPAT, fVisual, NULL,
+ // We inherit gl_context to this class
+ _mesa_initialize_context(this, API_OPENGL_COMPAT, fVisual, NULL,
&functions);
- if (!fContext) {
- ERROR("%s: Failed to create Mesa context!\n", __func__);
- _mesa_destroy_visual(fVisual);
- return;
- }
-
- fContext->DriverCtx = (void*)this;
-
/* Initialize the software rasterizer and helper modules. */
- _swrast_CreateContext(fContext);
- _vbo_CreateContext(fContext);
- _tnl_CreateContext(fContext);
- _swsetup_CreateContext(fContext);
- _swsetup_Wakeup(fContext);
+ _swrast_CreateContext(this);
+ _vbo_CreateContext(this);
+ _tnl_CreateContext(this);
+ _swsetup_CreateContext(this);
+ _swsetup_Wakeup(this);
// Use default TCL pipeline
- TNL_CONTEXT(fContext)->Driver.RunPipeline = _tnl_run_pipeline;
+ TNL_CONTEXT(this)->Driver.RunPipeline = _tnl_run_pipeline;
- _mesa_meta_init(fContext);
- _mesa_enable_sw_extensions(fContext);
+ _mesa_meta_init(this);
+ _mesa_enable_sw_extensions(this);
- _mesa_compute_version(fContext);
+ _mesa_compute_version(this);
- _mesa_initialize_dispatch_tables(fContext);
- _mesa_initialize_vbo_vtxfmt(fContext);
+ _mesa_initialize_dispatch_tables(this);
+ _mesa_initialize_vbo_vtxfmt(this);
// create core framebuffer
fFrameBuffer = _mesa_create_framebuffer(fVisual);
@@ -199,13 +191,13 @@ MesaSoftwareRast::MesaSoftwareRast(BGLView* view, ulong options,
MesaSoftwareRast::~MesaSoftwareRast()
{
CALLED();
- _swsetup_DestroyContext(fContext);
- _swrast_DestroyContext(fContext);
- _tnl_DestroyContext(fContext);
- _vbo_DestroyContext(fContext);
+ _swsetup_DestroyContext(this);
+ _swrast_DestroyContext(this);
+ _tnl_DestroyContext(this);
+ _vbo_DestroyContext(this);
_mesa_destroy_visual(fVisual);
_mesa_destroy_framebuffer(fFrameBuffer);
- _mesa_destroy_context(fContext);
+ _mesa_destroy_context(this);
free(fInfo);
free(fFrameBuffer);
@@ -220,7 +212,7 @@ MesaSoftwareRast::LockGL()
CALLED();
BGLRenderer::LockGL();
- _mesa_make_current(fContext, fFrameBuffer, fFrameBuffer);
+ _mesa_make_current(this, fFrameBuffer, fFrameBuffer);
color_space colorSpace = BScreen(GLView()->Window()).ColorSpace();
@@ -250,7 +242,7 @@ void
MesaSoftwareRast::UnlockGL()
{
CALLED();
- _mesa_make_current(fContext, NULL, NULL);
+ _mesa_make_current(this, NULL, NULL);
BGLRenderer::UnlockGL();
}
@@ -264,7 +256,7 @@ MesaSoftwareRast::SwapBuffers(bool VSync)
return;
if (fVisual->doubleBufferMode)
- _mesa_notifySwapBuffers(fContext);
+ _mesa_notifySwapBuffers(this);
if (!fDirectModeEnabled || fInfo == NULL) {
if (GLView()->LockLooperWithTimeout(1000) == B_OK) {
@@ -416,7 +408,7 @@ MesaSoftwareRast::_CheckResize(GLuint newWidth, GLuint newHeight)
return;
}
- _mesa_resize_framebuffer(fContext, fFrameBuffer, newWidth, newHeight);
+ _mesa_resize_framebuffer(this, fFrameBuffer, newWidth, newHeight);
fHeight = newHeight;
fWidth = newWidth;
@@ -546,17 +538,15 @@ void
MesaSoftwareRast::_Flush(gl_context* ctx)
{
CALLED();
- // TODO: We may want to add the void* DriverCtx back into mtypes.h for
- // gl_context someday...
- #if 0
- MesaSoftwareRast* driverContext = (MesaSoftwareRast*)ctx->DriverCtx;
+ MesaSoftwareRast* driverContext = static_cast<MesaSoftwareRast*>(ctx);
+
+ //MesaSoftwareRast* driverContext = (MesaSoftwareRast*)ctx->DriverCtx;
if ((driverContext->fOptions & BGL_DOUBLE) == 0) {
// TODO: SwapBuffers() can call _CopyToDirect(), which should
// be always called with with the BGLView drawlocked.
// This is not always the case if called from here.
driverContext->SwapBuffers();
}
- #endif
}
diff --git a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.h b/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.h
index 8ef84938d..8f0f01848 100644
--- a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.h
+++ b/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.h
@@ -24,7 +24,7 @@ extern "C" {
}
-class MesaSoftwareRast : public BGLRenderer {
+class MesaSoftwareRast : public BGLRenderer, public gl_context {
public:
MesaSoftwareRast(BGLView* view,
ulong bgl_options,
@@ -79,7 +79,6 @@ private:
BLocker fInfoLocker;
ulong fOptions;
- gl_context* fContext;
gl_config* fVisual;
struct gl_framebuffer* fFrameBuffer;
diff --git a/xorg-server/hw/kdrive/ephyr/ephyr.c b/xorg-server/hw/kdrive/ephyr/ephyr.c
index 91e949d79..ef4b3210c 100644
--- a/xorg-server/hw/kdrive/ephyr/ephyr.c
+++ b/xorg-server/hw/kdrive/ephyr/ephyr.c
@@ -959,7 +959,14 @@ ephyrProcessMouseMotion(xcb_generic_event_t *xev)
}
EPHYR_LOG("final (x,y):(%d,%d)\n", x, y);
#endif
- KdEnqueuePointerEvent(ephyrMouse, mouseState, x, y, 0);
+
+ /* convert coords into desktop-wide coordinates.
+ * fill_pointer_events will convert that back to
+ * per-screen coordinates where needed */
+ x += screen->pScreen->x;
+ y += screen->pScreen->y;
+
+ KdEnqueuePointerEvent(ephyrMouse, mouseState | KD_POINTER_DESKTOP, x, y, 0);
}
}
diff --git a/xorg-server/hw/kdrive/ephyr/hostx.c b/xorg-server/hw/kdrive/ephyr/hostx.c
index ee9ae455c..3e01a4770 100644
--- a/xorg-server/hw/kdrive/ephyr/hostx.c
+++ b/xorg-server/hw/kdrive/ephyr/hostx.c
@@ -304,8 +304,8 @@ hostx_init(void)
| XCB_EVENT_MASK_STRUCTURE_NOTIFY;
EPHYR_DBG("mark");
-
- if ((HostX.conn = xcb_connect(NULL, &HostX.screen)) == NULL) {
+ HostX.conn = xcb_connect(NULL, &HostX.screen);
+ if (xcb_connection_has_error(HostX.conn)) {
fprintf(stderr, "\nXephyr cannot open host display. Is DISPLAY set?\n");
exit(1);
}
diff --git a/xorg-server/hw/kdrive/src/kdrive.c b/xorg-server/hw/kdrive/src/kdrive.c
index f8949bec3..382968420 100644
--- a/xorg-server/hw/kdrive/src/kdrive.c
+++ b/xorg-server/hw/kdrive/src/kdrive.c
@@ -328,7 +328,8 @@ KdParseScreen(KdScreenInfo * screen, const char *arg)
screen->height = pixels;
screen->height_mm = mm;
}
- if (delim != 'x' && delim != '@' && delim != 'X' && delim != 'Y')
+ if (delim != 'x' && delim != '@' && delim != 'X' && delim != 'Y' &&
+ (delim != '\0' || i == 0))
return;
}
diff --git a/xorg-server/hw/kdrive/src/kdrive.h b/xorg-server/hw/kdrive/src/kdrive.h
index d5d0799df..296d611ed 100644
--- a/xorg-server/hw/kdrive/src/kdrive.h
+++ b/xorg-server/hw/kdrive/src/kdrive.h
@@ -506,6 +506,7 @@ KdEnqueueKeyboardEvent(KdKeyboardInfo * ki, unsigned char scan_code,
#define KD_BUTTON_4 0x08
#define KD_BUTTON_5 0x10
#define KD_BUTTON_8 0x80
+#define KD_POINTER_DESKTOP 0x40000000
#define KD_MOUSE_DELTA 0x80000000
void
diff --git a/xorg-server/hw/kdrive/src/kinput.c b/xorg-server/hw/kdrive/src/kinput.c
index d845830cc..a9a9fa583 100644
--- a/xorg-server/hw/kdrive/src/kinput.c
+++ b/xorg-server/hw/kdrive/src/kinput.c
@@ -1895,6 +1895,8 @@ KdEnqueuePointerEvent(KdPointerInfo * pi, unsigned long flags, int rx, int ry,
}
else {
dixflags = POINTER_ABSOLUTE;
+ if (flags & KD_POINTER_DESKTOP)
+ dixflags |= POINTER_DESKTOP;
if (x != pi->dixdev->last.valuators[0] ||
y != pi->dixdev->last.valuators[1])
_KdEnqueuePointerEvent(pi, MotionNotify, x, y, z, 0, dixflags,
@@ -2028,25 +2030,25 @@ KdCursorOffScreen(ScreenPtr *ppScreen, int *x, int *y)
dx = KdScreenOrigin(pNewScreen)->x - KdScreenOrigin(pScreen)->x;
dy = KdScreenOrigin(pNewScreen)->y - KdScreenOrigin(pScreen)->y;
if (*x < 0) {
- if (dx <= 0 && -dx < best_x) {
+ if (dx < 0 && -dx < best_x) {
best_x = -dx;
n_best_x = n;
}
}
else if (*x >= pScreen->width) {
- if (dx >= 0 && dx < best_x) {
+ if (dx > 0 && dx < best_x) {
best_x = dx;
n_best_x = n;
}
}
if (*y < 0) {
- if (dy <= 0 && -dy < best_y) {
+ if (dy < 0 && -dy < best_y) {
best_y = -dy;
n_best_y = n;
}
}
else if (*y >= pScreen->height) {
- if (dy >= 0 && dy < best_y) {
+ if (dy > 0 && dy < best_y) {
best_y = dy;
n_best_y = n;
}
diff --git a/xorg-server/hw/xfree86/modes/xf86Crtc.c b/xorg-server/hw/xfree86/modes/xf86Crtc.c
index 2a02c8507..a441fd16a 100644
--- a/xorg-server/hw/xfree86/modes/xf86Crtc.c
+++ b/xorg-server/hw/xfree86/modes/xf86Crtc.c
@@ -1863,6 +1863,9 @@ SetCompatOutput(xf86CrtcConfigPtr config)
DisplayModePtr maxmode = NULL, testmode, mode;
int o, compat = -1, count, mincount = 0;
+ if (config->num_output == 0)
+ return NULL;
+
/* Look for one that's definitely connected */
for (o = 0; o < config->num_output; o++) {
test = config->output[o];
diff --git a/xorg-server/include/input.h b/xorg-server/include/input.h
index 350dabad4..2d5e531ef 100644
--- a/xorg-server/include/input.h
+++ b/xorg-server/include/input.h
@@ -244,12 +244,12 @@ typedef struct _InputAttributes {
#define KEY_POSTED 2
#define BUTTON_POSTED 2
-extern void set_key_down(DeviceIntPtr pDev, int key_code, int type);
-extern void set_key_up(DeviceIntPtr pDev, int key_code, int type);
-extern int key_is_down(DeviceIntPtr pDev, int key_code, int type);
-extern void set_button_down(DeviceIntPtr pDev, int button, int type);
-extern void set_button_up(DeviceIntPtr pDev, int button, int type);
-extern int button_is_down(DeviceIntPtr pDev, int button, int type);
+extern _X_EXPORT void set_key_down(DeviceIntPtr pDev, int key_code, int type);
+extern _X_EXPORT void set_key_up(DeviceIntPtr pDev, int key_code, int type);
+extern _X_EXPORT int key_is_down(DeviceIntPtr pDev, int key_code, int type);
+extern _X_EXPORT void set_button_down(DeviceIntPtr pDev, int button, int type);
+extern _X_EXPORT void set_button_up(DeviceIntPtr pDev, int button, int type);
+extern _X_EXPORT int button_is_down(DeviceIntPtr pDev, int button, int type);
extern void InitCoreDevices(void);
extern void InitXTestDevices(void);
diff --git a/xorg-server/mi/mieq.c b/xorg-server/mi/mieq.c
index d7d73deb6..4c0748054 100644
--- a/xorg-server/mi/mieq.c
+++ b/xorg-server/mi/mieq.c
@@ -60,7 +60,7 @@ in this Software without prior written authorization from The Open Group.
#endif
/* Maximum size should be initial size multiplied by a power of 2 */
-#define QUEUE_INITIAL_SIZE 256
+#define QUEUE_INITIAL_SIZE 512
#define QUEUE_RESERVED_SIZE 64
#define QUEUE_MAXIMUM_SIZE 4096
#define QUEUE_DROP_BACKTRACE_FREQUENCY 100
diff --git a/xorg-server/test/Makefile.am b/xorg-server/test/Makefile.am
index e59c412ee..2852bb3e0 100644
--- a/xorg-server/test/Makefile.am
+++ b/xorg-server/test/Makefile.am
@@ -1,11 +1,11 @@
if ENABLE_UNIT_TESTS
SUBDIRS= .
-noinst_PROGRAMS = list string touch
+noinst_PROGRAMS = list string
if XORG
# Tests that require at least some DDX functions in order to fully link
# For now, requires xf86 ddx, could be adjusted to use another
SUBDIRS += xi2
-noinst_PROGRAMS += xkb input xtest misc fixes xfree86 hashtabletest os signal-logging
+noinst_PROGRAMS += xkb input xtest misc fixes xfree86 hashtabletest os signal-logging touch
endif
check_LTLIBRARIES = libxservertest.la