27 #include <X11/XKBlib.h>
30 #include "../GHOST_Types.h"
34 #ifdef WITH_X11_XINPUT
35 # include <X11/extensions/XInput.h>
44 #if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
45 # define GHOST_X11_RES_NAME "Blender"
46 # define GHOST_X11_RES_CLASS "Blender"
53 #define GHOST_X11_ERROR_HANDLERS_OVERRIDE(var) \
55 XErrorHandler handler; \
56 XIOErrorHandler handler_io; \
58 XSetErrorHandler(GHOST_X11_ApplicationErrorHandler), \
59 XSetIOErrorHandler(GHOST_X11_ApplicationIOErrorHandler), \
62 #define GHOST_X11_ERROR_HANDLERS_RESTORE(var) \
64 (void)XSetErrorHandler(var.handler); \
65 (void)XSetIOErrorHandler(var.handler_io); \
146 const bool exclusive =
false,
147 const bool is_dialog =
false,
205 #if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
245 const char *help_label,
246 const char *continue_label,
277 #ifdef WITH_X11_XINPUT
278 typedef struct GHOST_TabletX11 {
289 int XtiltLevels, YtiltLevels;
292 std::vector<GHOST_TabletX11> &GetXTablets()
326 #ifdef WITH_X11_XINPUT
331 #ifdef WITH_X11_XINPUT
332 XExtensionVersion m_xinput_version;
339 XkbDescRec *m_xkb_descr;
341 #if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
345 #ifdef WITH_X11_XINPUT
347 std::vector<GHOST_TabletX11> m_xtablets;
351 std::vector<GHOST_WindowX11 *> m_dirty_windows;
357 char m_keyboard_vector[32];
367 unsigned int m_last_release_keycode;
368 Time m_last_release_time;
370 uint m_keycode_last_repeat_key;
377 #if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
381 #ifdef WITH_X11_XINPUT
382 void clearXInputDevices();
383 void refreshXInputDevices();
388 void processEvent(XEvent *xe);
390 Time lastEventTime(
Time default_time);
392 bool generateWindowExposeEvents();
int GHOST_X11_ApplicationIOErrorHandler(Display *display)
int GHOST_X11_ApplicationErrorHandler(Display *display, XErrorEvent *theEvent)
unsigned int GHOST_TUns32
unsigned long long GHOST_TUns64
GHOST_TDrawingContextType
unsigned char GHOST_TUns8
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble top
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave Voronoi Brick Texture Vector Combine Vertex Separate Vector White RGB Map Time
GHOST_TSuccess disposeContext(GHOST_IContext *context)
GHOST_TSuccess setCursorPosition(GHOST_TInt32 x, GHOST_TInt32 y)
void getClipboard_xcout(const XEvent *evt, Atom sel, Atom target, unsigned char **txt, unsigned long *len, unsigned int *context) const
GHOST_IContext * createOffscreenContext(GHOST_GLSettings glSettings)
void addDirtyWindow(GHOST_WindowX11 *bad_wind)
void getAllDisplayDimensions(GHOST_TUns32 &width, GHOST_TUns32 &height) const
Atom _NET_WM_STATE_MAXIMIZED_VERT
GHOST_IWindow * createWindow(const char *title, GHOST_TInt32 left, GHOST_TInt32 top, GHOST_TUns32 width, GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type, GHOST_GLSettings glSettings, const bool exclusive=false, const bool is_dialog=false, const GHOST_IWindow *parentWindow=0)
GHOST_TSuccess getButtons(GHOST_Buttons &buttons) const
GHOST_TSuccess getModifierKeys(GHOST_ModifierKeys &keys) const
Atom _NET_WM_STATE_FULLSCREEN
GHOST_TUns64 getMilliSeconds() const
bool processEvents(bool waitForEvent)
GHOST_TUns8 getNumDisplays() const
struct GHOST_SystemX11::@1233 m_atom
GHOST_TUns8 * getClipboard(bool selection) const
GHOST_TSuccess showMessageBox(const char *title, const char *message, const char *help_label, const char *continue_label, const char *link, GHOST_DialogOptions dialog_options) const
Atom _NET_WM_STATE_MAXIMIZED_HORZ
GHOST_TSuccess getCursorPosition(GHOST_TInt32 &x, GHOST_TInt32 &y) const
void getMainDisplayDimensions(GHOST_TUns32 &width, GHOST_TUns32 &height) const
void putClipboard(GHOST_TInt8 *buffer, bool selection) const
__kernel void ccl_constant KernelData ccl_global void ccl_global char ccl_global int ccl_global char ccl_global unsigned int ccl_global float * buffer
struct SELECTID_Context context