From fde2fda466f6a49a0105925b026b9776c5a402b5 Mon Sep 17 00:00:00 2001 From: insofaras Date: Tue, 23 Feb 2016 21:40:49 +0000 Subject: [PATCH 1/2] linux scroll wheel --- linux_4ed.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/linux_4ed.cpp b/linux_4ed.cpp index deab87b4..cdbd2e6e 100644 --- a/linux_4ed.cpp +++ b/linux_4ed.cpp @@ -1645,6 +1645,16 @@ main(int argc, char **argv) linuxvars.mouse_data.right_button_pressed = 1; linuxvars.mouse_data.right_button = 1; } break; + + //NOTE(inso): scroll up + case Button4: { + linuxvars.mouse_data.wheel = 1; + }break; + + //NOTE(inso): scroll down + case Button5: { + linuxvars.mouse_data.wheel = -1; + }break; } }break; @@ -1839,6 +1849,7 @@ main(int argc, char **argv) linuxvars.mouse_data.left_button_released = 0; linuxvars.mouse_data.right_button_pressed = 0; linuxvars.mouse_data.right_button_released = 0; + linuxvars.mouse_data.wheel = 0; ProfileStart(OS_file_process); { From 94353967417fe951a79a2b7ebb748d04d8cc8c28 Mon Sep 17 00:00:00 2001 From: insofaras Date: Tue, 23 Feb 2016 22:28:34 +0000 Subject: [PATCH 2/2] linux cursors. resizing ones flicker a bit currently --- linux_4ed.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/linux_4ed.cpp b/linux_4ed.cpp index cdbd2e6e..39443cb8 100644 --- a/linux_4ed.cpp +++ b/linux_4ed.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -103,6 +104,8 @@ struct Linux_Vars{ Atom atom_CLIPBOARD; Atom atom_UTF8_STRING; + Application_Mouse_Cursor cursor; + void *app_code; void *custom; @@ -1553,6 +1556,14 @@ main(int argc, char **argv) exit(1); } + Cursor xcursors[APP_MOUSE_CURSOR_COUNT] = { + None, + XCreateFontCursor(linuxvars.XDisplay, XC_arrow), + XCreateFontCursor(linuxvars.XDisplay, XC_xterm), + XCreateFontCursor(linuxvars.XDisplay, XC_sb_h_double_arrow), + XCreateFontCursor(linuxvars.XDisplay, XC_sb_v_double_arrow) + }; + XSetICFocus(linuxvars.input_context); linuxvars.atom_CLIPBOARD = XInternAtom(linuxvars.XDisplay, "CLIPBOARD", False); @@ -1843,6 +1854,12 @@ main(int argc, char **argv) usleep(frame_useconds - time_diff); } + if(result.mouse_cursor_type != linuxvars.cursor){ + Cursor c = xcursors[result.mouse_cursor_type]; + XDefineCursor(linuxvars.XDisplay, linuxvars.XWindow, c); + linuxvars.cursor = result.mouse_cursor_type; + } + linuxvars.redraw = 0; linuxvars.key_data = {}; linuxvars.mouse_data.left_button_pressed = 0;