Commit Graph

350 Commits

Author SHA1 Message Date
Camilla Berglund
ca8912375c Fix Motif hints being set for X11 full screen
Related to #575.
2015-08-12 18:02:45 +02:00
Camilla Berglund
527952102a Fixed filtering of events duplicated by XIM.
Duplicate events cannot be filtered by the return value of XFilterEvent,
as that discards dead key events on some IMs (ibus), nor by its inverse,
as that discards all key events on other IMs (?).  This solution is
based on the workaround in SDL2 and takes advantage of the identical
time of the duplicate events.

Fixes #548.
Closes #554.
Closes #571.
2015-08-07 16:53:43 +02:00
Camilla Berglund
f825af06f0 Formatting. 2015-07-14 15:45:22 +02:00
Camilla Berglund
19a28e2c9f Fixed X11 arrow cursor image.
Fixes #541.
2015-06-25 12:59:51 +02:00
Camilla Berglund
1984d40e33 Formatting. 2015-06-25 01:23:23 +02:00
Camilla Berglund
cf4206d987 Fixed duplicate key presses caused by XIM.
Probably.
2015-06-25 00:43:12 +02:00
Camilla Berglund
cc4c232956 Renamed cursor window library struct member.
Since _glfwPlatformWindowFocused it has a more limited role.
2015-06-17 12:06:45 +02:00
Camilla Berglund
3365139a6c Cleanup. 2015-06-16 12:10:20 +02:00
Camilla Berglund
b15eaeda16 Implemented auto-iconification on X11.
Fixes #531.
2015-06-15 18:46:45 +02:00
Camilla Berglund
e049190ff1 Moved focus callback triggering last. 2015-06-15 18:46:45 +02:00
Camilla Berglund
dba59cf903 Improved X11 focus event filtering.
Some focus events need to be ignored to allow functionality like
Alt+Tab and volume indicators to not affect application-visible window
focus.  However, the previous filtering was too broad and missed virtual
desktop switching, Alt+Tab and programmatic iconification.

Fixes #405.
2015-06-15 18:44:54 +02:00
Camilla Berglund
56122cbe2f Keep X11 full screen window properties on iconify. 2015-06-15 15:32:35 +02:00
Camilla Berglund
c77edaee34 Always pre-position X11 full screen windows. 2015-06-15 15:32:35 +02:00
Camilla Berglund
21ce21cc07 Improved X11 full screen focus control flow. 2015-06-15 15:32:16 +02:00
Camilla Berglund
6cf15615e8 Clarified EWMH full screen error messages. 2015-06-15 14:39:56 +02:00
Camilla Berglund
a1399426c3 Removed superfluous X11 window struct member. 2015-06-15 14:38:13 +02:00
Camilla Berglund
81249724e3 Removed retrieval of unused values. 2015-06-15 14:36:32 +02:00
Camilla Berglund
bdcffa90eb Remove superfluous X11 library struct member. 2015-06-15 14:28:13 +02:00
Camilla Berglund
1ee4c4ba62 Clarified control flow in X11 event processing. 2015-06-15 14:24:27 +02:00
Camilla Berglund
08b3af4387 Fixed non-pre-edit character input via XIM.
Fixes #501.
Fixes #473.
2015-06-09 21:10:01 +02:00
Camilla Berglund
e6cc3c4752 Clarified WM_PROTOCOLS event handling. 2015-06-02 17:54:25 +02:00
Camilla Berglund
9f0e359d73 Formatting. 2015-06-02 17:27:35 +02:00
Camilla Berglund
82c5dfc30a Formatting. 2015-06-02 17:26:23 +02:00
Camilla Berglund
ee2d036bbf Fixed destination of _NET_WM_PING reply. 2015-06-02 17:25:09 +02:00
Camilla Berglund
cf363103d2 Formatting. 2015-06-02 17:10:22 +02:00
Camilla Berglund
41af5aaae2 Simplified sending events to WM. 2015-06-02 17:09:38 +02:00
Camilla Berglund
eb7688df8f Added select to all custom X11 event polling.
All loops waiting for specific events now use select to sleep while
there is no new data.
2015-03-16 18:29:37 +01:00
Camilla Berglund
d493a82f9e Various error fixes.
Fixed incorrect error types.  Added missing error string prefixes.
Removed some invalid or superfluous error emissions.  Clarified some
error strings.  Joined error string lines to aid grep.  Replaced some
generic error strings with specific ones.  Documentation work.

Fixes #450.
2015-03-15 15:52:27 +01:00
Camilla Berglund
a75e43ef22 Moved _NET_REQUEST_FRAME_EXTENTS to frame query.
The request is now only made when necessary and times out after 500ms.
This breaks our end of the protocol to work around broken
implementations at the other end.

It uses the GLFW timer instead of select, as select is not guaranteed to
update the timeout with the time remaining and a single select is not
sufficient as other events may be incoming.

Fixes #368 (mostly).
Fixes #429 (mostly).
2015-03-15 15:47:39 +01:00
BryceMehring
c43f082993 Fixed X11 mouse button mismatch.
Bug introduced by 4d146cb39d.

Closes #449.
2015-03-15 15:47:39 +01:00
Camilla Berglund
48f4a591de Formatting. 2015-02-22 19:22:48 +01:00
Camilla Berglund
4d146cb39d Fixed hole in mouse button sequence on X11. 2015-02-22 19:22:48 +01:00
Camilla Berglund
cf7dc1d737 Documented hidden cursor workaround. 2015-02-22 19:22:48 +01:00
Aleksey Rybalkin
a343e9a475 Added workaround for cursor hiding on some WMs.
Closes #431.
Fixes #309.
2015-02-22 19:22:48 +01:00
Camilla Berglund
75a6d87542 Added support for Cygwin-X.
Fixes #406.
2015-02-16 15:40:57 +01:00
Camilla Berglund
f4c127f75a Made XInput2 optional at compile-time.
This is required for RHEL 5, CentOS 5 and Cygwin-X.

Fixes #314.
2015-02-16 15:40:39 +01:00
Camilla Berglund
93855ae6ab Fixed name of path drop list. 2015-02-16 15:40:08 +01:00
Camilla Berglund
ac8dba2a80 Cleaned up text/uri-list parsing. 2015-02-16 15:40:08 +01:00
Camilla Berglund
439417a22c Comment and string spell check pass. 2015-01-05 22:21:31 +01:00
Camilla Berglund
d459145d28 Made glfwGetCursorPos query system directly.
Fixes #103.
Fixes #153.
Fixes #193.
Fixes #355.
Fixes #381.
2015-01-04 16:54:19 +01:00
Camilla Berglund
641761ddb0 Changed state attribs to direct access.
Changed the window states (focused, iconified and visible) to query the
system directly.

THIS IS A BREAKING CHANGE, although a fairly obscure one.  It affects
applications that both care about telling actual key events from
synthetic ones, and are implemented in a non-self-synchronizing way, and
that poll the GLFW_FOCUSED window attribute instead of using the window
focus callback.

If you maintain one of these, please feel free to drop me an email and
I'll help any way I can to transition your application to 3.1.

Fixes #189.
Fixes #204.
2015-01-04 16:53:32 +01:00
Camilla Berglund
2a1375e97c Added glfwCreateStandardCursor.
This function allows the creation of cursor objects using one of several
standard cursor shapes from the current system cursor theme.
2014-12-15 21:58:44 +01:00
Camilla Berglund
1495134398 Changed all key translation to arrays. 2014-12-15 21:55:17 +01:00
Camilla Berglund
a8b0d1c8e0 Updated changelog and credits, formatting.
Closes #384.
2014-11-27 15:41:17 +01:00
Cyril Pichard
cc10527706 Fixed position for full screen override redirect. 2014-11-27 15:38:21 +01:00
Camilla Berglund
4c64e94d39 Fixed X-axis scroll offset inversion (take two).
Fixed #239 (properly).
2014-10-26 15:15:42 +01:00
Camilla Berglund
4918514eaf Added support for _NET_WM_FULLSCREEN_MONITORS.
This allows EWMH full screen windows to correctly cover monitors that
overlap other monitors, such as an Oculus Rift mapped onto a section of
a larger monitor.

Fixes #175.
2014-09-22 13:31:59 +02:00
Camilla Berglund
c769061a8a Cleanup of basic XIM support.
Shortened and simplified the code.  Removed reporting of XIM sentinel
key press event.  Added credit.  Updated changelog.

Closes #151.
2014-09-22 11:08:33 +02:00
Lucas Hinderberger
cec63f3cb5 Fixed dead keys in X11.
The library will now try to create an X input context to handle dead
keys properly on international keyboards.  This makes it possible to
enter for example an e with accent grave on a German keyboard without
further efforts.  A fallback mechanism is provided in case the client
does not support X input method / context creation.  In that case, the
library will behave as it did before.
2014-09-22 11:08:33 +02:00
Camilla Berglund
e9c7314d50 Added GLFW_FOCUSED window hint.
Fixes #101.
2014-09-10 11:50:50 +02:00
Camilla Berglund
8d170c7f47 Merged clipboard code into input. 2014-09-09 16:36:41 +02:00
Camilla Berglund
4aa9174e76 Clarified comments for X11 key repeat hack. 2014-09-03 01:46:11 +02:00
Camilla Berglund
96b12ee504 Added character with modifiers callback.
The undefined behaviour changed with #40 has been reverted, making the
character-only callback again behave like a system text field.  This
behavior has now been documentated.

Fixes #203.
Fixes #305.
2014-06-24 10:50:05 +02:00
Camilla Berglund
9b6c14b7ae Unified X11 cursor creation. 2014-06-22 13:15:36 +02:00
Camilla Berglund
3ce7bfef07 Added GLFW_FLOATING.
Fixes #23.
2014-06-18 16:39:39 +02:00
Camilla Berglund
20b7ac0518 Formatting. 2014-06-12 22:08:37 +02:00
Camilla Berglund
d95b1b33e5 Cleanup of XKB detection code. 2014-05-18 14:06:49 +02:00
Camilla Berglund
99c98407c9 Removed flicker-inducing workaround.
Fixes #267.
2014-04-08 14:11:21 +02:00
Camilla Berglund
b29fbc82c2 Ensure out arguments are always set. 2014-04-07 16:28:11 +02:00
Camilla Berglund
7911c9300d Nomenclature fix. 2014-04-07 13:38:54 +02:00
Camilla Berglund
bbc12ade7f Added missing X command flushing. 2014-04-07 13:36:25 +02:00
Camilla Berglund
f5a996a5af Fixed focus events triggered by window frame. 2014-04-02 13:30:23 +02:00
Camilla Berglund
2889f484f4 Formatting. 2014-03-30 12:32:17 +02:00
Camilla Berglund
0c58df06d5 Added support for _NET_REQUEST_FRAME_EXTENTS. 2014-03-30 12:28:01 +02:00
Camilla Berglund
eb3f75e03e Added glfwGetWindowFrameSize. 2014-03-30 10:57:32 +02:00
Camilla Berglund
7ac3d85126 Formatting. 2014-03-20 11:30:27 +01:00
Camilla Berglund
8fa9cc0de3 Added GLFWimage struct. 2014-03-20 11:30:27 +01:00
Camilla Berglund
608de57358 Cleanup. 2014-03-20 11:30:27 +01:00
urraka
40c04a7565 Added support for custom system cursors.
This adds 3 functions to the GLFW API: glfwCreateCursor,
glfwDestroyCursor and glfwSetCursor.
2014-03-20 11:30:27 +01:00
Camilla Berglund
2200f87492 Fixed glfwDestroyWindow not flushing the output buffer. 2014-03-12 20:53:57 +01:00
Camilla Berglund
a859c10fa1 Formatting. 2014-03-10 13:55:23 +01:00
Camilla Berglund
1ccc23268c Added glfwPostEmptyEvent. 2014-03-09 17:55:55 +01:00
Camilla Berglund
9309f75704 Fixed missing ICCCM protocol message checks. 2014-03-09 13:24:37 +01:00
Camilla Berglund
6d8e78cc95 Further separation of window and context.
The context related parts of _GLFWwndconfig have been moved to
_GLFWctxconfig and given better names.  Window hint and attribute
members have been renamed to match.
2014-03-06 20:07:58 +01:00
Camilla Berglund
2ec0acc972 Formatting (removed tab characters). 2014-02-13 13:30:15 +01:00
Camilla Berglund
9cc8107c6b Fixed X11 drop support.
This was broken by 8ae063bb1b.

Fixes #224.
2014-02-10 14:19:35 +01:00
Camilla Berglund
58db8622bd Cleanup. 2014-01-22 20:15:27 +01:00
Camilla Berglund
611006af18 Updated API version in comment headers. 2014-01-22 01:32:00 +01:00
Camilla Berglund
8f349e84ae Cleaned up drop callback design. 2014-01-21 18:23:25 +01:00
Camilla Berglund
cd54dc84c4 Fixed off-by-one error. 2014-01-21 15:25:49 +01:00
Camilla Berglund
ad9f880d61 Fixed broken calls to memset. 2014-01-21 15:25:49 +01:00
Camilla Berglund
8ae063bb1b Cleanup. 2014-01-21 15:25:49 +01:00
arturo
89d0723ba3 Initial drag and drop support. 2014-01-21 15:25:49 +01:00
Camilla Berglund
e0a26aa62f Cursor mode cleanup. 2014-01-15 14:23:34 +01:00
Camilla Berglund
54b8d0d3c8 Moved to XGrabPointer for cursor hiding. 2014-01-15 02:43:14 +01:00
Camilla Berglund
61ccb034d0 Formatting. 2013-12-09 00:27:36 +01:00
Camilla Berglund
50c694fab4 Added errors for override redirect iconification. 2013-12-08 14:59:52 +01:00
Camilla Berglund
823cc38ac1 Cleanup. 2013-11-20 20:04:00 +01:00
Camilla Berglund
5ef4f77fb5 Added support for _NET_WM_BYPASS_COMPOSITOR. 2013-11-20 19:59:17 +01:00
Camilla Berglund
76afd41727 Added X error reporting to window creation failure. 2013-11-10 14:12:07 +01:00
Camilla Berglund
adbd52ba27 Formatted todos and notes. 2013-11-10 14:03:07 +01:00
Camilla Berglund
b9d4875f3e Improved documentation of hacks. 2013-11-10 13:56:27 +01:00
Camilla Berglund
1cbd06c8a2 Fixed hidden window positioning on Metacity. 2013-11-03 13:51:34 +01:00
Camilla Berglund
8194f1e2ae Added hack for setting WM_CLASS. 2013-10-04 13:41:19 +02:00
Camilla Berglund
57b8be1c24 Added support for mouse buttons 4-n. 2013-09-08 16:09:23 +02:00
Camilla Berglund
9c20737b60 Allowed characters regardless of modifier keys. 2013-08-19 13:08:35 +02:00
Camilla Berglund
a3ca7ad93a Removed cursor centering XFlush hack. 2013-08-06 20:48:31 +02:00
arturo
a6a5fa937c Fixed window position being incorrect on some WMs. 2013-07-30 15:52:47 +02:00
Camilla Berglund
3cfc400cf9 Simplified source file comment headers. 2013-07-30 14:46:52 +02:00
siavash
b12c973922 Moved X11 character translation failure test. 2013-07-15 18:28:09 +02:00
Camilla Berglund
dcb4d8ee32 Fixed possible X11 screensaver race condition. 2013-07-04 17:52:15 +02:00
Camilla Berglund
933005a022 Corrected comment. 2013-06-19 13:49:51 +02:00
Camilla Berglund
3be3f58a92 Cleanup. 2013-06-19 13:47:19 +02:00
Camilla Berglund
e11a5e3973 Fixed resizing for full screen override redirect. 2013-06-19 13:47:19 +02:00
Camilla Berglund
a7ff236b32 Fixed duplicate events being reported. 2013-06-16 18:29:46 +02:00
Camilla Berglund
11615fcaf2 Added scancode to key callback. 2013-06-05 23:46:09 +02:00
Camilla Berglund
3498163da1 Separated window and framebuffer sizes. 2013-06-04 01:51:54 +02:00
Camilla Berglund
2b1192a3dd Formatting. 2013-05-31 00:09:37 +02:00
Camilla Berglund
ffc55c3509 Removed broken initial cursor pos kluges. 2013-05-26 17:19:13 +02:00
Noel Cower
eff85f9500 Added super modifier bit.
Edited during merge.
2013-05-23 14:21:35 +02:00
Camilla Berglund
3bcffba24a Renamed control modifier bit to match key token. 2013-05-23 14:21:35 +02:00
Camilla Berglund
6df692b61e Renamed CURSOR_CAPTURED to CURSOR_DISABLED. 2013-05-22 21:56:14 +02:00
Camilla Berglund
2d1b835711 Added a conservative set of key modifiers. 2013-05-22 21:56:14 +02:00
Camilla Berglund
67e7d8ca5f Fixed window position for EWMH full screen.
Also added flushing after setting window position and size.
2013-05-19 09:08:42 +02:00
Camilla Berglund
be28914732 Added setting of _NET_WM_PID. 2013-05-02 16:31:27 +02:00
Camilla Berglund
161c73ea66 Removed centered flag. 2013-05-01 16:34:11 +02:00
Camilla Berglund
aa3364a73e Fixed jitter in captured cursor mode. 2013-04-30 15:50:01 +02:00
Camilla Berglund
affb62514a Cleanup of clipboard manager work. 2013-04-29 21:06:54 +02:00
Camilla Berglund
179194a687 Added support for clipboard manager. 2013-04-29 13:16:56 +02:00
Camilla Berglund
26756b9ae1 Moved to use X11 context manager. 2013-04-15 02:24:43 +02:00
Camilla Berglund
32273c5d96 Formatting. 2013-04-14 16:33:20 +02:00
Camilla Berglund
49db3b2a9e Formatting. 2013-04-08 15:24:24 +02:00
NathanSweet
8e2e7b37a1 Undecorated window support on win/mac/linux. 2013-04-08 15:24:24 +02:00
Camilla Berglund
953b7f52e5 No characters from Ctrl and Alt chords.
This makes the behavior on X11 consistent with Win32 and Cocoa.
2013-04-04 18:17:41 +02:00
Camilla Berglund
f41d85a209 Added initial XInput2 cursor motion. 2013-04-04 16:48:58 +02:00
Camilla Berglund
129e94da2e Changed cursor pos to double. 2013-04-04 16:29:40 +02:00
Camilla Berglund
7b3783abe2 Made glfwGetMonitorPos immediate. 2013-02-20 18:15:03 +01:00
Camilla Berglund
719b60dd2b Added macros for library initialization check. 2013-02-20 18:15:03 +01:00
Camilla Berglund
d97dddc8c4 Simplified function comment headers. 2013-02-11 19:43:22 +01:00
Camilla Berglund
7c1932381b Reintroduced glfwGetWindowPos, glfwSetWindowPos. 2013-02-11 19:43:08 +01:00
Camilla Berglund
c17a7dd464 Made glfwGetWindowSize immediate.
Conflicts:
	src/internal.h
2013-02-04 12:33:09 +01:00
Camilla Berglund
954d6383ee RandR monitor work.
Moved to CRTC plus usable output for native representation of monitors.
Moved to CRTCs for mode setting and simplified mode setting interface.
2013-02-01 18:03:02 +01:00
Camilla Berglund
e209ac7a42 Fixed X11 clipboard regressions, event waiting. 2013-01-31 00:26:37 +01:00
Camilla Berglund
f3e39ce680 Cleanup of clipboard and string atoms. 2013-01-29 02:45:08 +01:00
Camilla Berglund
82b8dd5040 Moved to XAnyEvent for mapping to _GLFWwindows. 2013-01-28 20:06:37 +01:00
Camilla Berglund
2d43238dc5 Added comment on use of select(1). 2013-01-28 20:06:37 +01:00
Camilla Berglund
3e78570a31 Removed duplicate documentation.
The public, platform, native, event and utility functions are already
documented in-source.  Having duplicate documentation inevitably means
having them contradict one another.  Furthermore, most of the function
descriptions simply repeated the name of the function.
2013-01-25 01:25:40 +01:00
Camilla Berglund
b1ff42b7bb Moved to WM_STATE for iconify events. 2013-01-25 00:44:26 +01:00
Camilla Berglund
e820284015 Renamed WM atom struct members for clarity. 2013-01-25 00:44:19 +01:00
Camilla Berglund
ca07a067a8 Moved WM_DELETE_WINDOW retrieval to init. 2013-01-25 00:44:08 +01:00
Camilla Berglund
121ce7fbd6 Renamed X11 keysym to Unicode conversion file. 2013-01-17 18:59:35 +01:00
Camilla Berglund
cc45a9e53d Updated native API and merged into related files. 2013-01-15 22:38:14 +01:00
Camilla Berglund
9726597794 X11 event comment cleanup. 2013-01-12 21:11:41 +01:00
Camilla Berglund
fcb96967ba Replaced repeat kluge with detectable auto repeat. 2013-01-12 21:01:44 +01:00
Camilla Berglund
6a4c175816 Made client-side RandR and Xf86VidMode required. 2013-01-12 19:23:53 +01:00
Camilla Berglund
baf3feb86d Removed panning hack only needed by Xxf86vm. 2013-01-04 07:12:15 +01:00
Camilla Berglund
68098f44db Cleanup. 2013-01-04 07:11:30 +01:00
Camilla Berglund
dad152b3f6 Removed broken RandR event selection. 2013-01-03 21:07:11 +01:00
Camilla Berglund
46c1e4028f Begun integrating mode setting and monitor API. 2013-01-03 17:56:59 +01:00
Camilla Berglund
b72a97d531 Renamed global struct and substructs.
Renamed _glfwLibrary to _glfw and made all substructs lower-case, making
global variable names easier to read and type.  Partially inspired by the
internal naming conventions of glwt.
2013-01-02 01:44:57 +01:00