Commit Graph

8379 Commits

Author SHA1 Message Date
Giovanni Campagna
cd1749a2a5 evdev: switch to libevdev for fetching the events
libevdev is a library that wraps the evdev subsystem, with
the ability to synchronize the state after a SYN_DROPPED event
from the kernel.

https://bugzilla.gnome.org/show_bug.cgi?id=706494
2013-09-09 13:24:19 +02:00
Giovanni Campagna
19536c8835 evdev: sync the keyboard state when releasing and reclaiming devices
When we release a device, we lose all the events after that point,
so our state can become stale. Similarly, we need to sync the
state with the effectively pressed keys when we reclaim.
This ensures that modifier keys don't get stuck when switching
VTs using a keybinding.

https://bugzilla.gnome.org/show_bug.cgi?id=706494
2013-09-09 13:18:27 +02:00
Giovanni Campagna
59f1e531f9 ClutterEvent: add API to query the full keyboard state when the event was generated
When talking to other applications or serializing the modifier
state (and in particular when implementing a wayland compositor),
the effective modifier state alone is not sufficient, one needs
to know the base, latched and locked modifiers.

Previously one could do with backend specific functionality
such as clutter_device_manager_evdev_get_xkb_state(), but the
problem is that the internal data structures are updated as
soon as the events are fetched from the upstream source, but
the events are reported to the application some time later,
and thus the two can get out of sync.
This way, on the other hand, the information is cached in the
event, and provided to the application with the value that
was current when the event was generated.

https://bugzilla.gnome.org/show_bug.cgi?id=706494
2013-09-09 13:18:23 +02:00
Giovanni Campagna
dd940a71b1 evdev: update the state of the core pointer and core keyboard for all events
These two devices are logically tied togheter, and their state
should always be the same. Also, we need to update them after
the event is queued, as the current modifier state (as opposed to the
modifier mask in the event) should include also the effect of the last
key press/release.

https://bugzilla.gnome.org/show_bug.cgi?id=706494
2013-09-09 13:18:23 +02:00
Giovanni Campagna
0db9075562 ClutterInputDevice: add new API for querying the modifier state
This way, the full state of the device is exposed.

https://bugzilla.gnome.org/show_bug.cgi?id=706494
2013-09-09 13:18:19 +02:00
Giovanni Campagna
b73f513091 evdev: use monotonic times for the events
The monotonic clock is what X uses too, so this way the timestamps
can be compared.

https://bugzilla.gnome.org/show_bug.cgi?id=706543
2013-09-09 12:02:25 +02:00
Giovanni Campagna
aef3d0022c evdev: add callback to constrain the pointer position
Add a new callback that is called prior to emitting pointer
motion events and that can modify the new pointer position.
The main purpose is allowing multiscreen apps to prevent the
pointer for entering the dead area that exists when the screens
are not the same size, but it could also used to implement
pointer barriers.
A callback is needed to make sure that the hook is called early
enough and the Clutter state is always consistent.

https://bugzilla.gnome.org/show_bug.cgi?id=706652
2013-09-09 12:00:52 +02:00
Yuri Myasoedov
89d09a07d3 Updated Russian translation 2013-09-06 13:22:45 +04:00
Jorge Pérez Pérez
b4d95ee3e8 Added Aragonese translation 2013-09-05 00:02:38 +02:00
Мирослав Николић
7d5b4d69e7 Updated Serbian translation 2013-09-03 09:15:10 +02:00
Emmanuele Bassi
c141bda460 Post-release version bump to 1.15.93 2013-09-02 23:59:14 +01:00
Emmanuele Bassi
d38e7127fe Release Clutter 1.15.92 (snapshot) 2013-09-02 23:40:41 +01:00
Emmanuele Bassi
e224415a47 Revert "clutter-offscreen-effect: Allocate the cogl texture directly"
This reverts commit 180e7d74f3.

The lazy texture allocation is gone in Cogl 1.15.9.
2013-09-02 17:06:49 +01:00
Emmanuele Bassi
8f88ada0c6 build: Depend on Cogl 1.15.9
The laxy texture allocation has been removed from Cogl 1.15, so we need
to depend on the new developers snapshot.
2013-09-02 17:06:03 +01:00
Gil Forcada
ce4d5fc8cd [l10n] Update Catalan translation 2013-08-31 22:53:04 +02:00
Chun-wei Fan
daaec724dc Clean up Visual Studio Build Files
-Combine entries in the property sheets and make it a bit more flexible,
 and drop some redundant items
-Use Custom Build Rules for generating enumeration and marshalling sources,
 and the .def file so that they can be wiped off when a "clean" is
 requested, and regenerate automatically when the templates/.symbols
 files are updated.
-Improve consistency by using ApiVersion rather than ClutterApiVersion
 with the Visual Studio project for other components of the Clutter/GTK+
 stack
-Get rid of unneeded configs in the "install" project
2013-08-29 17:31:42 +08:00
Chun-wei Fan
cb3a4ac1a2 Visual C++ Builds: Update Header "Installation" 2013-08-29 10:50:08 +08:00
Aurimas Černius
6083ec112f Updated Lithuanian translation 2013-08-28 22:59:00 +03:00
Ján Kyselica
cb00652fbb Added slovak translation 2013-08-27 19:13:53 +02:00
Jasper St. Pierre
8db571ff54 tests: Fix compiler warnings 2013-08-27 08:47:16 -04:00
Alexandre Franke
90b696a4d2 Update French translation 2013-08-22 14:22:31 +02:00
Jasper St. Pierre
05f56affe1 box-layout: Fix RTL layout swapping with non-zero container offsets
https://bugzilla.gnome.org/show_bug.cgi?id=706450
2013-08-21 10:13:24 -04:00
Piotr Drąg
fe2aa9237a Updated Polish translation 2013-08-20 22:14:33 +02:00
Emmanuele Bassi
f3f0dff16a Revert "Depend on the cogl-path-1.0 pkg-config file"
This reverts commit b6fc4a810f.

It seems that the Cogl/Cogl-Path split was not meant to break API/ABI,
so we should not check for a new dependency. Let's revert the commit,
and wait for Cogl to get fixed instead.
2013-08-20 11:26:11 +01:00
Emmanuele Bassi
b6fc4a810f Depend on the cogl-path-1.0 pkg-config file
The CoglPath API has been split from the main Cogl SO, and we need to
add it as a dependency.

https://bugzilla.gnome.org/show_bug.cgi?id=706367
2013-08-20 10:54:52 +01:00
Emmanuele Bassi
6a4a8b584b Post-release version bump to 1.15.91 2013-08-20 00:21:40 +01:00
Emmanuele Bassi
ee6be96a3b Release Clutter 1.15.90 2013-08-20 00:09:28 +01:00
Emmanuele Bassi
4698e791bf Update exported symbols 2013-08-20 00:09:28 +01:00
Emmanuele Bassi
bf1997c4ef paint-nodes: Have a fallback buffer for the root node
If we don't get passed a CoglFramebuffer when creating the root paint
node then we ask Cogl to give us the current draw buffer.

This allows the text-cache conformance test to pass, but it'll require
further investigation.
2013-08-20 00:01:45 +01:00
Florian Müllner
c14bd84eef table-layout: Fix default values for expand/fill child properties
Currently the default values according to their param spec don't
match the actually used defaults, so update the former to reflect
the actual behavior.

https://bugzilla.gnome.org/show_bug.cgi?id=703809
2013-08-19 23:37:53 +01:00
Florian Müllner
8e850ff3e4 box-layout: Fix (legacy) expand/fill properties
Whether a child should receive extra space should be determined
by the expand property, not [xy]_fill (which just determine how
additional space should be used). The behavior is already correct
when using the ClutterActor:[xy]_expand properties, but needs
fixing for the corresponding ClutterBoxLayoutChild property.

https://bugzilla.gnome.org/show_bug.cgi?id=703809
2013-08-19 23:37:46 +01:00
Florian Müllner
40a1903db6 bin-layout: Fix offsets
Just as BoxLayout, BinLayout uses an odd interpretation of the box
passed into allocate(): to define a child area of (w x h) starting at
(x, y), callers need to pass a box of (x, 2 * x + w, y, 2 * y + h).
This behavior is just confusing, change it to use the full box for
child allocations.

https://bugzilla.gnome.org/show_bug.cgi?id=703809
2013-08-19 23:37:43 +01:00
Florian Müllner
5dd2dcf14f box-layout: Fix child offsets
Currently, BoxLayout interprets the box passed into allocate() in
a fairly peculiar way:
 - in the direction of the box, all space between [xy]1 and [xy]2
   is distributed among children (e.g. children occupy the entire
   width/height of the box, offset by [xy]1)
 - in the opposite direction, expanded children receive space
   between [xy]1 and the height/width of the box (e.g. children
   occupy the width/height of the box minus [xy]1, offset by [xy]1)
The second behavior doesn't make much sense, so adjust it to interpret
the box parameter in the same way as the first one.

https://bugzilla.gnome.org/show_bug.cgi?id=703809
2013-08-19 23:37:41 +01:00
Florian Müllner
5bab9a8655 actor: Minor cleanup
In clutter_allocate_align_fill(), x2/y2 may be set twice for no
particular reason; save a couple of lines by not doing this.

https://bugzilla.gnome.org/show_bug.cgi?id=703809
2013-08-19 23:37:38 +01:00
Emmanuele Bassi
a3b093d9c8 cookbook/examples: Disable Cogl deprecation warnings
We'll have to port the cookbook to a decent version of Clutter and Cogl
anyway.
2013-08-19 23:31:54 +01:00
Emmanuele Bassi
0d7bbc747f docs: Fix gtk-doc warnings 2013-08-19 23:30:09 +01:00
Emmanuele Bassi
0b6498d655 Use paint nodes to set up the stage
This allows to set a Content on a stage, and consolidates the paint
code where it belongs.

https://bugzilla.gnome.org/show_bug.cgi?id=704625
2013-08-19 23:23:45 +01:00
Emmanuele Bassi
1d9e264051 paint-nodes: Remove modelview from ClutterRootNode
It's pointless, since RootNode sits at the top and there's no modelview
to be set.

https://bugzilla.gnome.org/show_bug.cgi?id=704625
2013-08-19 23:23:43 +01:00
Lionel Landwerlin
371b12c4af tests: add an interactive test for rotate and zoom actions
https://bugzilla.gnome.org/show_bug.cgi?id=698836
2013-08-19 23:23:08 +01:00
Emmanuele Bassi
700baccc7c build: Generate gitignore on BUILT_SOURCES
The test-unit-names.h header file is generated unconditionally, so we
need to generate the gitignore file that references it along with the
header.
2013-08-19 23:22:38 +01:00
Emmanuele Bassi
97bf60f6ec Show if we are installing the tests in the configure summary 2013-08-19 23:22:38 +01:00
Emmanuele Bassi
fa72540246 build: Ensure tests are built only on make check
Tests should only be enabled when we want to run them, or when we are
generating a tarball.
2013-08-19 23:22:38 +01:00
Emmanuele Bassi
b50e1c3b62 actor: Do not set remove-on-complete on implicit transitions
The implicitly created transitions are removed when complete by the
implicit transition machinery. The remove-on-complete hint is for
user-provided transitions.

https://bugzilla.gnome.org/show_bug.cgi?id=705739
2013-08-19 23:22:38 +01:00
Emmanuele Bassi
edf00747ef docs: Use the correct signal name
ClutterTransition:remove-on-complete uses the ClutterTimeline::stopped
signal, as it's the signal that tells us that the timeline's duration
has fully elapsed.
2013-08-19 23:22:38 +01:00
Matej Urbančič
8abd2baeaa Updated Slovenian translation 2013-08-19 23:16:58 +02:00
Matej Urbančič
4d03d95e41 Updated Slovenian translation 2013-08-19 23:14:29 +02:00
Giovanni Campagna
0e519e2b3b evdev: implement wheel events
Mouse wheel events come as EV_REL/REL_WHEEL, and we can convert
them to clutter events on the assumption that scrolling with
the wheel is always vertical.

https://bugzilla.gnome.org/show_bug.cgi?id=705710
2013-08-14 16:50:45 +02:00
Giovanni Campagna
7b780b0c38 evdev: don't update xkb state for autorepeated keys
xkb_state_update_key() needs to be called only on state transitions,
otherwise the state tracking gets confused and locks certain modifiers
forever.

https://bugzilla.gnome.org/show_bug.cgi?id=705710
2013-08-13 18:11:12 +02:00
Giovanni Campagna
8c358f18b1 evdev: allow hooking directly into libxkbcommon
A wayland compositor needs to have more keyboard state than
ClutterModifierState exposes, so it makes sense for it to use
xkb_state directly. Also, it makes sense for it to provide
it's own keymap, to ensure a consistent view between the compositor
and the wayland clients.

https://bugzilla.gnome.org/show_bug.cgi?id=705710
2013-08-13 17:51:33 +02:00
Giovanni Campagna
786532213b evdev: add master / slave device handling
All evdev devices are slave devices, which means that xkb state
and pointer position must be shared by emulating a core keyboard
and a core pointer. Also, we must make sure to add all modifier
state (keyboard and button) to our events.

https://bugzilla.gnome.org/show_bug.cgi?id=705710
2013-08-13 17:42:43 +02:00