[PATCH 1/3] fixesproto: Add a query to get the screen layout.
Aaron Plattner
aplattner at nvidia.com
Tue Jul 28 21:53:23 PDT 2009
---
configure.ac | 2 +-
fixesproto.txt | 41 +++++++++++++++++++++++++++++++++++++----
xfixesproto.h | 27 +++++++++++++++++++++++++++
xfixeswire.h | 27 +++++++++++++++++++++++++--
4 files changed, 90 insertions(+), 7 deletions(-)
diff --git a/configure.ac b/configure.ac
index 0d422d4..1c9136e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -24,7 +24,7 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ([2.57])
-AC_INIT([FixesProto], [4.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([FixesProto], [5.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
diff --git a/fixesproto.txt b/fixesproto.txt
index ededc8a..57b4dbe 100644
--- a/fixesproto.txt
+++ b/fixesproto.txt
@@ -1,7 +1,7 @@
The XFIXES Extension
- Version 4.0
- Document Revision 1
- 2006-12-14
+ Version 5.0
+ Document Revision 2
+ 2009-07-27
Keith Packard
keithp at keithp.com
@@ -29,6 +29,8 @@ developers, in particular,
+ Deron Johnson for cursor visibility
+ + Valery Moya for X screen origin queries
+
3. Basic Premise
Requests in this extension may seem to wander all over the map of X server
@@ -553,7 +555,38 @@ ShowCursor
If the client has made no outstanding HideCursor requests
a BadMatch error is generated.
-
+************* XFIXES VERSION 5 OR BETTER ***********
+
+12. Screen Layout
+
+X configurator programs may want to know the relative positions of X screens in
+a multiple screen layout. This configuration is described in the ServerLayout
+section of xorg.conf and affects how the cursor moves from screen to screen when
+it hits screen edges. Configuration programs need to know this information so
+they can display it to users and build configuration files from the current
+screen layout.
+
+12.1 Types
+
+ POSTYPE { PosAbsolute, PosLeftOf, PosAbove, PosBelow, PosRelative }
+ LAYOUT [
+ x, y: CARD32 absolute screen origin position
+ positionType: POSTYPE relative position type
+ relScreen: CARD16 relative screen
+ ]
+
+12.2 Requests
+
+GetScreenLayout
+
+ ->
+ layout: LISTofLAYOUT
+
+ The GetScreenLayout reply contains one layout description structure for each
+ X screen.
+
+ Errors: none
+
99. Future compatibility
This extension is not expected to remain fixed. Future changes will
diff --git a/xfixesproto.h b/xfixesproto.h
index 545e325..074ee13 100644
--- a/xfixesproto.h
+++ b/xfixesproto.h
@@ -2,6 +2,7 @@
* $XFree86: xc/include/extensions/xfixesproto.h,v 1.1 2002/11/30 06:21:43 keithp Exp $
*
* Copyright © 2006 Sun Microsystems
+ * Copyright © 2009 NVIDIA Corporation
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -500,6 +501,32 @@ typedef struct {
#define sz_xXFixesShowCursorReq sizeof(xXFixesShowCursorReq)
+/*************** Version 5.0 ******************/
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 xfixesReqType;
+ CARD16 length B16;
+} xXFixesGetScreenLayoutReq;
+
+#define sz_xXFixesGetScreenLayoutReq sizeof(xXFixesGetScreenLayoutReq)
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BYTE pad1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+ CARD32 pad6 B32;
+ CARD32 pad7 B32;
+ xXFixesScreenLayoutRec screens[];
+} xXFixesGetScreenLayoutReply;
+
+#define sz_xXFixesGetScreenLayoutReply sizeof(xXFixesGetScreenLayoutReply)
+
#undef Region
#undef Picture
#undef Window
diff --git a/xfixeswire.h b/xfixeswire.h
index 6f20270..c8c0ca1 100644
--- a/xfixeswire.h
+++ b/xfixeswire.h
@@ -2,6 +2,7 @@
* $XFree86: xc/include/extensions/xfixeswire.h,v 1.1 2002/11/30 06:21:43 keithp Exp $
*
* Copyright © 2006 Sun Microsystems
+ * Copyright © 2009 NVIDIA Corporation
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -47,9 +48,11 @@
#define _XFIXESWIRE_H_
#define XFIXES_NAME "XFIXES"
-#define XFIXES_MAJOR 4
+#define XFIXES_MAJOR 5
#define XFIXES_MINOR 0
+#include <X11/Xmd.h>
+
/*************** Version 1 ******************/
#define X_XFixesQueryVersion 0
#define X_XFixesChangeSaveSet 1
@@ -85,8 +88,10 @@
/*************** Version 4 ******************/
#define X_XFixesHideCursor 29
#define X_XFixesShowCursor 30
+/*************** Version 5 ******************/
+#define X_XFixesGetScreenLayout 31
-#define XFixesNumberRequests (X_XFixesShowCursor+1)
+#define XFixesNumberRequests (X_XFixesGetScreenLayout+1)
/* Selection events share one event number */
#define XFixesSelectionNotify 0
@@ -124,4 +129,22 @@
#define WindowRegionBounding 0
#define WindowRegionClip 1
+/*************** Version 5 ******************/
+
+/* Screen position information options */
+
+#define XFixesPosAbsolute 0
+#define XFixesPosRightOf 1
+#define XFixesPosLeftOf 2
+#define XFixesPosAbove 3
+#define XFixesPosBelow 4
+#define XFixesPosRelative 5
+
+typedef struct {
+ CARD32 x B32;
+ CARD32 y B32;
+ CARD16 positionType B16;
+ CARD16 refScreen B16;
+} xXFixesScreenLayoutRec;
+
#endif /* _XFIXESWIRE_H_ */
--
1.6.0.4
More information about the xorg-devel
mailing list