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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs