mirror of
https://github.com/davatorium/rofi.git
synced 2024-11-25 13:55:34 -05:00
Don't recreate every string everytime.
This commit is contained in:
parent
2fe22cb7e2
commit
8ef7b4b794
9 changed files with 89 additions and 88 deletions
|
@ -237,12 +237,12 @@ static void listview_recompute_elements ( listview *lv )
|
||||||
}
|
}
|
||||||
lv->boxes = g_realloc ( lv->boxes, newne * sizeof ( textbox* ) );
|
lv->boxes = g_realloc ( lv->boxes, newne * sizeof ( textbox* ) );
|
||||||
if ( newne > 0 ) {
|
if ( newne > 0 ) {
|
||||||
|
char *name = g_strjoin ( ".", lv->listview_name, "element", NULL );
|
||||||
for ( unsigned int i = lv->cur_elements; i < newne; i++ ) {
|
for ( unsigned int i = lv->cur_elements; i < newne; i++ ) {
|
||||||
TextboxFlags flags = ( lv->multi_select ) ? TB_INDICATOR : 0;
|
TextboxFlags flags = ( lv->multi_select ) ? TB_INDICATOR : 0;
|
||||||
char *name = g_strjoin ( ".", lv->listview_name, "element", NULL );
|
|
||||||
lv->boxes[i] = textbox_create ( name, flags, NORMAL, "" );
|
lv->boxes[i] = textbox_create ( name, flags, NORMAL, "" );
|
||||||
g_free ( name );
|
|
||||||
}
|
}
|
||||||
|
g_free ( name );
|
||||||
}
|
}
|
||||||
lv->rchanged = TRUE;
|
lv->rchanged = TRUE;
|
||||||
lv->cur_elements = newne;
|
lv->cur_elements = newne;
|
||||||
|
|
|
@ -59,7 +59,8 @@ static PangoContext *p_context = NULL;
|
||||||
static PangoFontMetrics *p_metrics = NULL;
|
static PangoFontMetrics *p_metrics = NULL;
|
||||||
|
|
||||||
/** Cache to hold font descriptions. This it to avoid having to lookup each time. */
|
/** Cache to hold font descriptions. This it to avoid having to lookup each time. */
|
||||||
typedef struct TBFontConfig {
|
typedef struct TBFontConfig
|
||||||
|
{
|
||||||
/** Font description */
|
/** Font description */
|
||||||
PangoFontDescription *pfd;
|
PangoFontDescription *pfd;
|
||||||
/** Font metrics */
|
/** Font metrics */
|
||||||
|
@ -129,7 +130,8 @@ textbox* textbox_create ( const char *name, TextboxFlags flags, TextBoxFontType
|
||||||
if ( helper_validate_font ( tbfc->pfd, font ) ) {
|
if ( helper_validate_font ( tbfc->pfd, font ) ) {
|
||||||
tbfc->metrics = pango_context_get_metrics ( p_context, tbfc->pfd, NULL );
|
tbfc->metrics = pango_context_get_metrics ( p_context, tbfc->pfd, NULL );
|
||||||
g_hash_table_insert ( tbfc_cache, font, tbfc );
|
g_hash_table_insert ( tbfc_cache, font, tbfc );
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
pango_font_description_free ( tbfc->pfd );
|
pango_font_description_free ( tbfc->pfd );
|
||||||
g_free ( tbfc );
|
g_free ( tbfc );
|
||||||
tbfc = NULL;
|
tbfc = NULL;
|
||||||
|
@ -142,7 +144,6 @@ textbox* textbox_create ( const char *name, TextboxFlags flags, TextBoxFontType
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ( ( flags & TB_WRAP ) == TB_WRAP ) {
|
if ( ( flags & TB_WRAP ) == TB_WRAP ) {
|
||||||
pango_layout_set_wrap ( tb->layout, PANGO_WRAP_WORD_CHAR );
|
pango_layout_set_wrap ( tb->layout, PANGO_WRAP_WORD_CHAR );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue