From 37326d9ebb6d50d265f32150a9a903de38799530 Mon Sep 17 00:00:00 2001 From: ayhanyalcinsoy Date: Tue, 21 Jul 2015 16:10:38 +0300 Subject: [PATCH] clutter:moved into main repo for pisi2.0 --- desktop/toolkit/clutter/clutter/actions.py | 28 +++ .../clutter/files/closure-annotation.patch | 21 ++ .../clutter-1.18.2-libinput_fixes-1.patch | 196 +++++++++++++++ .../files/create-pangocontext-per-actor.patch | 224 ++++++++++++++++++ .../files/dont-update-pangocontext.patch | 37 +++ .../files/evdev-flush-event-queue.patch | 54 +++++ .../clutter/clutter/files/libinput08.patch | 89 +++++++ desktop/toolkit/clutter/clutter/pspec.xml | 168 +++++++++++++ .../toolkit/clutter/clutter/translations.xml | 13 + desktop/toolkit/clutter/component.xml | 3 + 10 files changed, 833 insertions(+) create mode 100644 desktop/toolkit/clutter/clutter/actions.py create mode 100644 desktop/toolkit/clutter/clutter/files/closure-annotation.patch create mode 100644 desktop/toolkit/clutter/clutter/files/clutter-1.18.2-libinput_fixes-1.patch create mode 100644 desktop/toolkit/clutter/clutter/files/create-pangocontext-per-actor.patch create mode 100644 desktop/toolkit/clutter/clutter/files/dont-update-pangocontext.patch create mode 100644 desktop/toolkit/clutter/clutter/files/evdev-flush-event-queue.patch create mode 100644 desktop/toolkit/clutter/clutter/files/libinput08.patch create mode 100644 desktop/toolkit/clutter/clutter/pspec.xml create mode 100644 desktop/toolkit/clutter/clutter/translations.xml create mode 100644 desktop/toolkit/clutter/component.xml diff --git a/desktop/toolkit/clutter/clutter/actions.py b/desktop/toolkit/clutter/clutter/actions.py new file mode 100644 index 0000000000..3833a6c3f2 --- /dev/null +++ b/desktop/toolkit/clutter/clutter/actions.py @@ -0,0 +1,28 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/copyleft/gpl.txt. + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.autoreconf("-vif") + autotools.configure("--enable-egl-backend \ + --enable-evdev-input \ + --enable-introspection \ + --disable-static \ + --enable-shared ") + + pisitools.dosed("libtool"," -shared ", " -Wl,-O1,--as-needed -shared ") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall('DESTDIR=%s INSTALL="install -p -c"' % get.installDIR()) + + pisitools.dodoc("ChangeLog*", "COPYING", "README*", "NEWS") + diff --git a/desktop/toolkit/clutter/clutter/files/closure-annotation.patch b/desktop/toolkit/clutter/clutter/files/closure-annotation.patch new file mode 100644 index 0000000000..736287f92a --- /dev/null +++ b/desktop/toolkit/clutter/clutter/files/closure-annotation.patch @@ -0,0 +1,21 @@ +From 084dc49a0cdadeed7de896df81e9af536f2ab678 Mon Sep 17 00:00:00 2001 +From: Rico Tzschichholz +Date: Thu, 2 Oct 2014 09:27:36 +0200 +Subject: x11: Add missing closure annotation to ClutterX11FilterFunc + + +diff --git a/clutter/x11/clutter-x11.h b/clutter/x11/clutter-x11.h +index b0ab8a1..285ea51 100644 +--- a/clutter/x11/clutter-x11.h ++++ b/clutter/x11/clutter-x11.h +@@ -85,7 +85,7 @@ typedef struct _ClutterX11XInputDevice ClutterX11XInputDevice; + * ClutterX11FilterFunc: + * @xev: Native X11 event structure + * @cev: Clutter event structure +- * @data: user data passed to the filter function ++ * @data: (closure): user data passed to the filter function + * + * Filter function for X11 native events. + * +-- +cgit v0.10.1 diff --git a/desktop/toolkit/clutter/clutter/files/clutter-1.18.2-libinput_fixes-1.patch b/desktop/toolkit/clutter/clutter/files/clutter-1.18.2-libinput_fixes-1.patch new file mode 100644 index 0000000000..cbca4819f8 --- /dev/null +++ b/desktop/toolkit/clutter/clutter/files/clutter-1.18.2-libinput_fixes-1.patch @@ -0,0 +1,196 @@ +Submitted By: Armin K. +Date: 2014-07-22 +Initial Package Version: 1.18.2 +Upstream Status: Fixed +Origin: Upstream +Description: Fixes building with libinput-0.4.0 + +--- a/clutter/evdev/clutter-device-manager-evdev.c 2014-04-02 19:48:36.000000000 +0200 ++++ b/clutter/evdev/clutter-device-manager-evdev.c 2014-07-01 19:05:00.136732530 +0200 +@@ -375,8 +375,8 @@ + static void + notify_relative_motion (ClutterInputDevice *input_device, + guint32 time_, +- li_fixed_t dx, +- li_fixed_t dy) ++ double dx, ++ double dy) + { + gfloat new_x, new_y; + ClutterInputDeviceEvdev *device_evdev; +@@ -391,17 +391,9 @@ + device_evdev = CLUTTER_INPUT_DEVICE_EVDEV (input_device); + seat = _clutter_input_device_evdev_get_seat (device_evdev); + +- /* Append previously discarded fraction. */ +- dx += device_evdev->dx_frac; +- dy += device_evdev->dy_frac; +- + clutter_input_device_get_coords (seat->core_pointer, NULL, &point); +- new_x = point.x + li_fixed_to_int (dx); +- new_y = point.y + li_fixed_to_int (dy); +- +- /* Save the discarded fraction part for next motion event. */ +- device_evdev->dx_frac = (dx < 0 ? -1 : 1) * (0xff & dx); +- device_evdev->dy_frac = (dy < 0 ? -1 : 1) * (0xff & dy); ++ new_x = point.x + dx; ++ new_y = point.y + dy; + + notify_absolute_motion (input_device, time_, new_x, new_y); + } +@@ -988,7 +980,7 @@ + time = libinput_event_keyboard_get_time (key_event); + key = libinput_event_keyboard_get_key (key_event); + key_state = libinput_event_keyboard_get_key_state (key_event) == +- LIBINPUT_KEYBOARD_KEY_STATE_PRESSED; ++ LIBINPUT_KEY_STATE_PRESSED; + notify_key_device (device, time, key, key_state, TRUE); + + break; +@@ -997,7 +989,7 @@ + case LIBINPUT_EVENT_POINTER_MOTION: + { + guint32 time; +- li_fixed_t dx, dy; ++ double dx, dy; + struct libinput_event_pointer *motion_event = + libinput_event_get_pointer_event (event); + device = libinput_device_get_user_data (libinput_device); +@@ -1013,7 +1005,7 @@ + case LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE: + { + guint32 time; +- li_fixed_t x, y; ++ double x, y; + gfloat stage_width, stage_height; + ClutterStage *stage; + struct libinput_event_pointer *motion_event = +@@ -1032,10 +1024,7 @@ + stage_width); + y = libinput_event_pointer_get_absolute_y_transformed (motion_event, + stage_height); +- notify_absolute_motion (device, +- time, +- li_fixed_to_double(x), +- li_fixed_to_double(y)); ++ notify_absolute_motion (device, time, x, y); + + break; + } +@@ -1050,7 +1039,7 @@ + time = libinput_event_pointer_get_time (button_event); + button = libinput_event_pointer_get_button (button_event); + button_state = libinput_event_pointer_get_button_state (button_event) == +- LIBINPUT_POINTER_BUTTON_STATE_PRESSED; ++ LIBINPUT_BUTTON_STATE_PRESSED; + notify_button (device, time, button, button_state); + + break; +@@ -1066,18 +1055,17 @@ + device = libinput_device_get_user_data (libinput_device); + + time = libinput_event_pointer_get_time (axis_event); +- value = li_fixed_to_double ( +- libinput_event_pointer_get_axis_value (axis_event)); ++ value = libinput_event_pointer_get_axis_value (axis_event); + axis = libinput_event_pointer_get_axis (axis_event); + + switch (axis) + { +- case LIBINPUT_POINTER_AXIS_VERTICAL_SCROLL: ++ case LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL: + dx = 0; + dy = value; + break; + +- case LIBINPUT_POINTER_AXIS_HORIZONTAL_SCROLL: ++ case LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL: + dx = value; + dy = 0; + break; +@@ -1178,7 +1166,7 @@ + struct udev *udev; + + udev = udev_new (); +- if (!udev) ++ if (G_UNLIKELY (udev == NULL)) + { + g_warning ("Failed to create udev object"); + return; +@@ -1187,18 +1175,25 @@ + manager_evdev = CLUTTER_DEVICE_MANAGER_EVDEV (gobject); + priv = manager_evdev->priv; + +- priv->libinput = libinput_udev_create_for_seat (&libinput_interface, +- manager_evdev, +- udev, +- "seat0"); +- udev_unref (udev); ++ priv->libinput = libinput_udev_create_context (&libinput_interface, ++ manager_evdev, ++ udev); ++ if (priv->libinput == NULL) ++ { ++ g_critical ("Failed to create the libinput object."); ++ return; ++ } + +- if (!priv->libinput) ++ if (libinput_udev_assign_seat (priv->libinput, "seat0") == -1) + { +- g_warning ("Failed to create libinput object"); ++ g_critical ("Failed to assign a seat to the libinput object."); ++ libinput_unref (priv->libinput); ++ priv->libinput = NULL; + return; + } + ++ udev_unref (udev); ++ + priv->main_seat = clutter_seat_evdev_new (manager_evdev); + + dispatch_libinput (manager_evdev); +@@ -1244,26 +1239,21 @@ + { + ClutterDeviceManagerEvdev *manager_evdev; + ClutterDeviceManagerEvdevPrivate *priv; +- GSList *l; + + manager_evdev = CLUTTER_DEVICE_MANAGER_EVDEV (object); + priv = manager_evdev->priv; + +- for (l = priv->seats; l; l = g_slist_next (l)) +- { +- ClutterSeatEvdev *seat = l->data; +- +- clutter_seat_evdev_free (seat); +- } +- g_slist_free (priv->seats); ++ g_slist_free_full (priv->seats, (GDestroyNotify) clutter_seat_evdev_free); + g_slist_free (priv->devices); + +- clutter_event_source_free (priv->event_source); ++ if (priv->event_source != NULL) ++ clutter_event_source_free (priv->event_source); + +- if (priv->constrain_data_notify) ++ if (priv->constrain_data_notify != NULL) + priv->constrain_data_notify (priv->constrain_data); + +- libinput_destroy (priv->libinput); ++ if (priv->libinput != NULL) ++ libinput_unref (priv->libinput); + + G_OBJECT_CLASS (clutter_device_manager_evdev_parent_class)->finalize (object); + } +--- a/clutter/evdev/clutter-input-device-evdev.h 2014-04-02 19:48:36.000000000 +0200 ++++ b/clutter/evdev/clutter-input-device-evdev.h 2014-07-01 19:04:44.152439734 +0200 +@@ -64,8 +64,6 @@ + + struct libinput_device *libinput_device; + ClutterSeatEvdev *seat; +- li_fixed_t dx_frac; +- li_fixed_t dy_frac; + }; + + GType _clutter_input_device_evdev_get_type (void) G_GNUC_CONST; diff --git a/desktop/toolkit/clutter/clutter/files/create-pangocontext-per-actor.patch b/desktop/toolkit/clutter/clutter/files/create-pangocontext-per-actor.patch new file mode 100644 index 0000000000..5dbbc2cbcd --- /dev/null +++ b/desktop/toolkit/clutter/clutter/files/create-pangocontext-per-actor.patch @@ -0,0 +1,224 @@ +From 46877cc2bd497ec23acfa07fedaf29f45522dc6f Mon Sep 17 00:00:00 2001 +From: "Jasper St. Pierre" +Date: Wed, 22 Oct 2014 18:44:22 -0700 +Subject: actor: Create a PangoContext per actor + +For a variety of complicated reasons, ClutterText currently sets fields +on the PangoContext when creating a layout. This causes ClutterText to +behave somewhat erratically in certain cases, since the PangoContext is +currently shared between all actors. + +GTK+ creates a PangoContext for every single GtkWidget, so it seems like +we should do the same here. + +Move the private code that was previously in clutter-main.c into +clutter-actor.c and clean it up a bit. This gives every actor its own +PangoContext it can mutilate whenever it wants, at its heart's content. + +https://bugzilla.gnome.org/show_bug.cgi?id=739050 + +diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c +index 6a0582a..33fe3e7 100644 +--- a/clutter/clutter-actor.c ++++ b/clutter/clutter-actor.c +@@ -15474,6 +15474,46 @@ clutter_actor_grab_key_focus (ClutterActor *self) + clutter_stage_set_key_focus (CLUTTER_STAGE (stage), self); + } + ++static void ++update_pango_context (ClutterBackend *backend, ++ PangoContext *context) ++{ ++ ClutterSettings *settings; ++ PangoFontDescription *font_desc; ++ const cairo_font_options_t *font_options; ++ gchar *font_name; ++ PangoDirection pango_dir; ++ gdouble resolution; ++ ++ settings = clutter_settings_get_default (); ++ ++ /* update the text direction */ ++ if (clutter_get_default_text_direction () == CLUTTER_TEXT_DIRECTION_RTL) ++ pango_dir = PANGO_DIRECTION_RTL; ++ else ++ pango_dir = PANGO_DIRECTION_LTR; ++ ++ pango_context_set_base_dir (context, pango_dir); ++ ++ g_object_get (settings, "font-name", &font_name, NULL); ++ ++ /* get the configuration for the PangoContext from the backend */ ++ font_options = clutter_backend_get_font_options (backend); ++ resolution = clutter_backend_get_resolution (backend); ++ ++ font_desc = pango_font_description_from_string (font_name); ++ ++ if (resolution < 0) ++ resolution = 96.0; /* fall back */ ++ ++ pango_context_set_font_description (context, font_desc); ++ pango_cairo_context_set_font_options (context, font_options); ++ pango_cairo_context_set_resolution (context, resolution); ++ ++ pango_font_description_free (font_desc); ++ g_free (font_name); ++} ++ + /** + * clutter_actor_get_pango_context: + * @self: a #ClutterActor +@@ -15500,16 +15540,23 @@ PangoContext * + clutter_actor_get_pango_context (ClutterActor *self) + { + ClutterActorPrivate *priv; ++ ClutterBackend *backend = clutter_get_default_backend (); + + g_return_val_if_fail (CLUTTER_IS_ACTOR (self), NULL); + + priv = self->priv; + +- if (priv->pango_context != NULL) +- return priv->pango_context; ++ if (G_UNLIKELY (priv->pango_context == NULL)) ++ { ++ priv->pango_context = clutter_actor_create_pango_context (self); + +- priv->pango_context = _clutter_context_get_pango_context (); +- g_object_ref (priv->pango_context); ++ g_signal_connect_object (backend, "resolution-changed", ++ G_CALLBACK (update_pango_context), priv->pango_context, 0); ++ g_signal_connect_object (backend, "font-changed", ++ G_CALLBACK (update_pango_context), priv->pango_context, 0); ++ } ++ else ++ update_pango_context (backend, priv->pango_context); + + return priv->pango_context; + } +@@ -15533,9 +15580,16 @@ clutter_actor_get_pango_context (ClutterActor *self) + PangoContext * + clutter_actor_create_pango_context (ClutterActor *self) + { +- g_return_val_if_fail (CLUTTER_IS_ACTOR (self), NULL); ++ CoglPangoFontMap *font_map; ++ PangoContext *context; ++ ++ font_map = COGL_PANGO_FONT_MAP (clutter_get_font_map ()); ++ ++ context = cogl_pango_font_map_create_context (font_map); ++ update_pango_context (clutter_get_default_backend (), context); ++ pango_context_set_language (context, pango_language_get_default ()); + +- return _clutter_context_create_pango_context (); ++ return context; + } + + /** +diff --git a/clutter/clutter-main.c b/clutter/clutter-main.c +index 3b9385a..1a337c0 100644 +--- a/clutter/clutter-main.c ++++ b/clutter/clutter-main.c +@@ -764,86 +764,6 @@ clutter_get_text_direction (void) + return dir; + } + +-static void +-update_pango_context (ClutterBackend *backend, +- PangoContext *context) +-{ +- ClutterSettings *settings; +- PangoFontDescription *font_desc; +- const cairo_font_options_t *font_options; +- gchar *font_name; +- PangoDirection pango_dir; +- gdouble resolution; +- +- settings = clutter_settings_get_default (); +- +- /* update the text direction */ +- if (clutter_text_direction == CLUTTER_TEXT_DIRECTION_RTL) +- pango_dir = PANGO_DIRECTION_RTL; +- else +- pango_dir = PANGO_DIRECTION_LTR; +- +- pango_context_set_base_dir (context, pango_dir); +- +- g_object_get (settings, "font-name", &font_name, NULL); +- +- /* get the configuration for the PangoContext from the backend */ +- font_options = clutter_backend_get_font_options (backend); +- resolution = clutter_backend_get_resolution (backend); +- +- font_desc = pango_font_description_from_string (font_name); +- +- if (resolution < 0) +- resolution = 96.0; /* fall back */ +- +- pango_context_set_font_description (context, font_desc); +- pango_cairo_context_set_font_options (context, font_options); +- pango_cairo_context_set_resolution (context, resolution); +- +- pango_font_description_free (font_desc); +- g_free (font_name); +-} +- +-PangoContext * +-_clutter_context_get_pango_context (void) +-{ +- ClutterMainContext *self = _clutter_context_get_default (); +- +- if (G_UNLIKELY (self->pango_context == NULL)) +- { +- PangoContext *context; +- +- context = _clutter_context_create_pango_context (); +- self->pango_context = context; +- +- g_signal_connect (self->backend, "resolution-changed", +- G_CALLBACK (update_pango_context), +- self->pango_context); +- g_signal_connect (self->backend, "font-changed", +- G_CALLBACK (update_pango_context), +- self->pango_context); +- } +- else +- update_pango_context (self->backend, self->pango_context); +- +- return self->pango_context; +-} +- +-PangoContext * +-_clutter_context_create_pango_context (void) +-{ +- CoglPangoFontMap *font_map; +- PangoContext *context; +- +- font_map = clutter_context_get_pango_fontmap (); +- +- context = cogl_pango_font_map_create_context (font_map); +- update_pango_context (clutter_get_default_backend (), context); +- pango_context_set_language (context, pango_language_get_default ()); +- +- return context; +-} +- + /** + * clutter_main_quit: + * +diff --git a/clutter/clutter-private.h b/clutter/clutter-private.h +index bf92626..b714edc 100644 +--- a/clutter/clutter-private.h ++++ b/clutter/clutter-private.h +@@ -198,8 +198,6 @@ ClutterMainContext * _clutter_context_get_default (void); + void _clutter_context_lock (void); + void _clutter_context_unlock (void); + gboolean _clutter_context_is_initialized (void); +-PangoContext * _clutter_context_create_pango_context (void); +-PangoContext * _clutter_context_get_pango_context (void); + ClutterPickMode _clutter_context_get_pick_mode (void); + void _clutter_context_push_shader_stack (ClutterActor *actor); + ClutterActor * _clutter_context_pop_shader_stack (ClutterActor *actor); +-- +cgit v0.10.1 + diff --git a/desktop/toolkit/clutter/clutter/files/dont-update-pangocontext.patch b/desktop/toolkit/clutter/clutter/files/dont-update-pangocontext.patch new file mode 100644 index 0000000000..2fa149504e --- /dev/null +++ b/desktop/toolkit/clutter/clutter/files/dont-update-pangocontext.patch @@ -0,0 +1,37 @@ +From 14d28e7908d5421f15f9b94f4f37d66f14c4222e Mon Sep 17 00:00:00 2001 +From: "Jasper St. Pierre" +Date: Wed, 22 Oct 2014 18:44:16 -0700 +Subject: main: Don't update the PangoContext in clutter_set_font_flags + +clutter_set_font_flags already calls clutter_backend_set_font_options, +which emits a signal which our PangoContext listens to, so this is just +duplicate and unneeded code. + +https://bugzilla.gnome.org/show_bug.cgi?id=739050 + +diff --git a/clutter/clutter-main.c b/clutter/clutter-main.c +index 444ceba..3b9385a 100644 +--- a/clutter/clutter-main.c ++++ b/clutter/clutter-main.c +@@ -3276,7 +3276,6 @@ clutter_clear_glyph_cache (void) + void + clutter_set_font_flags (ClutterFontFlags flags) + { +- ClutterMainContext *context = _clutter_context_get_default (); + CoglPangoFontMap *font_map; + ClutterFontFlags old_flags, changed_flags; + const cairo_font_options_t *font_options; +@@ -3326,10 +3325,6 @@ clutter_set_font_flags (ClutterFontFlags flags) + clutter_backend_set_font_options (backend, new_font_options); + + cairo_font_options_destroy (new_font_options); +- +- /* update the default pango context, if any */ +- if (context->pango_context != NULL) +- update_pango_context (backend, context->pango_context); + } + + /** +-- +cgit v0.10.1 + diff --git a/desktop/toolkit/clutter/clutter/files/evdev-flush-event-queue.patch b/desktop/toolkit/clutter/clutter/files/evdev-flush-event-queue.patch new file mode 100644 index 0000000000..0eb9e1632e --- /dev/null +++ b/desktop/toolkit/clutter/clutter/files/evdev-flush-event-queue.patch @@ -0,0 +1,54 @@ +From 7764fd2079318fede95b4b96c72d18bd31699270 Mon Sep 17 00:00:00 2001 +From: Carlos Garnacho +Date: Tue, 14 Oct 2014 12:41:10 +0200 +Subject: evdev: Flush event queue before removing an input device + +libinput_suspend() will trigger the removal of input devices, but also +the emission of button/key releases pairing everything that is pressed +at that moment. These events are queued, but the ClutterInputDevice +pointers in these will point to invalid memory at the time these are +processed. + +Fix this by flushing the event queue, in order to ensure there are no +unprocessed input events after libinput_suspend(). + +https://bugzilla.gnome.org/show_bug.cgi?id=738520 + +diff --git a/clutter/evdev/clutter-device-manager-evdev.c b/clutter/evdev/clutter-device-manager-evdev.c +index 77a8ec6..7b48481 100644 +--- a/clutter/evdev/clutter-device-manager-evdev.c ++++ b/clutter/evdev/clutter-device-manager-evdev.c +@@ -1017,6 +1017,18 @@ clutter_seat_evdev_sync_leds (ClutterSeatEvdev *seat) + } + } + ++static void ++flush_event_queue (void) ++{ ++ ClutterEvent *event; ++ ++ while ((event = clutter_event_get ()) != NULL) ++ { ++ _clutter_process_event (event); ++ clutter_event_free (event); ++ } ++} ++ + static gboolean + process_base_event (ClutterDeviceManagerEvdev *manager_evdev, + struct libinput_event *event) +@@ -1034,6 +1046,11 @@ process_base_event (ClutterDeviceManagerEvdev *manager_evdev, + break; + + case LIBINPUT_EVENT_DEVICE_REMOVED: ++ /* Flush all queued events, there ++ * might be some from this device. ++ */ ++ flush_event_queue (); ++ + libinput_device = libinput_event_get_device (event); + + device = libinput_device_get_user_data (libinput_device); +-- +cgit v0.10.1 + diff --git a/desktop/toolkit/clutter/clutter/files/libinput08.patch b/desktop/toolkit/clutter/clutter/files/libinput08.patch new file mode 100644 index 0000000000..89a7364e66 --- /dev/null +++ b/desktop/toolkit/clutter/clutter/files/libinput08.patch @@ -0,0 +1,89 @@ +From ede13b11d72a310e535f9a6f0b7e3f774f5529dc Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Fri, 16 Jan 2015 01:03:52 +0100 +Subject: evdev: use libinput's new merged scroll events + +libinput's API changed from separate scroll events for vert/horiz scrolling to +a single event that contains both axes if they changed. + +Updated by Armin K. to use the discrete axis value for wheel events as done +in Weston. + +https://bugzilla.gnome.org/show_bug.cgi?id=742829 + +diff --git a/clutter/evdev/clutter-device-manager-evdev.c b/clutter/evdev/clutter-device-manager-evdev.c +index 7b48481..2b3828a 100644 +--- a/clutter/evdev/clutter-device-manager-evdev.c ++++ b/clutter/evdev/clutter-device-manager-evdev.c +@@ -1191,29 +1191,43 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev, + + case LIBINPUT_EVENT_POINTER_AXIS: + { +- gdouble value, dx = 0.0, dy = 0.0; ++ gdouble dx = 0.0, dy = 0.0; + guint32 time; ++ gboolean wheel = FALSE; + enum libinput_pointer_axis axis; ++ enum libinput_pointer_axis_source source; + struct libinput_event_pointer *axis_event = + libinput_event_get_pointer_event (event); ++ + device = libinput_device_get_user_data (libinput_device); + + time = libinput_event_pointer_get_time (axis_event); +- value = libinput_event_pointer_get_axis_value (axis_event); +- axis = libinput_event_pointer_get_axis (axis_event); ++ source = libinput_event_pointer_get_axis_source (axis_event); + +- switch (axis) +- { +- case LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL: +- dx = 0; +- dy = value; +- break; ++ /* libinput < 0.8 sent wheel click events with value 10. Since 0.8 ++ the value is the angle of the click in degrees. To keep ++ backwards-compat with existing clients, we just send multiples of ++ the click count. */ ++ ++ if (source == LIBINPUT_POINTER_AXIS_SOURCE_WHEEL) ++ wheel = TRUE; + +- case LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL: +- dx = value; +- dy = 0; +- break; ++ axis = LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL; ++ if (libinput_event_pointer_has_axis (axis_event, axis)) ++ { ++ if (wheel) ++ dy = 10 * libinput_event_pointer_get_axis_value_discrete (axis_event, axis); ++ else ++ dy = libinput_event_pointer_get_axis_value (axis_event, axis); ++ } + ++ axis = LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL; ++ if (libinput_event_pointer_has_axis (axis_event, axis)) ++ { ++ if (wheel) ++ dx = 10 * libinput_event_pointer_get_axis_value_discrete (axis_event, axis); ++ else ++ dx = libinput_event_pointer_get_axis_value (axis_event, axis); + } + + notify_scroll (device, time, dx, dy); +diff --git a/configure.ac b/configure.ac +index 0a9a580..2a47744 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -146,7 +146,7 @@ m4_define([uprof_req_version], [0.3]) + m4_define([gtk_doc_req_version], [1.20]) + m4_define([xcomposite_req_version], [0.4]) + m4_define([gdk_req_version], [3.3.18]) +-m4_define([libinput_req_version], [0.4.0]) ++m4_define([libinput_req_version], [0.8.0]) + m4_define([libudev_req_version], [136]) + + AC_SUBST([GLIB_REQ_VERSION], [glib_req_version]) +-- +cgit v0.10.1 diff --git a/desktop/toolkit/clutter/clutter/pspec.xml b/desktop/toolkit/clutter/clutter/pspec.xml new file mode 100644 index 0000000000..b60da4b1ca --- /dev/null +++ b/desktop/toolkit/clutter/clutter/pspec.xml @@ -0,0 +1,168 @@ + + + + + clutter + http://www.clutter-project.org/ + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2.1 + library + OpenGL GUI toolkit + clutter is an open source software library for creating fast, visually rich graphical user interfaces. The most obvious example of potential usage is in media center type applications. + mirrors://gnome/clutter/1.22/clutter-1.22.4.tar.xz + + gtk3-devel + libXi-devel + libinput-devel + cogl-devel + gobject-introspection-devel + + + + + clutter + + atk + cogl + gtk3 + cairo + libXi + pango + libinput + json-glib + fontconfig + libXdamage + libxkbcommon + libXcomposite + + + /usr/lib/girepository-1.0 + /usr/lib/libclutter* + /usr/share/doc/clutter + /usr/share/gtk-doc + /usr/share/gir-1.0 + /usr/share/locale/ + + + + + clutter-devel + clutter için geliştirme dosyaları. + + clutter + atk-devel + gtk3-devel + cogl-devel + pango-devel + libXi-devel + cairo-devel + libXext-devel + json-glib-devel + libXdamage-devel + libXcomposite-devel + libinput-devel + libxkbcommon-devel + + + /usr/include + /usr/lib/pkgconfig + + + + + + 2015-07-21 + 1.22.4 + Version bump. + Ayhan Yalçınsoy + ayhanyalcinsoy@pisilinux.org + + + 2015-04-18 + 1.22.0 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2015-02-16 + 1.20.0 + Version bump. + Hakan Yıldız + hknyldz93@gmail.com + + + 2014-10-26 + 1.18.2 + rebuild for patch + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2014-05-27 + 1.18.2 + Verison bump. + Alihan Öztürk + alihan@pisilinux.org + + + 2013-10-22 + 1.16.0 + Unused fix. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-10-11 + 1.16.0 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-07-23 + 1.14.4 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-06-16 + 1.14.2 + Split package + PisiLinux Community + admins@pisilinux.org + + + 2013-06-15 + 1.14.2 + Rebuild with new configure args + Marcin Bojara + marcin@pisilinux.org + + + 2013-05-11 + 1.14.2 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-01-25 + 1.13.4 + Güncellendi. + PisiLinux Community + admins@pisilinux.org + + + 2012-12-17 + 1.12.2 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/desktop/toolkit/clutter/clutter/translations.xml b/desktop/toolkit/clutter/clutter/translations.xml new file mode 100644 index 0000000000..9daa14f6ed --- /dev/null +++ b/desktop/toolkit/clutter/clutter/translations.xml @@ -0,0 +1,13 @@ + + + + clutter + OpenGL grafik arabirim kitaplığı + clutter görsel olarak zengin ve hızlı grafik arabirimler oluşturmak için hazırlanmış bir açık kodlu kitaplıktır. Kullanım alanlarına en belirgin örnek olarak çoklu ortam yazılımları gösterilebilir. + + + + clutter-devel + clutter için geliştirme dosyaları. + + \ No newline at end of file diff --git a/desktop/toolkit/clutter/component.xml b/desktop/toolkit/clutter/component.xml new file mode 100644 index 0000000000..d8ffb39888 --- /dev/null +++ b/desktop/toolkit/clutter/component.xml @@ -0,0 +1,3 @@ + + desktop.toolkit.clutter +