Add on-hold & on-scroll events
authorSung-jae Park <nicesj.park@samsung.com>
Sat, 5 Apr 2014 09:17:20 +0000 (18:17 +0900)
committerSung-jae Park <nicesj.park@samsung.com>
Sat, 5 Apr 2014 09:17:20 +0000 (18:17 +0900)
Change-Id: I1a4bbbee224f908a55490e49c71d351f63476908

include/livebox.h
packaging/liblivebox.spec
src/virtual_window.c

index b40f5f4..b8e074a 100644 (file)
@@ -443,7 +443,12 @@ enum buffer_event {
        BUFFER_EVENT_SCROLL_UP, /*!< Accessibility - Scroll up */
        BUFFER_EVENT_SCROLL_MOVE, /*!< Accessibility - Scroll move */
        BUFFER_EVENT_SCROLL_DOWN, /*!< Accessibility - Scroll down */
-       BUFFER_EVENT_UNHIGHLIGHT /*!< Accessibility - Remove highlight */
+       BUFFER_EVENT_UNHIGHLIGHT, /*!< Accessibility - Remove highlight */
+
+       BUFFER_EVENT_ON_HOLD,   /*!< To prevent from generating mouse clicked event */
+       BUFFER_EVENT_OFF_HOLD,
+       BUFFER_EVENT_ON_SCROLL,
+       BUFFER_EVENT_OFF_SCROLL
 };
 
 struct buffer_event_data {
index f8532bc..69ba9ed 100644 (file)
@@ -1,8 +1,8 @@
 %bcond_with wayland
 
 Name: liblivebox
-Summary: Library for the development of a livebox 
-Version: 0.7.1
+Summary: Livebox development library
+Version: 0.7.2
 Release: 1
 Group: HomeTF/Livebox
 License: Flora
@@ -22,15 +22,15 @@ BuildRequires: pkgconfig(x11)
 %endif
 
 %description
-Livebox development library
+Library for the development of a livebox 
 
 %package devel
-Summary: Files for livebox development.
+Summary: Livebox development library (dev)
 Group: Development/Libraries
 Requires: %{name} = %{version}-%{release}
 
 %description devel
-Livebox development library (dev)
+Header & Package configuration files for livebox development
 
 %prep
 %setup -q
@@ -65,7 +65,8 @@ rm -rf %{buildroot}
 %make_install
 mkdir -p %{buildroot}/%{_datarootdir}/license
 
-%post
+%post -n liblivebox -p /sbin/ldconfig
+%postun -n liblivebox -p /sbin/ldconfig
 
 %files -n liblivebox
 %manifest %{name}.manifest
index ba2c926..f7858ec 100644 (file)
@@ -53,7 +53,7 @@ static int event_handler_cb(struct livebox_buffer *handler, struct buffer_event_
        int ret = 0;
        Evas_Object *parent_elm;
        KeySym *key_symbol;
-
+       unsigned int flags = 0;
 
        if (!info->handle) {
                /* Just ignore this event */
@@ -65,6 +65,26 @@ static int event_handler_cb(struct livebox_buffer *handler, struct buffer_event_
         * Feed up events
         */
        switch (event_info->type) {
+       case BUFFER_EVENT_ON_HOLD:
+               flags = evas_event_default_flags_get(info->e);
+               flags |= EVAS_EVENT_FLAG_ON_HOLD;
+               evas_event_default_flags_set(info->e, flags);
+               break;
+       case BUFFER_EVENT_OFF_HOLD:
+               flags = evas_event_default_flags_get(info->e);
+               flags &= ~EVAS_EVENT_FLAG_ON_HOLD;
+               evas_event_default_flags_set(info->e, flags);
+               break;
+       case BUFFER_EVENT_ON_SCROLL:
+               flags = evas_event_default_flags_get(info->e);
+               flags |= EVAS_EVENT_FLAG_ON_SCROLL;
+               evas_event_default_flags_set(info->e, flags);
+               break;
+       case BUFFER_EVENT_OFF_SCROLL:
+               flags = evas_event_default_flags_get(info->e);
+               flags &= ~EVAS_EVENT_FLAG_ON_SCROLL;
+               evas_event_default_flags_set(info->e, flags);
+               break;
        case BUFFER_EVENT_ENTER:
                evas_event_feed_mouse_in(info->e, event_info->timestamp * 1000, NULL);
                break;
@@ -89,6 +109,11 @@ static int event_handler_cb(struct livebox_buffer *handler, struct buffer_event_
        case BUFFER_EVENT_UP:
                evas_event_feed_mouse_move(info->e, event_info->info.pointer.x, event_info->info.pointer.y, event_info->timestamp * 1000, NULL);
                evas_event_feed_mouse_up(info->e, 1, EVAS_BUTTON_NONE, (event_info->timestamp + 0.001f) * 1000, NULL);
+
+               flags = evas_event_default_flags_get(info->e);
+               flags &= ~EVAS_EVENT_FLAG_ON_SCROLL;
+               flags &= ~EVAS_EVENT_FLAG_ON_HOLD;
+               evas_event_default_flags_set(info->e, flags);
                break;
        case BUFFER_EVENT_HIGHLIGHT:
                parent_elm = ecore_evas_data_get(info->ee, "dynamic,box,win");