Blender V4.3
GHOST_SystemX11.cc File Reference
#include <X11/XKBlib.h>
#include <X11/Xatom.h>
#include <X11/Xutil.h>
#include <X11/keysym.h>
#include "GHOST_DisplayManagerX11.hh"
#include "GHOST_EventButton.hh"
#include "GHOST_EventCursor.hh"
#include "GHOST_EventDragnDrop.hh"
#include "GHOST_EventKey.hh"
#include "GHOST_EventWheel.hh"
#include "GHOST_SystemX11.hh"
#include "GHOST_TimerManager.hh"
#include "GHOST_WindowManager.hh"
#include "GHOST_WindowX11.hh"
#include "GHOST_utildefines.hh"
#include "GHOST_Debug.hh"
#include <sys/time.h>
#include <unistd.h>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <vector>

Go to the source code of this file.

Classes

struct  init_timestamp_data
 
class  DialogData
 

Macros

#define USE_UNITY_WORKAROUND
 
#define USE_NON_LATIN_KB_WORKAROUND
 
#define GHOST_INTERN_ATOM_IF_EXISTS(atom)
 
#define GHOST_INTERN_ATOM(atom)
 
#define GXMAP(k, x, y)
 
#define MAKE_ID(a, b, c, d)   (int(d) << 24 | int(c) << 16 | (b) << 8 | (a))
 
#define XCLIB_XCOUT_NONE   0 /* no context */
 
#define XCLIB_XCOUT_SENTCONVSEL   1 /* sent a request */
 
#define XCLIB_XCOUT_INCR   2 /* in an incr loop */
 
#define XCLIB_XCOUT_FALLBACK   3 /* STRING failed, need fallback to UTF8 */
 
#define XCLIB_XCOUT_FALLBACK_UTF8   4 /* UTF8 failed, move to compound. */
 
#define XCLIB_XCOUT_FALLBACK_COMP   5 /* compound failed, move to text. */
 
#define XCLIB_XCOUT_FALLBACK_TEXT   6
 

Functions

static uchar bit_is_on (const uchar *ptr, int bit)
 
static GHOST_TKey ghost_key_from_keysym (const KeySym key)
 
static GHOST_TKey ghost_key_from_keycode (const XkbDescPtr xkb_descr, const KeyCode keycode)
 
static GHOST_TKey ghost_key_from_keysym_or_keycode (const KeySym key_sym, const XkbDescPtr xkb_descr, const KeyCode keycode)
 
static void SleepTillEvent (Display *display, int64_t maxSleep)
 
static Bool init_timestamp_scanner (Display *, XEvent *event, XPointer arg)
 
static GHOST_TSuccess getCursorPosition_impl (Display *display, int32_t &x, int32_t &y, Window *child_return)
 
int GHOST_X11_ApplicationErrorHandler (Display *display, XErrorEvent *event)
 
int GHOST_X11_ApplicationIOErrorHandler (Display *)
 
Message Box
static void split (const char *text, const char *seps, char ***str, int *count)
 

Variables

static char * txt_cut_buffer = nullptr
 
static char * txt_select_buffer = nullptr
 

Macro Definition Documentation

◆ GHOST_INTERN_ATOM

#define GHOST_INTERN_ATOM ( atom)
Value:
{ \
m_atom.atom = XInternAtom(m_display, #atom, False); \
} \
(void)0

Referenced by GHOST_SystemX11::GHOST_SystemX11().

◆ GHOST_INTERN_ATOM_IF_EXISTS

#define GHOST_INTERN_ATOM_IF_EXISTS ( atom)
Value:
{ \
m_atom.atom = XInternAtom(m_display, #atom, True); \
} \
(void)0

Referenced by GHOST_SystemX11::GHOST_SystemX11().

◆ GXMAP

#define GXMAP ( k,
x,
y )
Value:

Definition at line 1868 of file GHOST_SystemX11.cc.

Referenced by ghost_key_from_keysym().

◆ MAKE_ID

#define MAKE_ID ( a,
b,
c,
d )   (int(d) << 24 | int(c) << 16 | (b) << 8 | (a))

Definition at line 1996 of file GHOST_SystemX11.cc.

Referenced by ghost_key_from_keycode().

◆ USE_NON_LATIN_KB_WORKAROUND

#define USE_NON_LATIN_KB_WORKAROUND

Definition at line 83 of file GHOST_SystemX11.cc.

◆ USE_UNITY_WORKAROUND

#define USE_UNITY_WORKAROUND

Definition at line 79 of file GHOST_SystemX11.cc.

◆ XCLIB_XCOUT_FALLBACK

#define XCLIB_XCOUT_FALLBACK   3 /* STRING failed, need fallback to UTF8 */

Definition at line 2029 of file GHOST_SystemX11.cc.

Referenced by GHOST_SystemX11::getClipboard().

◆ XCLIB_XCOUT_FALLBACK_COMP

#define XCLIB_XCOUT_FALLBACK_COMP   5 /* compound failed, move to text. */

◆ XCLIB_XCOUT_FALLBACK_TEXT

#define XCLIB_XCOUT_FALLBACK_TEXT   6

◆ XCLIB_XCOUT_FALLBACK_UTF8

#define XCLIB_XCOUT_FALLBACK_UTF8   4 /* UTF8 failed, move to compound. */

◆ XCLIB_XCOUT_INCR

#define XCLIB_XCOUT_INCR   2 /* in an incr loop */

Definition at line 2028 of file GHOST_SystemX11.cc.

Referenced by GHOST_SystemX11::getClipboard_xcout().

◆ XCLIB_XCOUT_NONE

#define XCLIB_XCOUT_NONE   0 /* no context */

◆ XCLIB_XCOUT_SENTCONVSEL

#define XCLIB_XCOUT_SENTCONVSEL   1 /* sent a request */

Definition at line 2027 of file GHOST_SystemX11.cc.

Referenced by GHOST_SystemX11::getClipboard_xcout().

Function Documentation

◆ bit_is_on()

static uchar bit_is_on ( const uchar * ptr,
int bit )
static

Definition at line 85 of file GHOST_SystemX11.cc.

References ptr.

◆ getCursorPosition_impl()

static GHOST_TSuccess getCursorPosition_impl ( Display * display,
int32_t & x,
int32_t & y,
Window * child_return )
static

◆ ghost_key_from_keycode()

static GHOST_TKey ghost_key_from_keycode ( const XkbDescPtr xkb_descr,
const KeyCode keycode )
static

◆ ghost_key_from_keysym()

◆ ghost_key_from_keysym_or_keycode()

static GHOST_TKey ghost_key_from_keysym_or_keycode ( const KeySym key_sym,
const XkbDescPtr xkb_descr,
const KeyCode keycode )
static

◆ GHOST_X11_ApplicationErrorHandler()

int GHOST_X11_ApplicationErrorHandler ( Display * display,
XErrorEvent * event )

These callbacks can be used for debugging, so we can break-point on an X11 error.

Dummy function to get around IO Handler exiting if device invalid Basically it will not crash blender now if you have a X device that is configured but not plugged in.

Definition at line 2635 of file GHOST_SystemX11.cc.

References GHOST_ISystem::getSystem(), and GHOST_ISystem::isDebugEnabled().

Referenced by GHOST_SystemX11::GHOST_SystemX11().

◆ GHOST_X11_ApplicationIOErrorHandler()

int GHOST_X11_ApplicationIOErrorHandler ( Display * display)

◆ init_timestamp_scanner()

static Bool init_timestamp_scanner ( Display * ,
XEvent * event,
XPointer arg )
static

Definition at line 552 of file GHOST_SystemX11.cc.

References init_timestamp_data::timestamp.

◆ SleepTillEvent()

static void SleepTillEvent ( Display * display,
int64_t maxSleep )
static

Definition at line 526 of file GHOST_SystemX11.cc.

References select().

Referenced by GHOST_SystemX11::processEvents().

◆ split()

Variable Documentation

◆ txt_cut_buffer

char* txt_cut_buffer = nullptr
static

◆ txt_select_buffer

char* txt_select_buffer = nullptr
static