aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2022-10-07Specify that native (build time) C++ support isn't requiredDavid Robillard1-1/+1
2022-10-07Override pkg-config dependencies within mesonDavid Robillard2-7/+29
2022-10-07Suppress new warnings in clang 14David Robillard1-0/+1
2022-10-07Clean up meson definitionsDavid Robillard22-230/+349
2022-09-28Handle fread() errors in examplesDavid Robillard2-2/+9
2022-08-31Add include_directories to pugl_depMichael Fisher10-10/+12
2022-08-31Fix non-strict MacOS buildDavid Robillard1-1/+1
2022-07-16Fix missing field initializers when building as C++falkTX1-3/+3
2022-07-07Fix documentation build as a subprojectDavid Robillard3-13/+9
2022-07-07Fix outdated reference in documentationDavid Robillard1-2/+2
2022-06-28Fix MinGW buildDavid Robillard1-0/+1
2022-06-28Strengthen global GCC warningsDavid Robillard1-1/+0
2022-06-28Simplify clang-tidy configurationDavid Robillard4-12/+1
2022-06-28Clean up meson configurationDavid Robillard3-12/+36
2022-06-17Call XrmInitialize()David Robillard1-0/+1
This must be called before any other Xrm functions are used.
2022-06-17Remove redundant assignmentDavid Robillard1-1/+0
2022-06-08Use consistent terminology for native viewsDavid Robillard9-13/+22
On MacOS in particular, views and windows are entirely different concepts, so confusing them... confuses things. This was the last holdover in the API that used the old "native window".
2022-06-08Consolidate common deprecated API implementationDavid Robillard2-40/+20
2022-06-08Separate platform.h from internal.hDavid Robillard7-34/+58
This makes the internal header structure match the "kinds" of definition inside Pugl: common implementations of public API, things available internally to platform implementations, and things the platform must define.
2022-06-08Separate private and public function implementationsDavid Robillard14-255/+274
2022-06-08Fix potential null pointer dereferenceDavid Robillard1-5/+5
According to clang-tidy anyway, I'm not seeing it.
2022-06-08Fox documentation formattingDavid Robillard1-1/+1
2022-06-07Use a consistent scheme for enum sizesDavid Robillard5-9/+14
2022-06-07Remove unnecessary forward-compatibility codeDavid Robillard3-21/+3
2022-06-07Make puglRealize() always gracefully fail with a bad configurationDavid Robillard2-1/+10
2022-06-07Fix broken links in documentationDavid Robillard1-2/+2
2022-06-07X11: Simplify dispatchX11Events()David Robillard1-31/+44
2022-06-07X11: Flush before returning from puglRealize()David Robillard1-0/+8
This avoids bugs in plugins, because otherwise it's possible that size hints are not available when the host embeds the UI.
2022-06-03Fix Cairo warnings on MacOSDavid Robillard2-1/+2
2022-06-03X11: Fix crash when input context is unavailable due to localesPace Willisson1-11/+17
Calling X*ICFocus on NULL segfaults. This can happen if XCreateIC failed, for example due to missing locales on minimal Docker images.
2022-05-29Make meson configuration more modularDavid Robillard4-133/+166
2022-05-28Update documentationDavid Robillard5-66/+69
2022-05-28Clean up and strengthen warning flagsDavid Robillard8-196/+304
2022-05-28Remove redundant program checksDavid Robillard2-4/+0
2022-05-28Fix View::acceptOffer parameter typeDavid Robillard1-1/+1
2022-05-28Omit cursor_names if XCursor is not availableDavid Robillard1-0/+2
This avoids a Wunused-const-variable warning with GCC.
2022-05-28Avoid implicit conversionsDavid Robillard1-4/+3
2022-05-23Add rich clipboard supportDavid Robillard19-201/+946
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-22Factor out pugl_clipboard_demo example programDavid Robillard5-14/+236
This is a simpler example than pugl_embed_demo that demonstrates clipboard functionality without the complexity of embedded views.
2022-05-21Add puglGetScaleFactor()David Robillard6-4/+106
2022-05-21Windows: Send configure events when frame moves or resizesDavid Robillard1-0/+3
2022-05-21Add puglSetPosition() and puglSetSize()David Robillard6-63/+239
These are redundant with puglSetFrame in a sense, but allow setting the size of a view without the position, or vice-versa. This API also maps more nicely to Wayland, where applications can not position themselves (but can resize).
2022-05-21Use consistent integer types for view positions and sizesDavid Robillard12-116/+147
Actual window sizes and positions fit easily in a 16-bit integer. So, we use that in "representation contexts" like events. This makes structures smaller, and allows the values to be converted to float, double, or integer without casting (since any int16_t or uint16_t value can fit in them without loss). Setter APIs use native integers for convenience, to avoid casting hassles when doing arithmetic. Ranges are checked at runtime.
2022-05-21Add a uniform API for setting size hintsDavid Robillard33-313/+356
This collapses many functions into one, which makes the API more easily extensible and reduces code size.
2022-05-21X11: Remove redundant display memberDavid Robillard4-47/+52
2022-05-21Rename PUGL_UNSUPPORTED_TYPE to be more genericDavid Robillard8-12/+12
2022-05-21MacOS: Specify maximum size constraint on draw viewDavid Robillard1-15/+37
I am not sure why the minimum was only specified before, but it seems like an oversight.
2022-05-21X11: Use cursor themesDavid Robillard2-29/+42
This changes to getting cursors by name from the cursor theme, which makes the cursor match the ones used in modern desktop environments. As far as I can tell, there is no real standard for names, these ones seem to work for me in GNOME, KDE, and Xfce. I am not sure about the compatibility concerns here, but X11 without Xcursor themes strikes me as either too esoteric or too ancient to worry about, especially since cursor switching isn't critical functionality anyway.
2022-05-21Avoid setting cursor on realizationDavid Robillard1-4/+0
This avoids issues when the default X11 cursor isn't the expected "default" of the environment, for example with Plasma. A real application that changes the cursor needs to do so consistently on mouse enter and leave events anyway.