Enlightenment CVS committal

Author  : pfritz
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/lib


Modified Files:
        ewl_text.c ewl_text_trigger.h ewl_text_trigger.c 


Log Message:
fix some selection problems, e.g. if you select from code and not by hand

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_text.c,v
retrieving revision 1.205
retrieving revision 1.206
diff -u -3 -r1.205 -r1.206
--- ewl_text.c  29 Jul 2008 02:31:47 -0000      1.205
+++ ewl_text.c  30 Jul 2008 21:43:54 -0000      1.206
@@ -3231,15 +3231,21 @@
         t = EWL_TEXT(w);
         if (t->textblock)
         {
+                Ewl_Widget *child;
+
                 ewl_text_size(t);
                 if (t->dirty) ewl_text_display(t);
 
                 ewl_text_triggers_place(t);
 
-                /* re-configure the selection to make sure it resizes
-                 * if needed */
-                if (t->selection)
-                        ewl_widget_configure(EWL_WIDGET(t->selection));
+                /*
+                 * configure all children. We actually only need to configure
+                 * the area parts, but it doesn't hurt if we call the configure
+                 * call for the trigger, too
+                 */
+                ecore_dlist_first_goto(EWL_CONTAINER(t)->children);
+                while ((child = ecore_dlist_next(EWL_CONTAINER(t)->children)))
+                        ewl_widget_configure(child);
         }
 
         DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -3474,13 +3480,6 @@
                 t->selection = ewl_text_selection_new(t);
         
         sel = EWL_TEXT_TRIGGER(t->selection);
-
-        /* Move the selection widget to wherever the mouse was clicked,
-         * as this way we are always marked onscreen, and receive configuration
-         * callbacks
-         */
-        ewl_object_position_request(EWL_OBJECT(t->selection), event->x,
-                                event->y);
 
         char_idx = ewl_text_coord_index_map(EWL_TEXT(w), event->x, event->y);
         ewl_text_cursor_position_set(t, char_idx);
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_text_trigger.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- ewl_text_trigger.h  5 Jul 2008 18:03:53 -0000       1.10
+++ ewl_text_trigger.h  30 Jul 2008 21:43:54 -0000      1.11
@@ -83,7 +83,6 @@
  */
 void ewl_text_trigger_cb_show(Ewl_Widget *w, void *ev, void *data);
 void ewl_text_trigger_cb_hide(Ewl_Widget *w, void *ev, void *data);
-void ewl_text_trigger_cb_configure(Ewl_Widget *w, void *ev, void *data);
 void ewl_text_trigger_cb_unrealize(Ewl_Widget *w, void *ev, void *data);
 
 /**
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_text_trigger.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- ewl_text_trigger.c  7 May 2008 13:38:25 -0000       1.14
+++ ewl_text_trigger.c  30 Jul 2008 21:43:54 -0000      1.15
@@ -108,8 +108,6 @@
 
         ewl_callback_prepend(EWL_WIDGET(trigger), EWL_CALLBACK_DESTROY,
                                         ewl_text_trigger_cb_destroy, NULL);
-        ewl_callback_append(EWL_WIDGET(trigger), EWL_CALLBACK_CONFIGURE,
-                                        ewl_text_trigger_cb_configure, NULL);
         ewl_callback_append(EWL_WIDGET(trigger), EWL_CALLBACK_SHOW,
                                         ewl_text_trigger_cb_show, NULL);
         ewl_callback_append(EWL_WIDGET(trigger), EWL_CALLBACK_HIDE,
@@ -326,35 +324,6 @@
                 while ((area = ecore_list_first_remove(trig->areas)))
                         ewl_text_trigger_area_cache(trig->text_parent, area);
         }
-
-        DLEAVE_FUNCTION(DLEVEL_STABLE);
-}
-
-/**
- * @param w: The trigger to work with
- * @param ev: UNUSED
- * @param data: UNUSED
- * @return Returns no value
- * @brief Configures the areas associated with @a trig
- */
-void
-ewl_text_trigger_cb_configure(Ewl_Widget *w, void *ev __UNUSED__,
-                                                void *data __UNUSED__)
-{
-        Ewl_Text_Trigger *trig;
-        Ewl_Text_Trigger_Area *area;
-
-        DENTER_FUNCTION(DLEVEL_STABLE);
-        DCHECK_PARAM_PTR(w);
-        DCHECK_TYPE(w, EWL_TEXT_TRIGGER_TYPE);
-
-        trig = EWL_TEXT_TRIGGER(w);
-
-        if (!trig->areas) DRETURN(DLEVEL_STABLE);
-
-        ecore_list_first_goto(trig->areas);
-        while ((area = ecore_list_next(trig->areas)))
-                ewl_widget_configure(EWL_WIDGET(area));
 
         DLEAVE_FUNCTION(DLEVEL_STABLE);
 }



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to