aboutsummaryrefslogtreecommitdiffstats
path: root/pugl/detail
AgeCommit message (Collapse)AuthorFilesLines
2020-07-05Improve struct packingDavid Robillard2-5/+5
Unfortunately there is no warning like Wpadded but only for internal padding, so that can't be turned on, but if there was, after this commit the build would be clean with it. Maybe some day...
2020-07-05Move stub backend function implementations to a detail headerDavid Robillard9-5/+83
2020-07-05Replace isHint bool with a flagDavid Robillard3-3/+3
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.
2020-07-05Add scroll direction fieldDavid Robillard3-17/+48
2020-07-05Replace grab flag in PuglEventFocus with crossing modeDavid Robillard2-3/+8
2020-07-05Remove redundant focus field from PuglEventMotionDavid Robillard1-1/+0
2020-07-05Remove count field from PuglEventExposeDavid Robillard4-7/+3
This was never particularly useful, and it makes no sense with the new drawing model, even on X11, so its presence just adds confusion. So, remove it, which also conveniently fixes a padding warning in PuglEventExpose.
2020-07-04Windows: Fix old-style declaration warningDavid Robillard2-3/+4
2020-07-04Windows: Remove unused constantsDavid Robillard1-2/+0
2020-07-04X11: Fix internal timer ID type to match public interfaceDavid Robillard1-1/+1
2020-07-04X11: Fix integer to enum conversion warningDavid Robillard1-1/+2
2020-07-04X11: Fix sign conversion warningDavid Robillard1-4/+4
2020-07-02Mac: Fix implicit conversion warningsDavid Robillard2-4/+4
2020-07-02Mac: Declare instance variables in implementationDavid Robillard5-28/+25
Declaring instance variables in interfaces is deprecated, according to Wobjc-interface-vars (Apple clang version 11.0.0).
2020-07-02Fix cast alignment warnings on 32-bit ARMDavid Robillard1-2/+4
2020-06-13Mac: Only create an AutoreleasePool for programsDavid Robillard1-5/+10
Avoids crashes in some plugin scenarios when draining the AutoreleasePool. This is still probably not ideal, more fine-grained use of auto release facilities might be more appropriate here.
2020-06-13Add puglSetCursor()Jean Pierre Cimalando6-2/+170
2020-06-13Fix mouse position of events on high resolution MacOSDavid Robillard1-1/+11
2020-06-13Cleanup: Fix implicit conversion warnings with clangDavid Robillard1-6/+7
2020-06-13Cleanup: Fix uninitialised variablesDavid Robillard1-5/+5
2020-06-08Windows: Only call SwapBuffers with OpenGLJean Pierre Cimalando2-2/+0
2020-06-08Windows: Fix maximum sizeDavid Robillard1-2/+4
2020-05-16Add default and maximum sizeDavid Robillard6-40/+161
2020-05-16Fix indentationDavid Robillard1-3/+3
2020-05-16Use line comments where appropriateDavid Robillard4-30/+30
2020-05-16Use email address in copyright headersDavid Robillard16-16/+16
Not really sure why I used a web link here (maybe because it's more stable), but this is more conventional.
2020-05-16Fix file documentationDavid Robillard16-24/+40
2020-04-08Mac: Use high-resolution backing surfacesDavid Robillard3-43/+111
2020-04-06Implement puglSetTransientFor() for Mac and WindowsDavid Robillard3-1/+38
2020-04-03Mac: Use NSMakeRect over CGRectMakeDavid Robillard1-1/+1
Using CGRectMake here apparently doesn't work on older versions of MacOS.
2020-04-02Make puglGetVisible() take a const view argumentDavid Robillard1-1/+1
2020-04-02Make puglSetString() safe to call with equal source and destinationDavid Robillard1-3/+5
This is sometimes used by puglSetWindowTitle() using the existing title.
2020-04-02Add missing includeDavid Robillard1-0/+1
2020-04-01Consistently use "view" terminology in APIDavid Robillard6-15/+15
The sloppy use of "window" caused quite a bit of confusion, since views only correspond to top-level windows in some cases, and on MacOS, a non-top-level view is not a "window" at all.
2020-04-01Cleanup: Fix mismatched file commentsDavid Robillard1-1/+1
2020-04-01Add PUGL_BAD_PARAMETER statusDavid Robillard1-1/+3
2020-04-01Replace puglShowWindow() with puglRealize()David Robillard3-30/+45
2020-03-31Mac: Fix various warningsDavid Robillard3-25/+30
2020-03-31X11: Don't wait for timeouts less than a millisecondDavid Robillard1-1/+1
2020-03-28Tolerate puglPostRedisplay() in configure handlersDavid Robillard1-10/+11
2020-03-17Use clearer names for pointer eventsDavid Robillard3-9/+9
These old "notify" names are a smell from X11 which is a bit strange and inconsistent here, since nearly everything is a "notification" of sorts. I think the new names here are much more clear since they are consistent with the keyboard focus events.
2020-03-16Cleanup: Add missing includesDavid Robillard1-0/+2
2020-03-16Simplify puglRequestAttention()David Robillard3-37/+7
Now that timers are exposed, applications can repeatedly nag for attention themselves if they really want to.
2020-03-16Add timer eventsDavid Robillard5-0/+217
2020-03-16Cleanup: Remove unused includeDavid Robillard1-1/+0
2020-03-16MacOS: Fix semantics of puglUpdate() with negative timeoutDavid Robillard1-0/+6
2020-03-16MacOS: Move initial configure to just before mapDavid Robillard1-11/+10
2020-03-16X11: Dispatch a configure event before the map for child windowsDavid Robillard1-0/+9
It does not seem to be guaranteed that child windows receive a ConfigureNotify at all. Work around this by explicitly dispatching one first, so child views receive events consistently with how top level views do.
2020-03-16Separate cached configuration from frameDavid Robillard2-6/+3
This was a bad idea and a never-ending source of problems. The frame represents what the "current" frame is from a Pugl perspective, but with the asynchronicity of X11 and other issues this cant be used to filter configure events. Instead, simply cache the last configure event that was sent and compare with that.
2020-03-16Factor out dispatching configure events in the drawing contextDavid Robillard4-9/+25
The updates here need to happen whenever a configure is dispatched, even outside puglDispatchEvent(). This removes the last remaining direct calls to the event callback so the common implementation can always do the right thing.