You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-17 14:11:06 +00:00
Use mouse and joypad enums instead of plain integers
Also MIDIMessage
This commit is contained in:
@@ -450,7 +450,7 @@ Point2i DisplayServerX11::mouse_get_absolute_position() const {
|
||||
return Vector2i();
|
||||
}
|
||||
|
||||
int DisplayServerX11::mouse_get_button_state() const {
|
||||
MouseButton DisplayServerX11::mouse_get_button_state() const {
|
||||
return last_button_state;
|
||||
}
|
||||
|
||||
@@ -2172,13 +2172,13 @@ void DisplayServerX11::_get_key_modifier_state(unsigned int p_x11_state, Ref<Inp
|
||||
state->set_meta_pressed((p_x11_state & Mod4Mask));
|
||||
}
|
||||
|
||||
unsigned int DisplayServerX11::_get_mouse_button_state(unsigned int p_x11_button, int p_x11_type) {
|
||||
unsigned int mask = 1 << (p_x11_button - 1);
|
||||
MouseButton DisplayServerX11::_get_mouse_button_state(MouseButton p_x11_button, int p_x11_type) {
|
||||
MouseButton mask = MouseButton(1 << (p_x11_button - 1));
|
||||
|
||||
if (p_x11_type == ButtonPress) {
|
||||
last_button_state |= mask;
|
||||
} else {
|
||||
last_button_state &= ~mask;
|
||||
last_button_state &= MouseButton(~mask);
|
||||
}
|
||||
|
||||
return last_button_state;
|
||||
@@ -3130,11 +3130,11 @@ void DisplayServerX11::process_events() {
|
||||
|
||||
mb->set_window_id(window_id);
|
||||
_get_key_modifier_state(event.xbutton.state, mb);
|
||||
mb->set_button_index(event.xbutton.button);
|
||||
if (mb->get_button_index() == 2) {
|
||||
mb->set_button_index(3);
|
||||
} else if (mb->get_button_index() == 3) {
|
||||
mb->set_button_index(2);
|
||||
mb->set_button_index((MouseButton)event.xbutton.button);
|
||||
if (mb->get_button_index() == MOUSE_BUTTON_RIGHT) {
|
||||
mb->set_button_index(MOUSE_BUTTON_MIDDLE);
|
||||
} else if (mb->get_button_index() == MOUSE_BUTTON_MIDDLE) {
|
||||
mb->set_button_index(MOUSE_BUTTON_RIGHT);
|
||||
}
|
||||
mb->set_button_mask(_get_mouse_button_state(mb->get_button_index(), event.xbutton.type));
|
||||
mb->set_position(Vector2(event.xbutton.x, event.xbutton.y));
|
||||
@@ -3297,7 +3297,7 @@ void DisplayServerX11::process_events() {
|
||||
if (xi.pressure_supported) {
|
||||
mm->set_pressure(xi.pressure);
|
||||
} else {
|
||||
mm->set_pressure((mouse_get_button_state() & (1 << (MOUSE_BUTTON_LEFT - 1))) ? 1.0f : 0.0f);
|
||||
mm->set_pressure((mouse_get_button_state() & MOUSE_BUTTON_MASK_LEFT) ? 1.0f : 0.0f);
|
||||
}
|
||||
mm->set_tilt(xi.tilt);
|
||||
|
||||
@@ -3855,8 +3855,6 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode
|
||||
img[i] = nullptr;
|
||||
}
|
||||
|
||||
last_button_state = 0;
|
||||
|
||||
xmbstring = nullptr;
|
||||
|
||||
last_click_ms = 0;
|
||||
|
||||
@@ -162,7 +162,7 @@ class DisplayServerX11 : public DisplayServer {
|
||||
Point2i last_click_pos;
|
||||
uint64_t last_click_ms;
|
||||
int last_click_button_index;
|
||||
uint32_t last_button_state;
|
||||
MouseButton last_button_state = MOUSE_BUTTON_NONE;
|
||||
bool app_focused = false;
|
||||
uint64_t time_since_no_focus = 0;
|
||||
|
||||
@@ -187,7 +187,7 @@ class DisplayServerX11 : public DisplayServer {
|
||||
|
||||
bool _refresh_device_info();
|
||||
|
||||
unsigned int _get_mouse_button_state(unsigned int p_x11_button, int p_x11_type);
|
||||
MouseButton _get_mouse_button_state(MouseButton p_x11_button, int p_x11_type);
|
||||
void _get_key_modifier_state(unsigned int p_x11_state, Ref<InputEventWithModifiers> state);
|
||||
void _flush_mouse_motion();
|
||||
|
||||
@@ -279,7 +279,7 @@ public:
|
||||
virtual void mouse_warp_to_position(const Point2i &p_to);
|
||||
virtual Point2i mouse_get_position() const;
|
||||
virtual Point2i mouse_get_absolute_position() const;
|
||||
virtual int mouse_get_button_state() const;
|
||||
virtual MouseButton mouse_get_button_state() const;
|
||||
|
||||
virtual void clipboard_set(const String &p_text);
|
||||
virtual String clipboard_get() const;
|
||||
|
||||
@@ -475,7 +475,7 @@ void JoypadLinux::process_joypads() {
|
||||
|
||||
switch (ev.type) {
|
||||
case EV_KEY:
|
||||
input->joy_button(i, joy->key_map[ev.code], ev.value);
|
||||
input->joy_button(i, (JoyButton)joy->key_map[ev.code], ev.value);
|
||||
break;
|
||||
|
||||
case EV_ABS:
|
||||
@@ -484,29 +484,29 @@ void JoypadLinux::process_joypads() {
|
||||
case ABS_HAT0X:
|
||||
if (ev.value != 0) {
|
||||
if (ev.value < 0) {
|
||||
joy->dpad = (joy->dpad | HatMask::HAT_MASK_LEFT) & ~HatMask::HAT_MASK_RIGHT;
|
||||
joy->dpad = (HatMask)((joy->dpad | HatMask::HAT_MASK_LEFT) & ~HatMask::HAT_MASK_RIGHT);
|
||||
} else {
|
||||
joy->dpad = (joy->dpad | HatMask::HAT_MASK_RIGHT) & ~HatMask::HAT_MASK_LEFT;
|
||||
joy->dpad = (HatMask)((joy->dpad | HatMask::HAT_MASK_RIGHT) & ~HatMask::HAT_MASK_LEFT);
|
||||
}
|
||||
} else {
|
||||
joy->dpad &= ~(HatMask::HAT_MASK_LEFT | HatMask::HAT_MASK_RIGHT);
|
||||
}
|
||||
|
||||
input->joy_hat(i, joy->dpad);
|
||||
input->joy_hat(i, (HatMask)joy->dpad);
|
||||
break;
|
||||
|
||||
case ABS_HAT0Y:
|
||||
if (ev.value != 0) {
|
||||
if (ev.value < 0) {
|
||||
joy->dpad = (joy->dpad | HatMask::HAT_MASK_UP) & ~HatMask::HAT_MASK_DOWN;
|
||||
joy->dpad = (HatMask)((joy->dpad | HatMask::HAT_MASK_UP) & ~HatMask::HAT_MASK_DOWN);
|
||||
} else {
|
||||
joy->dpad = (joy->dpad | HatMask::HAT_MASK_DOWN) & ~HatMask::HAT_MASK_UP;
|
||||
joy->dpad = (HatMask)((joy->dpad | HatMask::HAT_MASK_DOWN) & ~HatMask::HAT_MASK_UP);
|
||||
}
|
||||
} else {
|
||||
joy->dpad &= ~(HatMask::HAT_MASK_UP | HatMask::HAT_MASK_DOWN);
|
||||
}
|
||||
|
||||
input->joy_hat(i, joy->dpad);
|
||||
input->joy_hat(i, (HatMask)joy->dpad);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -526,7 +526,7 @@ void JoypadLinux::process_joypads() {
|
||||
for (int j = 0; j < MAX_ABS; j++) {
|
||||
int index = joy->abs_map[j];
|
||||
if (index != -1) {
|
||||
input->joy_axis(i, index, joy->curr_axis[index]);
|
||||
input->joy_axis(i, (JoyAxis)index, joy->curr_axis[index]);
|
||||
}
|
||||
}
|
||||
if (len == 0 || (len < 0 && errno != EAGAIN)) {
|
||||
|
||||
Reference in New Issue
Block a user