Enlightenment CVS committal

Author  : rbdpngn
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/lib


Modified Files:
        ewl_text.c ewl_text.h 


Log Message:
Reduce textblock layouts.

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_text.c,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -3 -r1.79 -r1.80
--- ewl_text.c  6 Dec 2005 02:03:24 -0000       1.79
+++ ewl_text.c  7 Dec 2005 06:14:37 -0000       1.80
@@ -138,6 +138,8 @@
        ewl_container_remove_notify_set(EWL_CONTAINER(t), 
                                        ewl_text_cb_child_del);
 
+       t->dirty = TRUE;
+
        /* text consumes tabs by default */
 //     ewl_widget_ignore_focus_change_set(EWL_WIDGET(t), TRUE);
        ewl_widget_focusable_set(EWL_WIDGET(t), FALSE);
@@ -191,7 +193,8 @@
        }
 
        /* force a display of the text */
-       ewl_text_display(t);
+       if (t->dirty)
+               ewl_text_display(t);
 
        if (idx >= t->length)
        {
@@ -238,7 +241,8 @@
        }
 
        /* force a display of the text */
-       ewl_text_display(t);
+       if (t->dirty)
+               ewl_text_display(t);
 
        tx = (Evas_Coord)(x - CURRENT_X(t));
        ty = (Evas_Coord)(y - CURRENT_Y(t));
@@ -345,6 +349,7 @@
        if (t->selection)
                ewl_widget_destroy(EWL_WIDGET(t->selection));
        t->selection = NULL;
+       t->dirty = TRUE;
        
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -464,6 +469,8 @@
                ewl_text_cursor_position_set(t, idx + len);
        }
 
+       t->dirty = TRUE;
+
        if (text) ewl_text_triggers_shift(t, idx, len, FALSE);
        else ewl_text_triggers_remove(t);
 
@@ -520,6 +527,8 @@
                t->delete_count = 0;
        }
 
+       t->dirty = TRUE;
+
        if (t->cursor_position > t->length)
                ewl_text_cursor_position_set(t, t->length);
 
@@ -828,6 +837,8 @@
        ewl_text_tree_context_apply(t, EWL_TEXT_CONTEXT_MASK_FONT, tx,
                                                t->cursor_position, length);
        ewl_text_context_release(tx);
+       t->dirty = TRUE;
+
        ewl_widget_configure(EWL_WIDGET(t));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -905,6 +916,8 @@
        ewl_text_tree_context_apply(t, EWL_TEXT_CONTEXT_MASK_SIZE, tx,
                                                t->cursor_position, length);
        ewl_text_context_release(tx);
+       t->dirty = TRUE;
+
        ewl_widget_configure(EWL_WIDGET(t));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -994,6 +1007,8 @@
        ewl_text_tree_context_apply(t, EWL_TEXT_CONTEXT_MASK_COLOR, tx,
                                                t->cursor_position, length);
        ewl_text_context_release(tx);
+       t->dirty = TRUE;
+
        ewl_widget_configure(EWL_WIDGET(t));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -1079,6 +1094,8 @@
        ewl_text_tree_context_apply(t, EWL_TEXT_CONTEXT_MASK_ALIGN, tx,
                                                t->cursor_position, length);
        ewl_text_context_release(tx);
+       t->dirty = TRUE;
+
        ewl_widget_configure(EWL_WIDGET(t));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -1151,7 +1168,9 @@
        ewl_text_tree_context_apply(t, EWL_TEXT_CONTEXT_MASK_STYLES, tx,
                                                t->cursor_position, length);
        ewl_text_context_release(tx);
-        ewl_widget_configure(EWL_WIDGET(t));
+       t->dirty = TRUE;
+
+       ewl_widget_configure(EWL_WIDGET(t));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -1192,6 +1211,10 @@
        DCHECK_TYPE("t", t, "text");
  
        ewl_text_tree_context_style_remove(t, style, t->cursor_position, 
length);
+       t->dirty = TRUE;
+
+       ewl_widget_configure(EWL_WIDGET(t));
+
  
        DLEAVE_FUNCTION(DLEVEL_STABLE);
  }
@@ -1212,6 +1235,9 @@
        DCHECK_TYPE("t", t, "text");
  
        ewl_text_tree_context_style_apply(t, style, t->cursor_position, length, 
TRUE);
+       t->dirty = TRUE;
+
+       ewl_widget_configure(EWL_WIDGET(t));
                  
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -1304,6 +1330,8 @@
        ewl_text_tree_context_apply(t, EWL_TEXT_CONTEXT_MASK_WRAP, tx,
                                                t->cursor_position, length);
        ewl_text_context_release(tx);
+       t->dirty = TRUE;
+
        ewl_widget_configure(EWL_WIDGET(t));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -1393,6 +1421,8 @@
        ewl_text_tree_context_apply(t, EWL_TEXT_CONTEXT_MASK_BG_COLOR, tx,
                                                t->cursor_position, length);
        ewl_text_context_release(tx);
+       t->dirty = TRUE;
+
        ewl_widget_configure(EWL_WIDGET(t));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -1495,6 +1525,8 @@
        ewl_text_tree_context_apply(t, EWL_TEXT_CONTEXT_MASK_GLOW_COLOR, tx,
                                                        t->cursor_position, 
length);
        ewl_text_context_release(tx);
+       t->dirty = TRUE;
+
        ewl_widget_configure(EWL_WIDGET(t));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -1597,6 +1629,8 @@
        ewl_text_tree_context_apply(t, EWL_TEXT_CONTEXT_MASK_OUTLINE_COLOR, tx,
                                                        t->cursor_position, 
length);
        ewl_text_context_release(tx);
+       t->dirty = TRUE;
+
        ewl_widget_configure(EWL_WIDGET(t));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -1699,6 +1733,8 @@
        ewl_text_tree_context_apply(t, EWL_TEXT_CONTEXT_MASK_SHADOW_COLOR, tx,
                                                        t->cursor_position, 
length);
        ewl_text_context_release(tx);
+       t->dirty = TRUE;
+
        ewl_widget_configure(EWL_WIDGET(t));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -1801,6 +1837,8 @@
        ewl_text_tree_context_apply(t, 
EWL_TEXT_CONTEXT_MASK_STRIKETHROUGH_COLOR, tx,
                                                        t->cursor_position, 
length);
        ewl_text_context_release(tx);
+       t->dirty = TRUE;
+
        ewl_widget_configure(EWL_WIDGET(t));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -1903,6 +1941,8 @@
        ewl_text_tree_context_apply(t, EWL_TEXT_CONTEXT_MASK_UNDERLINE_COLOR, 
tx,
                                                        t->cursor_position, 
length);
        ewl_text_context_release(tx);
+       t->dirty = TRUE;
+
        ewl_widget_configure(EWL_WIDGET(t));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -2005,6 +2045,8 @@
        ewl_text_tree_context_apply(t, 
EWL_TEXT_CONTEXT_MASK_DOUBLE_UNDERLINE_COLOR, tx,
                                                        t->cursor_position, 
length);
        ewl_text_context_release(tx);
+       t->dirty = TRUE;
+
        ewl_widget_configure(EWL_WIDGET(t));
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -2065,9 +2107,6 @@
 
        ewl_object_preferred_inner_size_set(EWL_OBJECT(t), (int)w, (int)h);
 
-       /* re-configure the selection to make sure it resizes if needed */
-       if (t->selection) ewl_widget_configure(EWL_WIDGET(t->selection));
-
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
 
@@ -2403,10 +2442,17 @@
                evas_object_move(t->textblock, xx, yy);
                evas_object_resize(t->textblock, ww, hh);
 
-               ewl_text_display(t);
+               if (t->dirty) {
+                       ewl_text_display(t);
+
+                       /* XXX ewl_text_triggers_realize here? */
+                       ewl_text_triggers_configure(t);
 
-               /* XXX ewl_text_triggers_realize here? */
-               ewl_text_triggers_configure(t);
+                       /* re-configure the selection to make sure it resizes
+                        * if needed */
+                       if (t->selection)
+                               ewl_widget_configure(EWL_WIDGET(t->selection));
+               }
        }
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_text.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -3 -r1.26 -r1.27
--- ewl_text.h  2 Dec 2005 19:53:44 -0000       1.26
+++ ewl_text.h  7 Dec 2005 06:14:37 -0000       1.27
@@ -57,13 +57,14 @@
                Ewl_Text_Tree   *current;         /**< The current formatting 
node */
        } formatting;
 
-       unsigned int             delete_count;    /**< Number of deletes */
-
        Ecore_List              *triggers;        /**< The list of triggers */
        Ewl_Text_Trigger        *selection;       /**< The current selection */
-       unsigned int             in_select;       /**< Are we in select mode? */
 
-       unsigned int             selectable;      /**< Is the text selectable? 
*/
+       unsigned char            delete_count;    /**< Number of deletes */
+       unsigned char            in_select;       /**< Are we in select mode? */
+
+       unsigned char            selectable;      /**< Is the text selectable? 
*/
+       unsigned char            dirty;           /**< Does the text need 
layout? */
 };
 
 Ewl_Widget     *ewl_text_new(void);




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to