Browse Source

Add numpad enter to xcb_cairo backend...

SFML seems to already treat both regular Return and Numpad
Enter as sf:Keyboard:Enter (which I changed because sf:Keyboard:Return
is deprecated.  But SFML seems to have some other weird input bug.
Robert Winkler 7 months ago
parent
commit
ff976c2296

+ 1 - 1
demo/sfml_opengl2/Makefile

@@ -22,7 +22,7 @@ else
 	ifeq ($(UNAME_S),Darwin)
 	ifeq ($(UNAME_S),Darwin)
 		LIBS = -lsfml-window -lsfml-system -pthread -framework OpenGL
 		LIBS = -lsfml-window -lsfml-system -pthread -framework OpenGL
 	else
 	else
-		LIBS = -DSFML_STATIC -lsfml-window-s -lsfml-system-s -pthread -ludev -lGL -lX11 -lXrandr
+		LIBS = -DSFML_STATIC -lsfml-window -lsfml-system -pthread -ludev -lGL -lX11 -lXrandr
 	endif
 	endif
 endif
 endif
 
 

+ 1 - 1
demo/sfml_opengl2/nuklear_sfml_gl2.h

@@ -279,7 +279,7 @@ nk_sfml_handle_event(sf::Event* evt)
             nk_input_key(ctx, NK_KEY_SHIFT, down);
             nk_input_key(ctx, NK_KEY_SHIFT, down);
         else if(key == sf::Keyboard::Delete)
         else if(key == sf::Keyboard::Delete)
             nk_input_key(ctx, NK_KEY_DEL, down);
             nk_input_key(ctx, NK_KEY_DEL, down);
-        else if(key == sf::Keyboard::Return)
+        else if(key == sf::Keyboard::Enter)
             nk_input_key(ctx, NK_KEY_ENTER, down);
             nk_input_key(ctx, NK_KEY_ENTER, down);
         else if(key == sf::Keyboard::Tab)
         else if(key == sf::Keyboard::Tab)
             nk_input_key(ctx, NK_KEY_TAB, down);
             nk_input_key(ctx, NK_KEY_TAB, down);

+ 1 - 1
demo/sfml_opengl3/nuklear_sfml_gl3.h

@@ -386,7 +386,7 @@ nk_sfml_handle_event(sf::Event* evt)
             nk_input_key(ctx, NK_KEY_SHIFT, down);
             nk_input_key(ctx, NK_KEY_SHIFT, down);
         else if(key == sf::Keyboard::Delete)
         else if(key == sf::Keyboard::Delete)
             nk_input_key(ctx, NK_KEY_DEL, down);
             nk_input_key(ctx, NK_KEY_DEL, down);
-        else if(key == sf::Keyboard::Return)
+        else if(key == sf::Keyboard::Enter)
             nk_input_key(ctx, NK_KEY_ENTER, down);
             nk_input_key(ctx, NK_KEY_ENTER, down);
         else if(key == sf::Keyboard::Tab)
         else if(key == sf::Keyboard::Tab)
             nk_input_key(ctx, NK_KEY_TAB, down);
             nk_input_key(ctx, NK_KEY_TAB, down);

+ 13 - 12
demo/xcb_cairo/nuklear_xcb.h

@@ -114,13 +114,13 @@ NK_API void nk_xcb_resize_cairo_surface(struct nk_xcb_context *xcb_ctx, void *su
 #define NK_XCB_TO_CAIRO(x) ((double) x / 255.0)
 #define NK_XCB_TO_CAIRO(x) ((double) x / 255.0)
 #define NK_XCB_DEG_TO_RAD(x) ((double) x * NK_XCB_PI / 180.0)
 #define NK_XCB_DEG_TO_RAD(x) ((double) x * NK_XCB_PI / 180.0)
 
 
-typedef struct xkb_context xkb_context; 
+typedef struct xkb_context xkb_context;
 typedef struct xkb_keymap xkb_keymap;
 typedef struct xkb_keymap xkb_keymap;
 typedef struct xkb_state xkb_state;
 typedef struct xkb_state xkb_state;
 typedef struct xkbcommon_context xkbcommon_context;
 typedef struct xkbcommon_context xkbcommon_context;
 typedef struct nk_xcb_context nk_xcb_context;
 typedef struct nk_xcb_context nk_xcb_context;
 
 
-struct xkbcommon_context 
+struct xkbcommon_context
 {
 {
 	struct xkb_context *ctx;
 	struct xkb_context *ctx;
 	struct xkb_keymap *keymap;
 	struct xkb_keymap *keymap;
@@ -260,7 +260,7 @@ NK_API int nk_xcb_handle_event(struct nk_xcb_context *xcb_ctx, struct nk_context
                 xcb_key_press_event_t *kp = (xcb_key_press_event_t *)event;
                 xcb_key_press_event_t *kp = (xcb_key_press_event_t *)event;
                 /* xcb_keysym_t sym = xcb_key_symbols_get_keysym(xcb_ctx->key_symbols, kp->detail, kp->state);*/
                 /* xcb_keysym_t sym = xcb_key_symbols_get_keysym(xcb_ctx->key_symbols, kp->detail, kp->state);*/
                 xcb_keysym_t sym = keycode_to_keysym(xcb_ctx, kp->detail, press);
                 xcb_keysym_t sym = keycode_to_keysym(xcb_ctx, kp->detail, press);
-                
+
                 switch (sym) {
                 switch (sym) {
                 case XK_Shift_L:
                 case XK_Shift_L:
                 case XK_Shift_R:
                 case XK_Shift_R:
@@ -274,6 +274,7 @@ NK_API int nk_xcb_handle_event(struct nk_xcb_context *xcb_ctx, struct nk_context
                     nk_input_key(nk_ctx, NK_KEY_DEL, press);
                     nk_input_key(nk_ctx, NK_KEY_DEL, press);
                     break;
                     break;
                 case XK_Return:
                 case XK_Return:
+                case XK_KP_Enter:
                     nk_input_key(nk_ctx, NK_KEY_ENTER, press);
                     nk_input_key(nk_ctx, NK_KEY_ENTER, press);
                     break;
                     break;
                 case XK_Tab:
                 case XK_Tab:
@@ -873,7 +874,7 @@ NK_INTERN xkbcommon_context *xkbcommon_init(xcb_connection_t *conn)
 {
 {
 	xkbcommon_context *kbdctx;
 	xkbcommon_context *kbdctx;
 	int32_t device_id;
 	int32_t device_id;
-	
+
 	int ret = xkb_x11_setup_xkb_extension(conn,
 	int ret = xkb_x11_setup_xkb_extension(conn,
 		XKB_X11_MIN_MAJOR_XKB_VERSION,
 		XKB_X11_MIN_MAJOR_XKB_VERSION,
 		XKB_X11_MIN_MINOR_XKB_VERSION,
 		XKB_X11_MIN_MINOR_XKB_VERSION,
@@ -884,26 +885,26 @@ NK_INTERN xkbcommon_context *xkbcommon_init(xcb_connection_t *conn)
 	{
 	{
 		return NULL;
 		return NULL;
 	}
 	}
-	
+
 	kbdctx = (xkbcommon_context *)malloc(sizeof(xkbcommon_context));
 	kbdctx = (xkbcommon_context *)malloc(sizeof(xkbcommon_context));
 	kbdctx->ctx = NULL;
 	kbdctx->ctx = NULL;
 	kbdctx->keymap = NULL;
 	kbdctx->keymap = NULL;
 	kbdctx->state = NULL;
 	kbdctx->state = NULL;
-	
+
 	kbdctx->ctx = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
 	kbdctx->ctx = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
     if (!kbdctx->ctx)
     if (!kbdctx->ctx)
 	{
 	{
 		xkbcommon_free(kbdctx);
 		xkbcommon_free(kbdctx);
 		return NULL;
 		return NULL;
 	}
 	}
-	
+
 	device_id = xkb_x11_get_core_keyboard_device_id(conn);
 	device_id = xkb_x11_get_core_keyboard_device_id(conn);
 	if (device_id == -1)
 	if (device_id == -1)
 	{
 	{
 		xkbcommon_free(kbdctx);
 		xkbcommon_free(kbdctx);
 		return NULL;
 		return NULL;
 	}
 	}
-	
+
 	kbdctx->keymap = xkb_x11_keymap_new_from_device(kbdctx->ctx, conn, device_id, XKB_KEYMAP_COMPILE_NO_FLAGS);
 	kbdctx->keymap = xkb_x11_keymap_new_from_device(kbdctx->ctx, conn, device_id, XKB_KEYMAP_COMPILE_NO_FLAGS);
 	if (!kbdctx->keymap)
 	if (!kbdctx->keymap)
 	{
 	{
@@ -927,12 +928,12 @@ NK_INTERN void xkbcommon_free(xkbcommon_context *kbdctx)
 	{
 	{
 		if (kbdctx->state) xkb_state_unref(kbdctx->state);
 		if (kbdctx->state) xkb_state_unref(kbdctx->state);
 		if (kbdctx->keymap) xkb_keymap_unref(kbdctx->keymap);
 		if (kbdctx->keymap) xkb_keymap_unref(kbdctx->keymap);
-		if (kbdctx->ctx) xkb_context_unref(kbdctx->ctx);	
+		if (kbdctx->ctx) xkb_context_unref(kbdctx->ctx);
 
 
 		kbdctx->ctx = NULL;
 		kbdctx->ctx = NULL;
 		kbdctx->keymap = NULL;
 		kbdctx->keymap = NULL;
 		kbdctx->state = NULL;
 		kbdctx->state = NULL;
-		
+
 		free(kbdctx);
 		free(kbdctx);
 	}
 	}
 }
 }
@@ -941,7 +942,7 @@ NK_INTERN xkb_keysym_t keycode_to_keysym(nk_xcb_context *ctx, xkb_keycode_t keyc
 {
 {
 	xkb_keysym_t keysym;
 	xkb_keysym_t keysym;
 	xkbcommon_context *kbdctx = ctx->xkbcommon_ctx;
 	xkbcommon_context *kbdctx = ctx->xkbcommon_ctx;
-	
+
 	if (kbdctx != NULL)
 	if (kbdctx != NULL)
 	{
 	{
 		keysym = xkb_state_key_get_one_sym(kbdctx->state, keycode);
 		keysym = xkb_state_key_get_one_sym(kbdctx->state, keycode);
@@ -953,7 +954,7 @@ NK_INTERN xkb_keysym_t keycode_to_keysym(nk_xcb_context *ctx, xkb_keycode_t keyc
 	{
 	{
 		keysym = 0;
 		keysym = 0;
 	}
 	}
-	
+
 	return keysym;
 	return keysym;
 }
 }