aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2023-05-12MacOS: Fix inverted puglPostRedisplay() coordinatesDavid Robillard1-1/+5
2023-05-12X11: Use the root provided by XGetWindowAttributes()David Robillard1-5/+4
2023-05-12X11: Avoid deferring empty exposuresDavid Robillard3-25/+15
2023-05-12X11: Use available X extensions by defaultDavid Robillard1-12/+36
2023-05-12Windows: Share common drawing context codeDavid Robillard2-12/+5
2023-05-12Windows: Pass the struct from BeginPaint() to EndPaint()David Robillard4-12/+7
The documentation explains that the PAINTSTRUCT returned by BeginPaint() should be passed to the corresponding call to EndPaint(). I'm not sure what real-world effects not doing this had, but this commit fixes things to use the API as intended.
2023-05-12Remove redundant castsDavid Robillard1-3/+3
2023-05-03Fix internal function linkageDavid Robillard1-1/+1
2023-05-03Fix ambiguous function prototypesDavid Robillard2-2/+2
2023-05-03Add missing field initializerDavid Robillard1-1/+1
2023-05-03Avoid double equality comparisonDavid Robillard1-2/+2
2023-05-03Fix mismatched types in ternary expressionsDavid Robillard2-16/+18
2023-05-03Fix implicit sign conversionsDavid Robillard3-7/+7
2023-05-03Fix tautological unsigned comparisonsDavid Robillard1-6/+6
2023-05-03Remove dead codeDavid Robillard1-13/+0
2023-02-18Use XSetWMNormalHints instead of XSetNormalHintssjaehn1-1/+1
2023-02-15Fix crash on views with no title setDavid Robillard1-9/+11
2023-02-10Fix partial exposure in X11 Cairo backendDavid Robillard1-10/+35
2023-02-10Factor out macrosDavid Robillard2-8/+16
2023-01-20Inline flagsDavid Robillard1-2/+2
Maybe CodeFactor can figure this out, or maybe this really can load from the CWD despite what the documentation seems to say.
2023-01-14MacOS: Fix Vulkan backend buildDavid Robillard1-1/+2
2023-01-14Allow applications to specify the Vulkan library pathDavid Robillard3-7/+13
I don't know if vendoring the Vulkan library is appropriate, but regardless, this allows applications to set the name to whatever they want, or specify an absolute path, just in case the standard value baked into Pugl isn't the right one in some situation.
2023-01-14Windows: Fix potentially insecure library loadingDavid Robillard2-3/+6
2023-01-14Windows: Add PUGL_DARK_FRAME hintDavid Robillard1-0/+20
This allows dark applications to visually integrate more nicely in Windows 10. A little thing, but it really goes a long way to make programs not look out of place and half-baked.
2023-01-14Add general string hint interfaceDavid Robillard7-51/+133
This replaces the window title and class name APIs with a more general one that can be easily extended to other things, like icon names, more detailed application hints, and so on.
2023-01-11MacOS: Avoid calling sendEvent in modulesreuk3-56/+33
2023-01-11Fix potential leakDavid Robillard1-7/+10
2023-01-11Guard against required hints explicitly being set to PUGL_DONT_CAREDavid Robillard1-0/+5
2023-01-11Clean up puglRealize() implementationsDavid Robillard4-27/+18
2023-01-11X11: Fix puglPostRedisplay() outside of event handlersDavid Robillard1-2/+4
2023-01-11X11: Make puglSendEvent() gracefully handle unrealized viewsDavid Robillard1-0/+3
2023-01-11Reduce duplicated codeDavid Robillard1-11/+1
2023-01-11X11: Avoid potentially unnecessary allocation in Vulkan backendDavid Robillard1-8/+12
2023-01-11X11: Fix positioning of top-level windows with decorationsDavid Robillard2-8/+68
2023-01-11Remove cached frame from viewDavid Robillard10-214/+364
This was just a source of ambiguity and bugs, since it represented different things at different times and could become stale. Redundant data is always trouble, so eliminate it, leaving just two positions/sizes: the defaults (used when the view is not yet realized), and the last configuration.
2023-01-11Fix checks for invalid view positionsDavid Robillard3-3/+3
2023-01-11Center windows on their transient parent where possibleDavid Robillard3-16/+56
This is only really relevant in practice on MacOS and Windows. On X11, the window manager places new windows where it pleases.
2023-01-10Add PUGL_CURSOR_ALL_SCROLLDavid Robillard3-0/+4
2023-01-10Fix inconsistent naming conventionDavid Robillard1-5/+5
2023-01-10Windows: Make puglGetScaleFactor always return a reasonable valueDavid Robillard1-4/+24
This guesses the likely scale factor when the view hasn't been realized (and so there's no real window to get information for). It may still be wrong for multiple display systems, but will always return some scale factor that "exists" on the system, and should always be correct when there's only one display.
2023-01-08Prepare OpenGL context flags for OpenGL ES supportDavid Robillard4-11/+17
2023-01-08Windows: Fix OpenGL profile hint interpretationDavid Robillard1-2/+2
2023-01-08Use ensureHint pattern everywhereDavid Robillard6-60/+48
2023-01-08Add PUGL_SAMPLE_BUFFERS hintDavid Robillard4-14/+24
Towards a more direct and explicit mapping to platform hints, and more consistent behaviour across platforms. OpenGL applications are generally expected to be explicit about hints like this.
2023-01-08Add missing default hintDavid Robillard1-0/+1
2023-01-08Gracefully handle out of range hintsDavid Robillard1-3/+11
2023-01-08Remove branch cloneDavid Robillard1-2/+0
2023-01-08X11: Add support for _NET_WM_PING protocolDavid Robillard2-14/+56
This is mainly used to allow the window manager to close locked or otherwise misbehaving windows. The PID and hostname properties are both required to properly support this, but may also be used for other things.
2023-01-08Add support for raising windowsDavid Robillard3-8/+43
2023-01-07Replace map/unmap events with more expressive configure eventsDavid Robillard8-48/+36