aboutsummaryrefslogtreecommitdiffstats
path: root/pugl
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2020-07-05 15:01:13 +0200
committerDavid Robillard <d@drobilla.net>2020-07-05 18:47:39 +0200
commit90abfef17294c1b382f43007d984b93c200efa9d (patch)
treed8290397997ac31d7f9b9b565cd16ee88c11f937 /pugl
parent6c2460414082b989487abcad2ca2018a16ecdbd7 (diff)
downloadpugl-90abfef17294c1b382f43007d984b93c200efa9d.tar.gz
pugl-90abfef17294c1b382f43007d984b93c200efa9d.tar.bz2
pugl-90abfef17294c1b382f43007d984b93c200efa9d.zip
Replace isHint bool with a flag
I don't have any particular future use case in mind, but I think the concept makes sense for general events and it seems it could be useful for things like gestures as well. Also fixes another padding warning in the API.
Diffstat (limited to 'pugl')
-rw-r--r--pugl/detail/mac.m1
-rw-r--r--pugl/detail/win.c1
-rw-r--r--pugl/detail/x11.c4
-rw-r--r--pugl/pugl.h4
4 files changed, 5 insertions, 5 deletions
diff --git a/pugl/detail/mac.m b/pugl/detail/mac.m
index 50c52c5..23671ae 100644
--- a/pugl/detail/mac.m
+++ b/pugl/detail/mac.m
@@ -379,7 +379,6 @@ handleCrossing(PuglWrapperView* view, NSEvent* event, const PuglEventType type)
rloc.x,
[[NSScreen mainScreen] frame].size.height - rloc.y,
getModifiers(event),
- 0,
};
puglDispatchEvent(puglview, (const PuglEvent*)&ev);
diff --git a/pugl/detail/win.c b/pugl/detail/win.c
index ee690c4..7ec02ab 100644
--- a/pugl/detail/win.c
+++ b/pugl/detail/win.c
@@ -639,7 +639,6 @@ handleMessage(PuglView* view, UINT message, WPARAM wParam, LPARAM lParam)
event.motion.xRoot = pt.x;
event.motion.yRoot = pt.y;
event.motion.state = getModifiers();
- event.motion.isHint = false;
break;
case WM_MOUSELEAVE:
GetCursorPos(&pt);
diff --git a/pugl/detail/x11.c b/pugl/detail/x11.c
index b06f940..c2e7f6a 100644
--- a/pugl/detail/x11.c
+++ b/pugl/detail/x11.c
@@ -573,7 +573,9 @@ translateEvent(PuglView* view, XEvent xevent)
event.motion.xRoot = xevent.xmotion.x_root;
event.motion.yRoot = xevent.xmotion.y_root;
event.motion.state = translateModifiers(xevent.xmotion.state);
- event.motion.isHint = (xevent.xmotion.is_hint == NotifyHint);
+ if (xevent.xmotion.is_hint == NotifyHint) {
+ event.motion.flags |= PUGL_IS_HINT;
+ }
break;
case ButtonPress:
if (xevent.xbutton.button >= 4 && xevent.xbutton.button <= 7) {
diff --git a/pugl/pugl.h b/pugl/pugl.h
index 8c0bd6d..c32a17d 100644
--- a/pugl/pugl.h
+++ b/pugl/pugl.h
@@ -221,7 +221,8 @@ typedef enum {
Common flags for all event types.
*/
typedef enum {
- PUGL_IS_SEND_EVENT = 1 ///< Event is synthetic
+ PUGL_IS_SEND_EVENT = 1, ///< Event is synthetic
+ PUGL_IS_HINT = 2 ///< Event is a hint (not direct user input)
} PuglEventFlag;
/**
@@ -474,7 +475,6 @@ typedef struct {
double xRoot; ///< Root-relative X coordinate
double yRoot; ///< Root-relative Y coordinate
PuglMods state; ///< Bitwise OR of #PuglMod flags
- bool isHint; ///< True iff this event is a motion hint
} PuglEventMotion;
/**