| Index: chrome/common/x11_util.h
|
| diff --git a/chrome/common/x11_util.h b/chrome/common/x11_util.h
|
| index 4800a69d759408d8f04f1c9c188a6cd98b1a51ee..aef133fc893d51afab5fee0080124cbe69511c1c 100644
|
| --- a/chrome/common/x11_util.h
|
| +++ b/chrome/common/x11_util.h
|
| @@ -11,48 +11,75 @@
|
| // we use a void* for Visual*). The Xlib headers are highly polluting so we try
|
| // hard to limit their spread into the rest of the code.
|
|
|
| +typedef struct _GdkDrawable GdkWindow;
|
| typedef struct _GtkWidget GtkWidget;
|
| typedef unsigned long XID;
|
| typedef struct _XDisplay Display;
|
|
|
| +namespace base {
|
| +class Thread;
|
| +}
|
| +
|
| namespace gfx {
|
| class Size;
|
| }
|
|
|
| namespace x11_util {
|
| - // These functions cache their results and must be called from the UI thread.
|
| - // Currently they don't support multiple screens/displays.
|
| -
|
| - // Return an X11 connection for the current, primary display.
|
| - Display* GetXDisplay();
|
| - // Return true iff the connection supports X shared memory
|
| - bool QuerySharedMemorySupport(Display* dpy);
|
| - // Return true iff the display supports Xrender
|
| - bool QueryRenderSupport(Display* dpy);
|
| -
|
| - // These functions do not cache their results
|
| -
|
| - // Get the X window id for the default root window
|
| - XID GetX11RootWindow();
|
| - // Get the X window id for the given GTK widget.
|
| - XID GetX11WindowFromGtkWidget(GtkWidget*);
|
| - // Get a Visual from the given widget. Since we don't include the Xlib
|
| - // headers, this is returned as a void*.
|
| - void* GetVisualFromGtkWidget(GtkWidget*);
|
| - // Return the number of bits-per-pixel for a pixmap of the given depth
|
| - int BitsPerPixelForPixmapDepth(Display*, int depth);
|
| -
|
| - // Return a handle to a server side pixmap. |shared_memory_key| is a SysV
|
| - // IPC key. The shared memory region must contain 32-bit pixels.
|
| - XID AttachSharedMemory(Display* display, int shared_memory_support);
|
| - void DetachSharedMemory(Display* display, XID shmseg);
|
| -
|
| - // Return a handle to an XRender picture where |pixmap| is a handle to a
|
| - // pixmap containing Skia ARGB data.
|
| - XID CreatePictureFromSkiaPixmap(Display* display, XID pixmap);
|
| -
|
| - void FreePicture(Display* display, XID picture);
|
| - void FreePixmap(Display* display, XID pixmap);
|
| -};
|
| +
|
| +// These functions use the GDK default display and this /must/ be called from
|
| +// the UI thread. Thus, they don't support multiple displays.
|
| +
|
| +// These functions cache their results.
|
| +
|
| +// Return an X11 connection for the current, primary display.
|
| +Display* GetXDisplay();
|
| +// Return true iff the connection supports X shared memory
|
| +bool QuerySharedMemorySupport(Display* dpy);
|
| +// Return true iff the display supports Xrender
|
| +bool QueryRenderSupport(Display* dpy);
|
| +// Return the default screen number for the display
|
| +int GetDefaultScreen(Display* display);
|
| +
|
| +// These functions do not cache their results
|
| +
|
| +// Get the X window id for the default root window
|
| +XID GetX11RootWindow();
|
| +// Get the X window id for the given GTK widget.
|
| +XID GetX11WindowFromGtkWidget(GtkWidget*);
|
| +XID GetX11WindowFromGdkWindow(GdkWindow*);
|
| +// Get a Visual from the given widget. Since we don't include the Xlib
|
| +// headers, this is returned as a void*.
|
| +void* GetVisualFromGtkWidget(GtkWidget*);
|
| +// Return the number of bits-per-pixel for a pixmap of the given depth
|
| +int BitsPerPixelForPixmapDepth(Display*, int depth);
|
| +
|
| +// Return a handle to a server side pixmap. |shared_memory_key| is a SysV
|
| +// IPC key. The shared memory region must contain 32-bit pixels.
|
| +XID AttachSharedMemory(Display* display, int shared_memory_support);
|
| +void DetachSharedMemory(Display* display, XID shmseg);
|
| +
|
| +// Return a handle to an XRender picture where |pixmap| is a handle to a
|
| +// pixmap containing Skia ARGB data.
|
| +XID CreatePictureFromSkiaPixmap(Display* display, XID pixmap);
|
| +
|
| +void FreePicture(Display* display, XID picture);
|
| +void FreePixmap(Display* display, XID pixmap);
|
| +
|
| +// These functions are for performing X opertions outside of the UI thread.
|
| +
|
| +// Return the Display for the secondary X connection. We keep a second
|
| +// connection around for making X requests outside of the UI thread.
|
| +// This function may only be called from the BACKGROUND_X11 thread.
|
| +Display* GetSecondaryDisplay();
|
| +
|
| +// Since one cannot include both WebKit header and Xlib headers in the same
|
| +// file (due to collisions), we wrap all the Xlib functions that we need here.
|
| +// These functions must be called on the BACKGROUND_X11 thread since they
|
| +// reference GetSecondaryDisplay().
|
| +
|
| +void GetWindowGeometry(int* x, int* y, unsigned* width, unsigned* height,
|
| + XID window);
|
| +
|
| +} // namespace x11_util
|
|
|
| #endif // CHROME_COMMON_X11_UTIL_H_
|
|
|