Enlightenment CVS committal
Author : cmarcelo
Project : e17
Module : libs/etk
Dir : e17/libs/etk/src/engines/ecore_evas_x11
Modified Files:
ecore_evas_x11.c
Log Message:
Add selection_request (aka PASTE) support for etk_entries inside etk_embeds.
In the Ecore_Evas_X11 engine, when the given toplevel for
_selection_text_request()
is an EMBED, we get its evas, then try to get the ecore_evas associated, and
then
the necessary reference for X_Window.
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/engines/ecore_evas_x11/ecore_evas_x11.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -3 -r1.32 -r1.33
--- ecore_evas_x11.c 15 Oct 2007 13:48:27 -0000 1.32
+++ ecore_evas_x11.c 21 Feb 2008 18:50:03 -0000 1.33
@@ -582,20 +582,35 @@
/* Requests the text from a selection */
static void _selection_text_request(Etk_Selection_Type selection, Etk_Widget
*target)
{
- Etk_Engine_Window_Data *engine_data;
Etk_Toplevel *toplevel;
-
- if (!(toplevel = etk_widget_toplevel_parent_get(target)) ||
!ETK_IS_WINDOW(toplevel))
+ Ecore_X_Window w;
+
+ if (!(toplevel = etk_widget_toplevel_parent_get(target)))
return;
-
+
+ if (ETK_IS_WINDOW(toplevel)) {
+ Etk_Engine_Window_Data *engine_data = ETK_WINDOW(toplevel)->engine_data;
+ w = engine_data->x_window;
+ }
+ else if (ETK_IS_EMBED(toplevel))
+ {
+ Ecore_Evas *ee = ecore_evas_ecore_evas_get(ETK_TOPLEVEL(toplevel)->evas);
+ if (!ee) return;
+ w = ecore_evas_software_x11_window_get(ee);
+ if (!w) return;
+ }
+ else
+ {
+ return;
+ }
+
_selection_widget = target;
- engine_data = ETK_WINDOW(toplevel)->engine_data;
if (selection == ETK_SELECTION_PRIMARY)
- ecore_x_selection_primary_request(engine_data->x_window,
ECORE_X_SELECTION_TARGET_UTF8_STRING);
+ ecore_x_selection_primary_request(w,
ECORE_X_SELECTION_TARGET_UTF8_STRING);
else if (selection == ETK_SELECTION_SECONDARY)
- ecore_x_selection_secondary_request(engine_data->x_window,
ECORE_X_SELECTION_TARGET_UTF8_STRING);
+ ecore_x_selection_secondary_request(w,
ECORE_X_SELECTION_TARGET_UTF8_STRING);
else if (selection == ETK_SELECTION_CLIPBOARD)
- ecore_x_selection_clipboard_request(engine_data->x_window,
ECORE_X_SELECTION_TARGET_UTF8_STRING);
+ ecore_x_selection_clipboard_request(w,
ECORE_X_SELECTION_TARGET_UTF8_STRING);
}
/* Clears the given selection */
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs