Update GLFW from upstream
Use the new init hint for keyboard debugging
This commit is contained in:
parent
1ce4366972
commit
45b0233f60
@ -69,7 +69,6 @@ static void changeToResourcesDirectory(void)
|
|||||||
static void createKeyTables(void)
|
static void createKeyTables(void)
|
||||||
{
|
{
|
||||||
int scancode;
|
int scancode;
|
||||||
_glfw.ns.debug_keyboard = getenv("GLFW_DEBUG_KEYBOARD") != NULL;
|
|
||||||
|
|
||||||
memset(_glfw.ns.keycodes, -1, sizeof(_glfw.ns.keycodes));
|
memset(_glfw.ns.keycodes, -1, sizeof(_glfw.ns.keycodes));
|
||||||
memset(_glfw.ns.scancodes, -1, sizeof(_glfw.ns.scancodes));
|
memset(_glfw.ns.scancodes, -1, sizeof(_glfw.ns.scancodes));
|
||||||
|
|||||||
1
glfw/cocoa_platform.h
vendored
1
glfw/cocoa_platform.h
vendored
@ -121,7 +121,6 @@ typedef struct _GLFWlibraryNS
|
|||||||
|
|
||||||
char keyName[64];
|
char keyName[64];
|
||||||
char text[256];
|
char text[256];
|
||||||
GLFWbool debug_keyboard;
|
|
||||||
short int keycodes[256];
|
short int keycodes[256];
|
||||||
short int scancodes[GLFW_KEY_LAST + 1];
|
short int scancodes[GLFW_KEY_LAST + 1];
|
||||||
char* clipboardString;
|
char* clipboardString;
|
||||||
|
|||||||
@ -209,7 +209,7 @@ static int translateFlags(NSUInteger flags)
|
|||||||
return mods;
|
return mods;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define debug_key(...) if (_glfw.ns.debug_keyboard) NSLog(__VA_ARGS__)
|
#define debug_key(...) if (_glfw.hints.init.debugKeyboard) NSLog(__VA_ARGS__)
|
||||||
|
|
||||||
static inline const char*
|
static inline const char*
|
||||||
format_mods(int mods) {
|
format_mods(int mods) {
|
||||||
|
|||||||
1
glfw/glfw3.h
vendored
1
glfw/glfw3.h
vendored
@ -1057,6 +1057,7 @@ extern "C" {
|
|||||||
/*! @addtogroup init
|
/*! @addtogroup init
|
||||||
* @{ */
|
* @{ */
|
||||||
#define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001
|
#define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001
|
||||||
|
#define GLFW_DEBUG_KEYBOARD 0x00050002
|
||||||
|
|
||||||
#define GLFW_COCOA_CHDIR_RESOURCES 0x00051001
|
#define GLFW_COCOA_CHDIR_RESOURCES 0x00051001
|
||||||
#define GLFW_COCOA_MENUBAR 0x00051002
|
#define GLFW_COCOA_MENUBAR 0x00051002
|
||||||
|
|||||||
5
glfw/init.c
vendored
5
glfw/init.c
vendored
@ -51,6 +51,7 @@ static GLFWerrorfun _glfwErrorCallback;
|
|||||||
static _GLFWinitconfig _glfwInitHints =
|
static _GLFWinitconfig _glfwInitHints =
|
||||||
{
|
{
|
||||||
GLFW_TRUE, // hat buttons
|
GLFW_TRUE, // hat buttons
|
||||||
|
GLFW_FALSE, // debug keyboard
|
||||||
{
|
{
|
||||||
GLFW_TRUE, // macOS menu bar
|
GLFW_TRUE, // macOS menu bar
|
||||||
GLFW_TRUE // macOS bundle chdir
|
GLFW_TRUE // macOS bundle chdir
|
||||||
@ -255,6 +256,9 @@ GLFWAPI void glfwInitHint(int hint, int value)
|
|||||||
case GLFW_JOYSTICK_HAT_BUTTONS:
|
case GLFW_JOYSTICK_HAT_BUTTONS:
|
||||||
_glfwInitHints.hatButtons = value;
|
_glfwInitHints.hatButtons = value;
|
||||||
return;
|
return;
|
||||||
|
case GLFW_DEBUG_KEYBOARD:
|
||||||
|
_glfwInitHints.debugKeyboard = value;
|
||||||
|
return;
|
||||||
case GLFW_COCOA_CHDIR_RESOURCES:
|
case GLFW_COCOA_CHDIR_RESOURCES:
|
||||||
_glfwInitHints.ns.chdir = value;
|
_glfwInitHints.ns.chdir = value;
|
||||||
return;
|
return;
|
||||||
@ -311,4 +315,3 @@ GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun)
|
|||||||
_GLFW_SWAP_POINTERS(_glfwErrorCallback, cbfun);
|
_GLFW_SWAP_POINTERS(_glfwErrorCallback, cbfun);
|
||||||
return cbfun;
|
return cbfun;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
1
glfw/internal.h
vendored
1
glfw/internal.h
vendored
@ -242,6 +242,7 @@ struct _GLFWerror
|
|||||||
struct _GLFWinitconfig
|
struct _GLFWinitconfig
|
||||||
{
|
{
|
||||||
GLFWbool hatButtons;
|
GLFWbool hatButtons;
|
||||||
|
GLFWbool debugKeyboard;
|
||||||
struct {
|
struct {
|
||||||
GLFWbool menubar;
|
GLFWbool menubar;
|
||||||
GLFWbool chdir;
|
GLFWbool chdir;
|
||||||
|
|||||||
4
glfw/xkb_glfw.c
vendored
4
glfw/xkb_glfw.c
vendored
@ -30,8 +30,7 @@
|
|||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "xkb_glfw.h"
|
#include "xkb_glfw.h"
|
||||||
|
|
||||||
static GLFWbool debug_keyboard = GLFW_FALSE;
|
#define debug(...) if (_glfw.hints.init.debugKeyboard) printf(__VA_ARGS__);
|
||||||
#define debug(...) if (debug_keyboard) printf(__VA_ARGS__);
|
|
||||||
|
|
||||||
#define map_key(key) { \
|
#define map_key(key) { \
|
||||||
switch(key) { \
|
switch(key) { \
|
||||||
@ -206,7 +205,6 @@ glfw_xkb_release(_GLFWXKBData *xkb) {
|
|||||||
GLFWbool
|
GLFWbool
|
||||||
glfw_xkb_create_context(_GLFWXKBData *xkb) {
|
glfw_xkb_create_context(_GLFWXKBData *xkb) {
|
||||||
xkb->context = xkb_context_new(0);
|
xkb->context = xkb_context_new(0);
|
||||||
debug_keyboard = getenv("GLFW_DEBUG_KEYBOARD") != NULL;
|
|
||||||
if (!xkb->context)
|
if (!xkb->context)
|
||||||
{
|
{
|
||||||
_glfwInputError(GLFW_PLATFORM_ERROR,
|
_glfwInputError(GLFW_PLATFORM_ERROR,
|
||||||
|
|||||||
1
kitty/glfw-wrapper.h
generated
1
kitty/glfw-wrapper.h
generated
@ -818,6 +818,7 @@ typedef int (* GLFWapplicationshouldhandlereopenfun)(int);
|
|||||||
/*! @addtogroup init
|
/*! @addtogroup init
|
||||||
* @{ */
|
* @{ */
|
||||||
#define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001
|
#define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001
|
||||||
|
#define GLFW_DEBUG_KEYBOARD 0x00050002
|
||||||
|
|
||||||
#define GLFW_COCOA_CHDIR_RESOURCES 0x00051001
|
#define GLFW_COCOA_CHDIR_RESOURCES 0x00051001
|
||||||
#define GLFW_COCOA_MENUBAR 0x00051002
|
#define GLFW_COCOA_MENUBAR 0x00051002
|
||||||
|
|||||||
@ -558,10 +558,12 @@ error_callback(int error, const char* description) {
|
|||||||
PyObject*
|
PyObject*
|
||||||
glfw_init(PyObject UNUSED *self, PyObject *args) {
|
glfw_init(PyObject UNUSED *self, PyObject *args) {
|
||||||
const char* path;
|
const char* path;
|
||||||
if (!PyArg_ParseTuple(args, "s", &path)) return NULL;
|
int debug_keyboard = 0;
|
||||||
|
if (!PyArg_ParseTuple(args, "s|p", &path, &debug_keyboard)) return NULL;
|
||||||
const char* err = load_glfw(path);
|
const char* err = load_glfw(path);
|
||||||
if (err) { PyErr_SetString(PyExc_RuntimeError, err); return NULL; }
|
if (err) { PyErr_SetString(PyExc_RuntimeError, err); return NULL; }
|
||||||
glfwSetErrorCallback(error_callback);
|
glfwSetErrorCallback(error_callback);
|
||||||
|
glfwInitHint(GLFW_DEBUG_KEYBOARD, debug_keyboard);
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
glfwInitHint(GLFW_COCOA_CHDIR_RESOURCES, 0);
|
glfwInitHint(GLFW_COCOA_CHDIR_RESOURCES, 0);
|
||||||
glfwInitHint(GLFW_COCOA_MENUBAR, 0);
|
glfwInitHint(GLFW_COCOA_MENUBAR, 0);
|
||||||
|
|||||||
@ -71,12 +71,8 @@ def load_all_shaders(semi_transparent=0):
|
|||||||
|
|
||||||
def init_glfw(debug_keyboard=False):
|
def init_glfw(debug_keyboard=False):
|
||||||
glfw_module = 'cocoa' if is_macos else ('wayland' if is_wayland else 'x11')
|
glfw_module = 'cocoa' if is_macos else ('wayland' if is_wayland else 'x11')
|
||||||
if debug_keyboard:
|
if not glfw_init(glfw_path(glfw_module), debug_keyboard):
|
||||||
os.environ['GLFW_DEBUG_KEYBOARD'] = '1'
|
|
||||||
if not glfw_init(glfw_path(glfw_module)):
|
|
||||||
raise SystemExit('GLFW initialization failed')
|
raise SystemExit('GLFW initialization failed')
|
||||||
if debug_keyboard:
|
|
||||||
os.environ.pop('GLFW_DEBUG_KEYBOARD')
|
|
||||||
return glfw_module
|
return glfw_module
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user