Age | Commit message (Collapse) | Author | Files | Lines |
|
Instead of using a uint32_t for state everywhere (except on the wire,
where that's still the call signature), use the new
wl_keyboard_key_state enum, and explicit comparisons.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
Instead of using a uint32_t for state everywhere (except on the wire,
where that's still the call signature), use the new
wl_pointer_button_state enum, and explicit comparisons.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
Took me a second to work out that the 272 was actually BTN_LEFT, as keys
and buttons share a namespace in evdev.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
Simply pushes the updated LEDs through to all keyboard attached to the
seat.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
Does what it says on the box: lists whether or not the device supports
key, absolute, relative or touch classes.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
Since that's what it actually is, rather than a description of the
device as such.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
Rather than using #defines.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
Similar to how we deal with modifiers, also add LED handling to the core
input code, with a callout into the backends to update them when they
change.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
When we update the modifier_state used for Weston bindings, derive this
from the XKB modifier state, rather than a hardcoded mapping of physical
keys to modifier state.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
As we need to keep a separate state for every seat (i.e. keyboard
interface) rather than a compositor-global state.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
To avoid any possible collision between the disparate XKB and Weston
modifier namespaces.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
This event lets the compositor inform clients of the canonical keyboard
modifier/group state. Make sure we send it at appropriate moments from
the compositor, and listen for it in clients as well.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
As well as just updating Weston's internal modifier_state, also update
our xkb_state object, in preparation for serialising modifier values to
clients. This also makes update_modifier_state return 1 if the
modifier/group state has changed, or 0 if not.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
If we get a new wl_pointer or wl_keyboard listener from the client
currently owning the focus resource, issue another
wl_{pointer,keyboard}_set_focus so the focus_resource can be updated and
the client can receive an enter event.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
|
The Android backend provides basic EGL/GLES2 graphics, where everything
is always composited. Overlays are not used. Input is stubbed, therefore
there is no input yet.
This adds the first C++ source file into Weston compositor. The Android
gralloc and fb HAL glue code to the Android EGL library is in C++, and
there is no way to access it from plain C. We have a simple wrapper to
the required C++ class API. Android forces the C++ file name extension
to .cpp.
The android backend is compiled by default. However, all Android
specific calls are protected with #ifdef ANDROID, so it will build also
without Android headers. The binary produced without the Android build
system is useless, but allows build-testing generic Weston changes.
Therefore the android backend is not installed.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
|
|
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
|
|
Android does not have EPOLL_CLOEXEC, so add a fallback.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
|
|
Some systems may not have execinfo.h. Add a configure test for it, and
if it is not found, make the backtrace() call a no-operation.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
|
|
Android does not have SOCK_CLOEXEC, so implement a wrapper that falls
back.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
|
|
Here we create a new client/compositor interface in weston to allow
clients to report their x/y cursor position to the compositor. These
values are then used to center the zoom area on this point. This
is useful for everyone, especially people who are visually impaired.
|
|
As per ICCCM 4.1.4 we're supposed to withdraw the window when we see
the real unmap or the synthetic unmap, whichever comes first. The
synthetic unmap may come after the window has been destroyed, so let's
just only handle the real unmap.
|
|
Drop from 8% in the profile to 1.8%.
|
|
Thanks to Jonas Kulla <nyocurio@googlemail.com> for spotting it.
|
|
xprop and gtk+ dnd is now working.
|
|
|
|
|
|
|
|
We don't need expose events. All windows are redirected and we know
exactly when we need to repaint them.
|
|
GTK+ sends an unmap_notify to the root window when a toplevel GTK+ window
gets unmapped. That may be a GTK+ bug, but we should just ignore events
from XSendEvent.
|
|
The frame window and the wayland surface needs to go away when then
X window is unmapped, not when it's destroyed.
|
|
|
|
We get all that information through SUBSTRUCTURE_NOTIFY on the parent
windows.
|
|
If a client sends another map request before the server has seen our
reply to the first map request event, we might get a map request for an
already mapped window. Just ignore that.
|
|
We just print properties when they change now instead of dumping all
properties whenever we re-read them. Also, make the property output a
little more concise.
|
|
|
|
|
|
|
|
|
|
Default to 30fps instead of crashing if we don't get a framerate on the
command line.
|
|
|
|
Add option --self-only to dnd client. If this options is passed, the
drag will be started with no data source so that no drag and drop
events are sent to other clients.
|
|
This adds the actual glyphs/utf-8 characters to the comments of CS_SPECIAL
(DEC special graphics set). They all work on my system with "Monospace" or
"Bitstream" font. But keep the mnemonics so if the UTF8 characters are not
displayed correctly, the comments are still readable.
I don't know if gcc actually reads data as UTF-8 or if C code actually
allows all UTF8 characters. However, unless it reads as "*/" in ASCII, it
shouldn't matter inside of comments.
Anyway, it compiles fine with gcc-4.7.0/amd64 here.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
|
|
The DEC special graphics set defines entries 0x6f to 0x73 to be:
Horizontal Scan Line 1
Horizontal Scan Line 3
Horizontal Scan Line 5
Horizontal Scan Line 7
Horizontal Scan Line 9
However, the first Unicode drafts included only Scan-Line 5. Since
Unicode-3.2 the other Scan-Lines were added and are available in most
Unicode fonts now.
The codes are listed here:
http://www.fileformat.info/info/unicode/block/miscellaneous_technical/images.htm?start=9089
Or more precisely:
Scan 1: http://www.fileformat.info/info/unicode/char/23ba/index.htm
Scan 3: http://www.fileformat.info/info/unicode/char/23bb/index.htm
Scan 7: http://www.fileformat.info/info/unicode/char/23bc/index.htm
Scan 9: http://www.fileformat.info/info/unicode/char/23bd/index.htm
Scan 5 is kept the same as before as it wasn't added separately and was
already correct before.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
|
|
This array is allocated in create_cursors(). It should be freed in
destroy_cursors().
|
|
|
|
|
|
If cairo-gl is used, display_create_surface() will create an
wl_egl_window for each surface and this will result in errors if this
surface is used as a source. Also, one can't get a wl_buffer for such
a surface wich led to crashes when trying to do so for the drag icon.
This patch works around both problems by forcing the item and drag icon
surfaces to use shm.
|
|
This avoids confusion with the pointer devices (struct wl_pointer).
|
|
libwayland-cursor does not provide enum wl_cursor_type anymore so this
brings back enum pointer_type.
This partially revers commit 1042dc15e0ca69a4d8d4d23b862f1e3d3c8e054f.
|
|
If the MODULEDIR string contains '%', then
snprintf(path, sizeof(path), MODULEDIR "/%s", name);
does not do what you want.
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
|