diff --git a/legacy/ecore/AUTHORS b/legacy/ecore/AUTHORS index ff9f752f4c..2de0ab8794 100644 --- a/legacy/ecore/AUTHORS +++ b/legacy/ecore/AUTHORS @@ -55,3 +55,4 @@ Vikram Narayanan Seong-ho Cho (DarkCircle) Patryk Kaczmarek Daniel Willmann +Michal Pakula vel Rutka diff --git a/legacy/ecore/ChangeLog b/legacy/ecore/ChangeLog index e1db999616..3a94577a0a 100644 --- a/legacy/ecore/ChangeLog +++ b/legacy/ecore/ChangeLog @@ -998,3 +998,7 @@ * Wayland SHM now features a mechanism to synchronize rendering with the compositor, removing tearing effect in animations when using that engine. + +2012-10-10 Michal Pakula vel Rutka + + * Fix: Send ECORE_X_EVENT_SELECTION_NOTIFY even if there is no data. diff --git a/legacy/ecore/NEWS b/legacy/ecore/NEWS index a34205f14f..b98676bb85 100644 --- a/legacy/ecore/NEWS +++ b/legacy/ecore/NEWS @@ -37,6 +37,7 @@ Fixes: - ecore_x_randr to actually return crtcs properly. - ecore_x_randr to actually return crtcs possible outputs properly. - ecore_x_randr to actually return crtcs outputs properly. + - send ECORE_X_EVENT_SELECTION_NOTIFY even if there is no data. Improvements: diff --git a/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_events.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_events.c index 1763397a26..b9acccebf4 100644 --- a/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_events.c +++ b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_events.c @@ -1356,13 +1356,9 @@ _ecore_xcb_event_handle_selection_notify(xcb_generic_event_t *event) } } else - { - format = - ecore_x_window_prop_property_get(ev->requestor, ev->property, - XCB_GET_PROPERTY_TYPE_ANY, 8, - &data, &num); - if (!format) return; - } + format = ecore_x_window_prop_property_get(ev->requestor, ev->property, + XCB_GET_PROPERTY_TYPE_ANY, 8, + &data, &num); e = calloc(1, sizeof(Ecore_X_Event_Selection_Notify)); if (!e) return; diff --git a/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_selection.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_selection.c index 2fe148ba5e..d7fbf05982 100644 --- a/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_selection.c +++ b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_selection.c @@ -748,7 +748,7 @@ _ecore_xcb_selection_parser_text(const char *target __UNUSED__, sel = calloc(1, sizeof(Ecore_X_Selection_Data_Text)); if (!sel) return NULL; - if (_data[size - 1]) + if (data && data[size - 1]) { size++; t = realloc(_data, size); @@ -790,7 +790,7 @@ _ecore_xcb_selection_parser_files(const char *target, ECORE_XCB_SELECTION_DATA(sel)->free = _ecore_xcb_selection_data_files_free; - if (_data[size - 1]) + if (data && data[size - 1]) { size++; t = realloc(_data, size); diff --git a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_events.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_events.c index 7d685cf83f..2e780aa19b 100644 --- a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_events.c +++ b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_events.c @@ -1415,14 +1415,10 @@ _ecore_x_event_handle_selection_notify(XEvent *xevent) } } else - { - format = ecore_x_window_prop_property_get(xevent->xselection.requestor, - xevent->xselection.property, - AnyPropertyType, 8, &data, - &num_ret); - if (!format) - return; - } + format = ecore_x_window_prop_property_get(xevent->xselection.requestor, + xevent->xselection.property, + AnyPropertyType, 8, &data, + &num_ret); e = calloc(1, sizeof(Ecore_X_Event_Selection_Notify)); if (!e) diff --git a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_selection.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_selection.c index e94d5a3a14..476621a289 100644 --- a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_selection.c +++ b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_selection.c @@ -810,7 +810,7 @@ _ecore_x_selection_parser_files(const char *target, if (!sel) return NULL; ECORE_X_SELECTION_DATA(sel)->free = _ecore_x_selection_data_files_free; - if (data[size - 1]) + if (data && data[size - 1]) { /* Isn't nul terminated */ size++; @@ -909,7 +909,7 @@ _ecore_x_selection_parser_text(const char *target __UNUSED__, sel = calloc(1, sizeof(Ecore_X_Selection_Data_Text)); if (!sel) return NULL; - if (data[size - 1]) + if (data && data[size - 1]) { /* Isn't nul terminated */ size++;