Merge branch 'more_event_phases' of https://github.com/Luflosi/kitty
This commit is contained in:
commit
f45acc055e
@ -925,16 +925,22 @@ is_ascii_control_char(char x) {
|
||||
switch([event momentumPhase]) {
|
||||
case NSEventPhaseBegan:
|
||||
flags |= (1 << 1); break;
|
||||
case NSEventPhaseChanged:
|
||||
case NSEventPhaseStationary:
|
||||
flags |= (2 << 1); break;
|
||||
case NSEventPhaseEnded:
|
||||
case NSEventPhaseChanged:
|
||||
flags |= (3 << 1); break;
|
||||
case NSEventPhaseEnded:
|
||||
flags |= (4 << 1); break;
|
||||
case NSEventPhaseCancelled:
|
||||
flags |= (5 << 1); break;
|
||||
case NSEventPhaseMayBegin:
|
||||
flags |= (6 << 1); break;
|
||||
case NSEventPhaseNone:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (fabs(deltaX) > 0.0 || fabs(deltaY) > 0.0)
|
||||
_glfwInputScroll(window, deltaX, deltaY, flags);
|
||||
_glfwInputScroll(window, deltaX, deltaY, flags);
|
||||
}
|
||||
|
||||
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender
|
||||
|
||||
7
glfw/glfw3.h
vendored
7
glfw/glfw3.h
vendored
@ -1383,9 +1383,10 @@ typedef void (* GLFWcursorenterfun)(GLFWwindow*,int);
|
||||
* @param[in] flags A bit-mask providing extra data about the event.
|
||||
* flags & 1 will be true if and only if the offset values are "high-precision".
|
||||
* Typically pixel values. Otherwise the offset values are number of lines.
|
||||
* (flags >> 1) & 3 will have value 1 for start of momentum scrolling,
|
||||
* value 2 for momentum scrolling in progress and value 3 for momentum
|
||||
* scrolling ended.
|
||||
* (flags >> 1) & 7 will have value 1 for the start of momentum scrolling,
|
||||
* value 2 for stationary momentum scrolling, value 3 for momentum scrolling
|
||||
* in progress, value 4 for momentum scrolling ended, value 5 for momentum
|
||||
* scrolling cancelled and value 6 if scrolling may begin soon.
|
||||
*
|
||||
* @sa @ref scrolling
|
||||
* @sa @ref glfwSetScrollCallback
|
||||
|
||||
@ -569,22 +569,26 @@ scroll_event(double UNUSED xoffset, double yoffset, int flags) {
|
||||
}
|
||||
if (!w) return;
|
||||
|
||||
int s;
|
||||
bool is_high_resolution = flags & 1;
|
||||
Screen *screen = w->render_data.screen;
|
||||
enum MomentumData { NoMomentumData, StartMomentumPhase, MomentumPhaseActive, MomentumPhaseEnded };
|
||||
enum MomentumData momentum_data = (flags >> 1) & 3;
|
||||
enum MomentumData { NoMomentumData, MomentumPhaseBegan, MomentumPhaseStationary, MomentumPhaseActive, MomentumPhaseEnded, MomentumPhaseCancelled, MomentumPhaseMayBegin };
|
||||
enum MomentumData momentum_data = (flags >> 1) & 7;
|
||||
|
||||
switch(momentum_data) {
|
||||
case StartMomentumPhase:
|
||||
case MomentumPhaseBegan:
|
||||
window_for_momentum_scroll = w->id; break;
|
||||
case MomentumPhaseActive:
|
||||
if (window_for_momentum_scroll != w->id) return;
|
||||
break;
|
||||
case MomentumPhaseEnded:
|
||||
window_for_momentum_scroll = 0; break;
|
||||
case NoMomentumData:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (yoffset == 0.0) return;
|
||||
|
||||
int s;
|
||||
bool is_high_resolution = flags & 1;
|
||||
Screen *screen = w->render_data.screen;
|
||||
|
||||
if (is_high_resolution) {
|
||||
yoffset *= OPT(touch_scroll_multiplier);
|
||||
if (yoffset * global_state.callback_os_window->pending_scroll_pixels < 0) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user