scroller, slider, slideshow, spinner, toolbar, win, calendar, check,
clock, colorselector, datetime, diskselector, flipselector, gengrid,
ctxpopup, fileselector_button, naviframe, player, popup, bubble, button.
+
+2013-06-05 Ryuan Choi (ryuan)
+
+ * Fix colorselector send "changed" signal twice when pressed color bar.
#ifdef HAVE_ELEMENTARY_X
static Eina_Bool _mouse_grab_pixels(void *data, int type __UNUSED__, void *event __UNUSED__);
+static Eina_Bool _key_up_cb(void *data, int type __UNUSED__, void *event __UNUSED__);
+static Eina_Bool _mouse_up_cb(void *data, int type __UNUSED__, void *event __UNUSED__);
static Ecore_X_Window
_x11_elm_widget_xwin_get(const Evas_Object *obj)
elm_object_disabled_set(obj, EINA_TRUE);
- ecore_event_handler_del(sd->grab.mouse_motion);
sd->grab.mouse_motion = ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE, _mouse_grab_pixels, o);
+ sd->grab.key_up = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _key_up_cb, o);
+ sd->grab.mouse_up = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP, _mouse_up_cb, o);
ecore_x_keyboard_grab(sd->grab.xroot);
ecore_x_pointer_grab(sd->grab.xroot);
elm_object_disabled_set(sd->button, EINA_FALSE);
ecore_x_keyboard_ungrab();
ecore_x_pointer_ungrab();
- ecore_event_handler_del(sd->grab.mouse_motion);
- sd->grab.mouse_motion = ecore_event_handler_add(ECORE_X_RAW_MOTION, _mouse_grab_pixels, o);
+ ELM_SAFE_FREE(sd->grab.mouse_motion, ecore_event_handler_del);
+ ELM_SAFE_FREE(sd->grab.key_up, ecore_event_handler_del);
+ ELM_SAFE_FREE(sd->grab.mouse_up, ecore_event_handler_del);
return EINA_TRUE;
}
elm_object_disabled_set(sd->button, EINA_FALSE);
ecore_x_keyboard_ungrab();
ecore_x_pointer_ungrab();
- ecore_event_handler_del(sd->grab.mouse_motion);
- sd->grab.mouse_motion = ecore_event_handler_add(ECORE_X_RAW_MOTION, _mouse_grab_pixels, o);
+ ELM_SAFE_FREE(sd->grab.mouse_motion, ecore_event_handler_del);
+ ELM_SAFE_FREE(sd->grab.key_up, ecore_event_handler_del);
+ ELM_SAFE_FREE(sd->grab.mouse_up, ecore_event_handler_del);
pixels = evas_object_image_data_get(sd->picker_display, EINA_FALSE);
r = (pixels[17 * 9 + 9] >> 16) & 0xFF;
{
sd->grab.xroot = ecore_x_window_root_get(xwin);
ecore_x_input_raw_select(sd->grab.xroot);
-
- sd->grab.mouse_motion = ecore_event_handler_add(ECORE_X_RAW_MOTION, _mouse_grab_pixels, obj);
- sd->grab.key_up = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _key_up_cb, obj);
- sd->grab.mouse_up = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP, _mouse_up_cb, obj);
}
#endif