Commit Graph

8173 Commits

Author SHA1 Message Date
Lionel Landwerlin
da498fdb9a actor: fix allocate_align_fill() to maintain the child preferred size
When trying to clamp to pixel a box that is exactly in between 2
pixels, the clutter_actor_box_clamp_to_pixel() function changes the
size of the box.

Here is an example :

ClutterActorBox box = { 10.5, 10, 20.5, 20};

g_message ("%fx%f -> %fx%f", box.x1, box.y1, box.x2, box.y2);
clutter_actor_box_clamp_to_pixel (&box);
g_message ("%fx%f -> %fx%f", box.x1, box.y1, box.x2, box.y2);

Here is what you get :

** Message: 10.500000x10.000000 -> 20.500000x20.000000
** Message: 10.000000x10.000000 -> 21.000000x20.000000

That is because of the properties of the ceilf and floorf function
used to do the clamping.

For example, ceil(0.5) is 1.0, and ceil(-0.5) is 0.0.
And, floor(0.5) is 0.0, and floor(-0.5) is -1.0.

To work around that problem this patch retains the distance between x
and y coordinates and apply that difference before calling ceilf() on
x2 and y2.

https://bugzilla.gnome.org/show_bug.cgi?id=689073
2012-11-26 11:22:24 +00:00
Wolfgang Stöggl
c49bfa1998 Umlaut fixed 2012-11-06 19:59:32 +01:00
Wolfgang Stöggl
5dee7e6c98 [l10n] Updated German translation 2012-11-06 19:56:01 +01:00
Guillaume Desmottes
2be88b34b2 Don't annotate with (transfer full) constructors of GInitiallyUnowned subclasses
https://bugzilla.gnome.org/show_bug.cgi?id=686776
2012-10-24 13:17:57 +02:00
Piotr Drąg
888a560c93 Updated POTFILES.in 2012-10-20 19:09:27 +02:00
OKANO Takayoshi
c2b7ba7815 [l10n] Update Japanese translation 2012-10-20 02:12:24 +09:00
Emanuele Aina
ccdbd36234 gesture-action: Add clutter_gesture_action_get_last_event()
Export the last event received for each touch point in its entirety,
instead of duplicating ClutterEvent accessors one at a time.

examples/pan-action.c has been updated to show the type of the event
that's causing the panning.

https://bugzilla.gnome.org/show_bug.cgi?id=685737
2012-10-19 14:13:17 +02:00
Emanuele Aina
61f2d751d0 tap-action: Add TapAction, to handle mouse/touch tapping
TapAction is a GestureAction-subclass that handles clicks and
tap gestures. It is meant to provide a replacement for ClickAction
using GestureAction:

• it handles events trasparently without capturing them, so that it
  can coexists with other GestureActions;

• the ::tap signal is not emitted if the drag threshold is exceeded;

• building upon GestureAction the amount of code is greatly reduced.

TapAction provides:

• tap signal, notifying users when a tap has been performed.

The image-content example program has been updated replacing its
ClickAction usage with TapAction.

https://bugzilla.gnome.org/show_bug.cgi?id=683948
2012-10-19 13:41:31 +02:00
Emanuele Aina
bd1febb2ea gesture-action: Unregister all tracked points on cancel
Ensure that when cancelling a gesture, either because a callback
has returned FALSE or because clutter_gesture_action_cancel() has
been called, the array tracking touch points is emptied and a whole
new set of touch points is needed before restarting the gesture.

https://bugzilla.gnome.org/show_bug.cgi?id=685221
2012-10-19 13:41:25 +02:00
Emanuele Aina
abcf1d589f gesture-action: Let subclasses override the GestureTriggerEdge handling
Let gesture subclasses override how the drag threshold should
be handled:

• CLUTTER_GESTURE_TRIGGER_NONE tells GestureAction that the gesture
  must begin immediately and there's no drag limit that will cause
  its cancellation;
• CLUTTER_GESTURE_TRIGGER_AFTER is the default GestureAction behaviour,
  where it needs to wait until the drag threshold has been exceeded
  before considering the gesture valid;
• CLUTTER_GESTURE_TRIGGER_BEFORE will make GestureAction cancel
  the gesture once the drag exceed the configured threshold.

For example, ZoomAction and RotateAction could set
CLUTTER_GESTURE_TRIGGER_NONE since the use of two fingers makes the
begin of the action more self-evident, while an hypothetical Tap
gesture may use CLUTTER_GESTURE_TRIGGER_BEFORE to cancel the tap if
the pointer moves too much.

https://bugzilla.gnome.org/show_bug.cgi?id=685028
2012-10-19 11:27:35 +02:00
Rob Bradford
cbab0a62ad wayland: Port to new protocol 2012-10-12 18:54:25 +01:00
Rob Bradford
4316592c2f wayland: Add wayland-client to pkg-config flags 2012-10-12 18:42:55 +01:00
Rob Bradford
eb61e372b0 wayland: Initialise the repeat key to the expected default value
The code for handling key repeats (and in particular stopping on focus loss)
assumes that the repeat key is set to XKB_KEYCODE_INVALID in the default case.
2012-10-12 15:23:03 +01:00
Rob Bradford
fce43c420e wayland: Use wl_cursor_theme to provide a buffer for the Wayland cursor
This change switches to the new mechanism for loading a cursor into a buffer.
It no longer relies on having a PNG stored in a known location and instead
loads from the Wayland cursor theme.

Signed-off-by: Rob Bradford <rob@linux.intel.com>
2012-10-12 15:12:55 +01:00
Daniel Stone
d4c7f2ecf4 abicheck: Add CLUTTER_WINDOWING_WAYLAND
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-10-12 15:12:55 +01:00
Daniel Stone
dab6b3916a clutter.symbols: Update for Wayland changes
make check now passes under Wayland.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-10-12 15:12:55 +01:00
Daniel Stone
a33d84234f Hide clutter_input_device_wayland and clutter_stage_wayland types
By prefixing them with an underscore, so they don't get exported as part
of public ABI.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-10-12 15:12:55 +01:00
Daniel Stone
978202aa49 Wayland: Set default font DPI to 96
Otherwise the units test fails, since the default DPI is set to -1.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-10-12 15:12:55 +01:00
Daniel Stone
1c7a740385 Wayland: Add key repeat
Add support for repeating keys to the Wayland input backend.
Unfortunately the repeat delay/interval is hardcoded into the Clutter
backend, as Wayland doesn't yet tell clients what the global values
should be.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-10-12 15:12:55 +01:00
Daniel Stone
8f4e39b6d7 Port to new Wayland and xkbcommon APIs
For Wayland, this is mostly the input protocol having changed, although
there's also the SHM pool API, the cursor API, as well as fullscreen and
ping.

Also port to the new (months-old) xkbcommon API, as used by Weston 0.95.
This involves having xkbcommon manage the state for us, where
appropriate.  Fans of multi-layout keyboards (or just caps lock) will no
doubt appreciate these changes.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-10-12 15:12:55 +01:00
Daniel Stone
a158d66abb EGL: Include cogl-egl.h for prototypes
Looks like we need to include this directly, but also need to include
cogl/cogl.h to get COGL_HAS_EGL_SUPPORT, since cogl-egl.h doesn't
include cogl-defines.h first.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-10-12 15:12:55 +01:00
Daniel Stone
13d889814c test: Only run X11-specific code when using X11
The X11-specific windowing checks were hidden behind an #ifdef, however
if the tests were run under Wayland, they would execute uncondionally
and cause assertion failures.  Fix this by also hiding them behind a
check that the current backend is indeed X11.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-10-12 15:12:55 +01:00
Christian Kirbach
4731a3c47c Updated German translation 2012-10-11 03:55:54 +02:00
Emanuele Aina
1eaa577883 gesture-action: Make _cancel() callable after the gesture has started
https://bugzilla.gnome.org/show_bug.cgi?id=685554
2012-10-10 20:50:29 +02:00
Emanuele Aina
318d0d5965 events: Deliver touch events that continue off stage (soft grab)
If a button press happen on stage and the pointer is moved outside
the stage while holding the mouse button, the motion and release
events are still delivered to actors. Do the same X11 soft grab
emulation for touch events.

https://bugzilla.gnome.org/show_bug.cgi?id=685589
2012-10-10 20:34:51 +02:00
Emanuele Aina
cb4620d14f version: Add 1.14 version macros
https://bugzilla.gnome.org/show_bug.cgi?id=685028
2012-10-10 20:27:44 +02:00
Tomeu Vizoso
36c2343001 actor: Place coordinate of the pivot point in the right pointer 2012-10-08 11:08:20 +02:00
Emmanuele Bassi
834c18c3fd Post-branch version bump to 1.13.1 2012-10-05 17:37:48 +01:00
Emmanuele Bassi
0da0e5122e main: Do not release the lock if it hasn't been acquired
On various systems, trying to release a mutex that hasn't been acquired
will result in a run-time error.

In order to avoid this, we trylock() the Big Clutter Lock™ and
immediately unlock() it, regardless of the result; if the lock was
already acquired, trylock() will immediately fail, and we can release
it; if the lock was not acquired, trylock() will succeed, and we can
release the lock immediately.

This is necessary to maintain binary compatibility and invariants for
Clutter applications doing:

  clutter_init()
  clutter_threads_enter()
  ...
  clutter_main()
  ...
  clutter_threads_leave()

instead of the correct:

  clutter_init()
  clutter_threads_enter()
  ...
  clutter_threads_leave()
  clutter_main()
  clutter_threads_enter()
  ...
  clutter_threads_leave()

With Clutter ≥ 1.12, the idiomatic form is:

  clutter_init()
  ...
  clutter_main()

given that the public Big Clutter Lock™ acquire/release API has been
deprecated, and nobody should take the lock outside of Clutter itself.

https://bugzilla.gnome.org/show_bug.cgi?id=679439
2012-10-05 17:36:06 +01:00
Marek Černocký
bacda24534 Updated Czech translation 2012-10-03 19:48:25 +02:00
Milo Casagrande
092389132e [l10n] Updated Italian translation. 2012-09-29 17:36:45 +02:00
Nishio Futoshi
ffbf3d47fc [l10n] Update Japanese translation 2012-09-28 20:36:21 +09:00
Chun-wei Fan
a87fd7aae4 Update Visual C++ projects
-Make things a bit cleaner by generating clutter.def in the intermediate
 build folder
-Fix the include paths as config.h is now in clutter/
-Make things a little bit more consistent between vs9 and vs10 in terms of
 the "install" stage
2012-09-28 18:59:27 +08:00
Emmanuele Bassi
696f1afc04 actor: Fix transform-set condition
The :transform-set property is set if the matrix in :transform is not
the identity matrix.
2012-09-25 09:12:54 +01:00
Rūdolfs Mazurs
21b32dbe7a Updated Latvian translation 2012-09-24 23:25:05 +03:00
Emmanuele Bassi
ab011c44ac Post-release version bump to 1.12.1 2012-09-24 17:46:10 +01:00
Emmanuele Bassi
075aa21b3a Release Clutter 1.12.0 2012-09-24 17:27:05 +01:00
Emmanuele Bassi
65bedbe42c docs: Fix typo in closing tag 2012-09-24 17:21:36 +01:00
Emanuele Aina
35faaf604c x11: set the stage for core events with no associated stage
When the last touch has been released the stage on the
corresponding master device (eg. the virtual core pointer) is set
to NULL and no mouse events can be delivered until an ENTER event
has occurred and the stage pointer restored.

This is due to the fact that the master devices can send both
touch events and mouse events, forwarding events coming from the
attached slave devices.

To restore delivery of mouse events we need to ensure that the
stage is set on each ButtonPress, ButtonRelease and Motion event
coming from master devices.

https://bugzilla.gnome.org/show_bug.cgi?id=684509
2012-09-24 17:08:24 +01:00
Emanuele Aina
a6abf86e94 input-device: print device number in debug messages
https://bugzilla.gnome.org/show_bug.cgi?id=684530
2012-09-24 17:04:08 +01:00
Emanuele Aina
d587fa4e28 tests: print coords and devices in test-events
Print event coordinates on events other than motion and also track
the device and source device ids in ./tests/interactive/test-events

https://bugzilla.gnome.org/show_bug.cgi?id=684552
2012-09-24 17:03:36 +01:00
Alexander Shopov
042677b920 Updated Bulgarian translation 2012-09-23 12:17:28 +03:00
Nishio Futoshi
cdb91a461d Updated Japanese translation. 2012-09-23 17:50:31 +09:00
Ani Peter
00f5e1286b Updated Malayalam file 2012-09-23 01:45:51 +05:30
Shankar Prasad
eb3b737484 Updated kn translation 2012-09-23 01:28:46 +05:30
Carles Ferrando
dc020c5e54 [l10n]Updated Catalan (Valencian) translation 2012-09-21 21:37:41 +02:00
Gil Forcada
4887f06970 [l10n] Updated Catalan translation 2012-09-21 21:37:41 +02:00
Krishnababu Krothapalli
c5f769cc07 Updated Telugu Translations 2012-09-20 15:56:41 +05:30
Chandan Kumar
bd8039ca67 Updated HINDI translation 2012-09-20 08:51:31 +05:30
Emmanuele Bassi
64c7973c74 bin-layout: Fix text direction checks
When using the new ActorAlign flags we must get the real alignment for
the horizontal axis, as clutter_actor_allocate() will compute the
effective alignment by itself; if we use the effective alignment then
ClutterActor.allocate() will swap it, and undo our work.

When using the old BinAlignment flags we should reverse the alignment
depending on whether the text direction of the child is RTL or LTR.

See bug: https://bugzilla.gnome.org/show_bug.cgi?id=684214
2012-09-19 11:40:33 +01:00