Blender V4.5
GHOST_SystemX11.cc File Reference
#include <X11/XKBlib.h>
#include <X11/Xatom.h>
#include <X11/Xutil.h>
#include <X11/keysym.h>
#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)
#define XCLIB_XCOUT_NONE   0
#define XCLIB_XCOUT_SENTCONVSEL   1
#define XCLIB_XCOUT_INCR   2
#define XCLIB_XCOUT_FALLBACK   3
#define XCLIB_XCOUT_FALLBACK_UTF8   4
#define XCLIB_XCOUT_FALLBACK_COMP   5
#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 1874 of file GHOST_SystemX11.cc.

◆ MAKE_ID

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

Definition at line 2004 of file GHOST_SystemX11.cc.

◆ USE_NON_LATIN_KB_WORKAROUND

#define USE_NON_LATIN_KB_WORKAROUND

Definition at line 82 of file GHOST_SystemX11.cc.

◆ USE_UNITY_WORKAROUND

#define USE_UNITY_WORKAROUND

Definition at line 78 of file GHOST_SystemX11.cc.

◆ XCLIB_XCOUT_FALLBACK

#define XCLIB_XCOUT_FALLBACK   3

Definition at line 2037 of file GHOST_SystemX11.cc.

Referenced by GHOST_SystemX11::getClipboard().

◆ XCLIB_XCOUT_FALLBACK_COMP

#define XCLIB_XCOUT_FALLBACK_COMP   5

◆ XCLIB_XCOUT_FALLBACK_TEXT

#define XCLIB_XCOUT_FALLBACK_TEXT   6

◆ XCLIB_XCOUT_FALLBACK_UTF8

#define XCLIB_XCOUT_FALLBACK_UTF8   4

◆ XCLIB_XCOUT_INCR

#define XCLIB_XCOUT_INCR   2

Definition at line 2036 of file GHOST_SystemX11.cc.

Referenced by GHOST_SystemX11::getClipboard_xcout().

◆ XCLIB_XCOUT_NONE

#define XCLIB_XCOUT_NONE   0

◆ XCLIB_XCOUT_SENTCONVSEL

#define XCLIB_XCOUT_SENTCONVSEL   1

Definition at line 2035 of file GHOST_SystemX11.cc.

Referenced by GHOST_SystemX11::getClipboard_xcout().

Function Documentation

◆ bit_is_on()

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

Definition at line 84 of file GHOST_SystemX11.cc.

References bit_is_on().

Referenced by bit_is_on().

◆ getCursorPosition_impl()

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

◆ ghost_key_from_keycode()

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

◆ ghost_key_from_keysym()

GHOST_TKey ghost_key_from_keysym ( const KeySym key)
static

Definition at line 1879 of file GHOST_SystemX11.cc.

References ghost_key_from_keysym(), GHOST_kKey0, GHOST_kKeyA, GHOST_kKeyAccentGrave, GHOST_kKeyApp, GHOST_kKeyBackslash, GHOST_kKeyBackSpace, GHOST_kKeyCapsLock, GHOST_kKeyComma, GHOST_kKeyDelete, GHOST_kKeyDownArrow, GHOST_kKeyDownPage, GHOST_kKeyEnd, GHOST_kKeyEnter, GHOST_kKeyEqual, GHOST_kKeyEsc, GHOST_kKeyF1, GHOST_kKeyHome, GHOST_kKeyInsert, GHOST_kKeyLeftAlt, GHOST_kKeyLeftArrow, GHOST_kKeyLeftBracket, GHOST_kKeyLeftControl, GHOST_kKeyLeftHyper, GHOST_kKeyLeftOS, GHOST_kKeyLeftShift, GHOST_kKeyLinefeed, GHOST_kKeyMediaFirst, GHOST_kKeyMediaLast, GHOST_kKeyMediaPlay, GHOST_kKeyMediaStop, GHOST_kKeyMinus, GHOST_kKeyNumLock, GHOST_kKeyNumpad0, GHOST_kKeyNumpad1, GHOST_kKeyNumpad2, GHOST_kKeyNumpad3, GHOST_kKeyNumpad4, GHOST_kKeyNumpad5, GHOST_kKeyNumpad6, GHOST_kKeyNumpad7, GHOST_kKeyNumpad8, GHOST_kKeyNumpad9, GHOST_kKeyNumpadAsterisk, GHOST_kKeyNumpadEnter, GHOST_kKeyNumpadMinus, GHOST_kKeyNumpadPeriod, GHOST_kKeyNumpadPlus, GHOST_kKeyNumpadSlash, GHOST_kKeyPause, GHOST_kKeyPeriod, GHOST_kKeyPlus, GHOST_kKeyQuote, GHOST_kKeyRightAlt, GHOST_kKeyRightArrow, GHOST_kKeyRightBracket, GHOST_kKeyRightControl, GHOST_kKeyRightHyper, GHOST_kKeyRightOS, GHOST_kKeyRightShift, GHOST_kKeyScrollLock, GHOST_kKeySemicolon, GHOST_kKeySlash, GHOST_kKeySpace, GHOST_kKeyTab, GHOST_kKeyUnknown, GHOST_kKeyUpArrow, GHOST_kKeyUpPage, GXMAP, and printf.

Referenced by ghost_key_from_keysym(), ghost_key_from_keysym_or_keycode(), and GHOST_SystemX11::processEvents().

◆ ghost_key_from_keysym_or_keycode()

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 2643 of file GHOST_SystemX11.cc.

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

Referenced by GHOST_SystemX11::GHOST_SystemX11(), and GHOST_X11_ApplicationErrorHandler().

◆ GHOST_X11_ApplicationIOErrorHandler()

◆ init_timestamp_scanner()

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

Definition at line 548 of file GHOST_SystemX11.cc.

References data, Display, and init_timestamp_scanner().

Referenced by init_timestamp_scanner().

◆ SleepTillEvent()

void SleepTillEvent ( Display * display,
int64_t maxSleep )
static

Definition at line 522 of file GHOST_SystemX11.cc.

References Display, select, and SleepTillEvent().

Referenced by GHOST_SystemX11::processEvents(), and SleepTillEvent().

◆ split()

void split ( const char * text,
const char * seps,
char *** str,
int * count )
static

Definition at line 2479 of file GHOST_SystemX11.cc.

References data, free(), i, split(), and str.

Referenced by GHOST_SystemX11::showMessageBox(), and split().

Variable Documentation

◆ txt_cut_buffer

char* txt_cut_buffer = nullptr
static

◆ txt_select_buffer

char* txt_select_buffer = nullptr
static