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

Reply via email to