aboutsummaryrefslogtreecommitdiffstats
path: root/src/implementation.c
AgeCommit message (Collapse)AuthorFilesLines
2022-06-07Remove unnecessary forward-compatibility codeDavid Robillard1-7/+3
2022-05-23Add rich clipboard supportDavid Robillard1-36/+16
This implements a more powerful protocol for working with clipboards, which supports datatype negotiation, and fixes various issues by mapping more directly to how things work on X11.
2022-05-22Fix whitespaceDavid Robillard1-1/+1
2022-05-21Add a uniform API for setting size hintsDavid Robillard1-3/+3
This collapses many functions into one, which makes the API more easily extensible and reduces code size.
2022-05-21Rename PUGL_UNSUPPORTED_TYPE to be more genericDavid Robillard1-2/+2
2022-04-23Strengthen MSVC warningsDavid Robillard1-1/+1
2022-04-21Improve error handlingDavid Robillard1-22/+34
2021-12-17Adopt REUSE machine-readable licensing standardDavid Robillard1-15/+2
See https://reuse.software/ for details.
2021-12-16Add puglGetBackend()David Robillard1-0/+6
2021-12-16Add puglGetClassName()David Robillard1-0/+6
2021-12-16Add puglGetWindowTitle()David Robillard1-0/+6
2021-12-16Add puglGetParentWindow()David Robillard1-0/+6
2021-12-16Add puglGetTransientParent()David Robillard1-0/+6
2021-05-25Rename event structs in a more readable styleDavid Robillard1-2/+2
Aside from reading more naturally, this avoids clashes with types that are not events, like PuglEventFlags. This is also more consistent with the C++ bindings, where "EventExpose" would be quite strange, for example. Apologies for the noise. Aliases to the old names will be preserved in the deprecated API like other things for a short while.
2021-05-08Send unmap/map events when the view is minimized/restoredDavid Robillard1-17/+31
X11 Window managers set WM_STATE to notify about minimization, often without sending core X visibility events (which seems odd to me, but that's what Gnome does anyway). So, implement this protocol and send map/unmap events to the view, and adjust the Windows implementation to do the same for consistency across all platforms.
2021-05-06Strengthen clang-tidy warningsDavid Robillard1-1/+1
2021-05-03Clean up includes and add mappings for old versions of IWYUDavid Robillard1-0/+2
2021-05-03Shrink puglGetViewHint() implementationDavid Robillard1-5/+1
2021-05-03Fix crash when freeing a view that has not been configuredDavid Robillard1-1/+3
2021-01-02Avoid "else" after "return"David Robillard1-4/+13
2021-01-02Simplify clang-format configuration and format all codeDavid Robillard1-226/+230
2020-11-26Remove file documentationDavid Robillard1-5/+0
These will not be used in the Sphinx documentation, and most were self-explanatory and only there to make the Doxygen index look nice anyway. Where there was actually useful information, it has been preserved as regular comments.
2020-11-25Rename puglShowWindow and puglHideWindow to puglShow an puglHideDavid Robillard1-0/+12
These names were confusing because a view is not necessarily a window. Since there's no room for ambiguity here, simply drop the superfluous word.
2020-11-25Move puglEnterContext and puglLeaveContext to GL backendsDavid Robillard1-12/+0
These only do anything for OpenGL, and it seems unlikely that they will ever be used for anything else. So, move them to the GL headers to remove clutter from the core API, and ensure that they are only used in GL applications that include the appropriate headers and link with a GL backend. Also add missing C++ bindings.
2020-10-31Cleanup: Remove unnecessary includeDavid Robillard1-1/+0
2020-10-30Remove logging APIDavid Robillard1-42/+0
This was missing from the C++ bindings and barely used anyway, so just remove it for now in the interests of simplicity and finalizing a stable API. The information previously logged in the X11 GL backend is now available programatically, so applications can print the same information portably if they like.
2020-10-30Move implementation source files to a conventional src directoryDavid Robillard1-0/+489
I think this attempt to be optionally header-only was misguided, particularly installing source code to the system include path. Typically anyone vendoring code just includes the repository and builds from there anyway. This commit moves all the implementation code to a typical src directory (Don't Be Weird). I still think there is some value in simple "inline" deployment, but that would be better achieved another way, like producing a single-file amalgamation that builds anywhere, ala sqlite.