aboutsummaryrefslogtreecommitdiffstats
path: root/src/x11.h
AgeCommit message (Collapse)AuthorFilesLines
2023-01-11X11: Fix positioning of top-level windows with decorationsDavid Robillard1-0/+3
2023-01-08X11: Add support for _NET_WM_PING protocolDavid Robillard1-0/+3
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-07Replace map/unmap events with more expressive configure eventsDavid Robillard1-0/+1
2023-01-07Add support for special view types and stylesDavid Robillard1-0/+10
2023-01-07Support closing views by sending a close eventDavid Robillard1-0/+1
2023-01-02Move attributes to a separate headerDavid Robillard1-0/+1
2022-05-23Add rich clipboard supportDavid Robillard1-8/+23
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-21Add puglGetScaleFactor()David Robillard1-0/+1
2022-05-21X11: Remove redundant display memberDavid Robillard1-1/+0
2022-05-21X11: Use cursor themesDavid Robillard1-3/+1
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-04-21Improve error handlingDavid Robillard1-0/+2
2022-04-21Remove unused return type from backend destroy methodsDavid Robillard1-1/+1
Since this is essentially a destructor, I don't think there's anything really useful to do with errors here, and in practice no backends actually used it anyway.
2022-04-21Fix private include guardsDavid Robillard1-3/+3
2021-12-17Adopt REUSE machine-readable licensing standardDavid Robillard1-15/+2
See https://reuse.software/ for details.
2021-05-24Separate stub backends from other backendsDavid Robillard1-2/+3
Stub backends were a dependency of other backends to allow some code reuse. However, that can cause conflicting symbols if multiple backends are linked into the same binary, which should be possible. To avoid this, move the shared code into the platform implementation, and export those symbols so that backends can use them. This adds some semi-public platform-specific API that can only be used by backends included with pugl. They are undocumented, subject to change at any time without a corresponding version change, and may not be used by third parties (for example by custom backends in an application).
2021-05-08Send unmap/map events when the view is minimized/restoredDavid Robillard1-0/+1
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-01-02Simplify clang-format configuration and format all codeDavid Robillard1-30/+31
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-10-30Move implementation source files to a conventional src directoryDavid Robillard1-0/+82
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.