Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2025-01-23 | Replace puglPostRedisplayRect() with puglObscureRegion() | David Robillard | 1 | -7/+23 | |
2025-01-23 | Rename puglPostRedisplay() to puglObscureView() | David Robillard | 1 | -1/+1 | |
For consistency with event types (since "obscure" is opposite "expose") and the upcoming puglObscureRegion(). | |||||
2025-01-22 | Simplify initial position code and place children at the origin | David Robillard | 1 | -38/+13 | |
The code to find the initial size and position for a view had a lot of duplication, and was inconsistent between platforms. Flaky positioning and attempting to center embedded children has historically caused a bunch of problems in general, particularly since windows can be resized. So, factor out all the initial size and position code so that the logic is in one centralized place used by all platforms, and always position embedded children within their parent at the top/left origin. For top-level windows, the view is centered on its transient parent or the screen (as before). A new platform function puglGetAncestorCenter() is used to do this in general code. Also towards a total separation of position and size, towards support for Wayland, where applications don't dictate their own positions. | |||||
2025-01-22 | Factor out puglIsValidSize() | David Robillard | 1 | -1/+1 | |
2025-01-22 | Factor out puglIsValidPosition() | David Robillard | 1 | -2/+2 | |
2025-01-22 | Rename PuglViewSize to PuglArea | David Robillard | 1 | -8/+8 | |
2025-01-22 | Make puglSetSizeHint() consistent with puglSetSize() | David Robillard | 1 | -9/+4 | |
In general, it's more convenient to have full-width integers as parameters, since C will promote any arithmetic on smaller types to them anyway. Using narrow types here, then, doesn't really make anything stricter, just forces an annoying cast when lots of warnings are enabled, which is likely unchecked. Better to handle it here, since it's more convenient, and the integer range checks the compiler can do aren't correct anyway (the max width/height is intentionally smaller than the max PuglSpan, so it can fit in a signed 16-bit integer). | |||||
2025-01-21 | Use PuglSpan for view sizes | David Robillard | 1 | -1/+1 | |
2025-01-21 | Make MacOS touchpad scroll sensitivity closer to other platforms | David Robillard | 1 | -3/+3 | |
2025-01-21 | Add PUGL_KEY_NONE | David Robillard | 1 | -2/+2 | |
This isn't a strict enumeration anyway, so a sentinel value does no harm, and using it avoids warnings about testing an enum with no zero value. | |||||
2024-07-13 | MacOS: Fix mouse wheel scroll speed | David Robillard | 1 | -5/+11 | |
This just happens to be the factor that results in one tick of a conventional mouse wheel being a change of 1.0 "lines" as on other platforms (at least for me, hopefully everywhere). Moving a wheel quickly does result in quite a lot of acceleration on MacOS though, so more refinement might be needed here for consistent event handling across platforms. | |||||
2024-07-13 | MacOS: Fix expose event coordinates | David Robillard | 1 | -1/+4 | |
2023-11-11 | Add support for Num, Scroll, and Caps Lock | David Robillard | 1 | -14/+18 | |
2023-11-11 | MacOS: Support left/right shift, control, and option keys | David Robillard | 1 | -4/+6 | |
2023-10-21 | MacOS: Fix horizontal scroll direction | David Robillard | 1 | -1/+1 | |
2023-10-21 | Filter out corresponding modifiers from key events | David Robillard | 1 | -3/+3 | |
Platforms differ here, but it's meaningless to ask about the state of a modifier that's currently being pressed or released, so simply mask this out in general so it's easy for platform implementations to clean events up before dispatching them. | |||||
2023-10-07 | Fix puglGetTime() on Apple Silicon | David Robillard | 1 | -3/+5 | |
The floating point precision of these chips is... strange. | |||||
2023-05-29 | Add support for numeric keypad and simplify keyboard handling | David Robillard | 1 | -25/+44 | |
2023-05-29 | Deprecate redundant key symbols | David Robillard | 1 | -4/+4 | |
2023-05-12 | Factor out puglIsValidSize() and use consistent rules everywhere | David Robillard | 1 | -4/+3 | |
2023-05-12 | MacOS: Fix inverted puglPostRedisplay() coordinates | David Robillard | 1 | -1/+5 | |
2023-05-03 | Fix internal function linkage | David Robillard | 1 | -1/+1 | |
2023-01-14 | Add general string hint interface | David Robillard | 1 | -11/+23 | |
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-11 | MacOS: Avoid calling sendEvent in modules | reuk | 1 | -56/+31 | |
2023-01-11 | Clean up puglRealize() implementations | David Robillard | 1 | -6/+4 | |
2023-01-11 | Remove cached frame from view | David Robillard | 1 | -88/+141 | |
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-11 | Fix checks for invalid view positions | David Robillard | 1 | -1/+1 | |
2023-01-11 | Center windows on their transient parent where possible | David Robillard | 1 | -6/+32 | |
This is only really relevant in practice on MacOS and Windows. On X11, the window manager places new windows where it pleases. | |||||
2023-01-10 | Add PUGL_CURSOR_ALL_SCROLL | David Robillard | 1 | -0/+2 | |
2023-01-08 | Use ensureHint pattern everywhere | David Robillard | 1 | -12/+4 | |
2023-01-08 | Add support for raising windows | David Robillard | 1 | -3/+15 | |
2023-01-07 | Replace map/unmap events with more expressive configure events | David Robillard | 1 | -5/+4 | |
2023-01-07 | Add support for special view types and styles | David Robillard | 1 | -20/+187 | |
2023-01-07 | Support closing views by sending a close event | David Robillard | 1 | -0/+5 | |
2023-01-07 | Rename create/destroy events to realize/unrealize | David Robillard | 1 | -4/+2 | |
As evidence that this was confusing, the documentation for these was an outright lie, and I've burned quite a bit of time in the past few days trying to rework things based around that flawed understanding. These names make it clear what these events actually are. If we need actual create/destroy events with a broader scope, they'll have to be added, but I suspect those aren't actually useful anyway. | |||||
2023-01-07 | Replace visible flag with a more descriptive view "stage" | David Robillard | 1 | -6/+4 | |
2023-01-06 | MacOS: Fix repeated realize/unrealize | David Robillard | 1 | -1/+0 | |
2023-01-04 | Add puglUnrealize() | David Robillard | 1 | -1/+38 | |
2023-01-02 | Factor out common realize checks and initialization | David Robillard | 1 | -14/+5 | |
2023-01-02 | Remove dead code | David Robillard | 1 | -5/+0 | |
2022-12-27 | Fix inconsistent initial window positioning across platforms | David Robillard | 1 | -4/+8 | |
2022-12-27 | Set transient parent when views are realized if necessary | David Robillard | 1 | -0/+3 | |
2022-12-27 | Fail to set transient parent of views with a parent window | David Robillard | 1 | -0/+4 | |
2022-12-27 | MacOS: Fix timestamps on systems with different clock rates | David Robillard | 1 | -3/+9 | |
This seems to be a thing at least on MacOS 12 on M1. | |||||
2022-12-24 | Add diagonal cursors | falkTX | 1 | -0/+17 | |
2022-10-07 | Use uppercase integer literal suffixes | David Robillard | 1 | -2/+2 | |
2022-06-08 | Use consistent terminology for native views | David Robillard | 1 | -1/+1 | |
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-08 | Separate platform.h from internal.h | David Robillard | 1 | -0/+1 | |
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-08 | Separate private and public function implementations | David Robillard | 1 | -1/+1 | |
2022-06-07 | Use a consistent scheme for enum sizes | David Robillard | 1 | -2/+2 | |