forked from enlightenment/efl
elm_code_widget: keep track of visibility.
Keep track of visibility and ensure the cursor can never be filled when hidden. This should finally end any issue with the cursor and visibility with the new focus system. Didn't see this previously until working on Edi's bottom panes which caused redraw on resize of the widgets. @fix
This commit is contained in:
parent
c2fe37a46d
commit
e63e2d7e21
|
@ -270,7 +270,7 @@ _elm_code_widget_fill_cursor(Elm_Code_Widget *widget, unsigned int number, int g
|
||||||
|
|
||||||
pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS);
|
pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS);
|
||||||
|
|
||||||
if (pd->editable && pd->focussed && pd->cursor_line == number)
|
if (pd->visible && pd->editable && pd->focussed && pd->cursor_line == number)
|
||||||
{
|
{
|
||||||
if (pd->cursor_col + gutter - 1 >= (unsigned int) w)
|
if (pd->cursor_col + gutter - 1 >= (unsigned int) w)
|
||||||
return;
|
return;
|
||||||
|
@ -564,6 +564,7 @@ _elm_code_widget_show_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_
|
||||||
|
|
||||||
pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS);
|
pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS);
|
||||||
|
|
||||||
|
pd->visible = EINA_TRUE;
|
||||||
if (pd->cursor_rect)
|
if (pd->cursor_rect)
|
||||||
evas_object_show(pd->cursor_rect);
|
evas_object_show(pd->cursor_rect);
|
||||||
}
|
}
|
||||||
|
@ -577,6 +578,7 @@ _elm_code_widget_hidden_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EIN
|
||||||
|
|
||||||
pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS);
|
pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS);
|
||||||
|
|
||||||
|
pd->visible = EINA_FALSE;
|
||||||
if (pd->cursor_rect)
|
if (pd->cursor_rect)
|
||||||
evas_object_hide(pd->cursor_rect);
|
evas_object_hide(pd->cursor_rect);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ typedef struct
|
||||||
unsigned int cursor_line, cursor_col;
|
unsigned int cursor_line, cursor_col;
|
||||||
Evas_Object *cursor_rect;
|
Evas_Object *cursor_rect;
|
||||||
|
|
||||||
Eina_Bool editable, focussed;
|
Eina_Bool visible, editable, focussed;
|
||||||
Eina_Bool show_line_numbers;
|
Eina_Bool show_line_numbers;
|
||||||
unsigned int line_width_marker, tabstop;
|
unsigned int line_width_marker, tabstop;
|
||||||
Eina_Bool show_whitespace, tab_inserts_spaces;
|
Eina_Bool show_whitespace, tab_inserts_spaces;
|
||||||
|
|
Loading…
Reference in New Issue