mirror of
https://github.com/lbonn/rofi
synced 2024-11-26 22:00:20 +00:00
Fix multiple -theme-str lines parsing, fix num lines
This commit is contained in:
parent
ce2cf6b2d9
commit
26efbecbc3
4 changed files with 41 additions and 8 deletions
|
@ -100,14 +100,14 @@ void listview_nav_down ( listview *lv );
|
|||
*/
|
||||
void listview_nav_right ( listview *lv );
|
||||
/**
|
||||
* @param lv The listview handle
|
||||
* @param lv The listview handle
|
||||
*
|
||||
* Move the selection one column to the left.
|
||||
* - No wrap around.
|
||||
*/
|
||||
void listview_nav_left ( listview *lv );
|
||||
/**
|
||||
* @param lv The listview handle
|
||||
* @param lv The listview handle
|
||||
*
|
||||
* Move the selection one page down.
|
||||
* - No wrap around.
|
||||
|
@ -116,7 +116,7 @@ void listview_nav_left ( listview *lv );
|
|||
void listview_nav_page_next ( listview *lv );
|
||||
|
||||
/**
|
||||
* @param lv The listview handle
|
||||
* @param lv The listview handle
|
||||
*
|
||||
* Move the selection one page up.
|
||||
* - No wrap around.
|
||||
|
@ -185,6 +185,23 @@ void listview_set_num_lines ( listview *lv, unsigned int num_lines );
|
|||
* @returns get the numger of lines to display.
|
||||
*/
|
||||
unsigned int listview_get_num_lines ( listview *lv );
|
||||
|
||||
/**
|
||||
* @param lv Handler to the listview object.
|
||||
*
|
||||
* Get the fixed-height property.
|
||||
*
|
||||
* @returns get fixed-height.
|
||||
*/
|
||||
gboolean listview_get_fixed_num_lines ( listview *lv );
|
||||
|
||||
/**
|
||||
* @param lv Handler to the listview object.
|
||||
*
|
||||
* Set fixed num lines mode.
|
||||
*/
|
||||
void listview_set_fixed_num_lines ( listview *lv );
|
||||
|
||||
/**
|
||||
* @param lv Handler to the listview object.
|
||||
* @param max_lines the maximum number of lines to display.
|
||||
|
|
|
@ -309,7 +309,7 @@ const char ** find_arg_strv ( const char *const key )
|
|||
int index = 0;
|
||||
for ( int i = 0; i < stored_argc; i++ ) {
|
||||
if ( strcasecmp ( stored_argv[i], key ) == 0 && i < (stored_argc -1 ) ){
|
||||
retv[index] = stored_argv[i+1];
|
||||
retv[index++] = stored_argv[i+1];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -255,7 +255,7 @@ static void rofi_view_calculate_window_position ( RofiViewState *state )
|
|||
{
|
||||
int location = rofi_theme_get_position ( WIDGET ( state->main_window ), "location", config.location );
|
||||
int anchor = location;
|
||||
if ( !config.fixed_num_lines ) {
|
||||
if ( !listview_get_fixed_num_lines ( state->list_view ) ) {
|
||||
anchor = location;
|
||||
if ( location == WL_CENTER ) {
|
||||
anchor = WL_NORTH;
|
||||
|
@ -1547,7 +1547,9 @@ RofiViewState *rofi_view_create ( Mode *sw,
|
|||
listview_set_multi_select ( state->list_view, ( state->menu_flags & MENU_INDICATOR ) == MENU_INDICATOR );
|
||||
listview_set_scroll_type ( state->list_view, config.scroll_method );
|
||||
listview_set_mouse_activated_cb ( state->list_view, rofi_view_listview_mouse_activated_cb, state );
|
||||
listview_set_num_lines ( state->list_view, config.menu_lines );
|
||||
|
||||
int lines = rofi_theme_get_integer ( WIDGET (state->list_view ), "lines", config.menu_lines );
|
||||
listview_set_num_lines ( state->list_view, lines );
|
||||
listview_set_max_lines ( state->list_view, state->num_lines );
|
||||
|
||||
box_add ( state->main_box, WIDGET ( state->list_view ), TRUE, 3);
|
||||
|
@ -1561,7 +1563,7 @@ RofiViewState *rofi_view_create ( Mode *sw,
|
|||
widget_resize ( WIDGET ( state->main_window ), state->width, 100);
|
||||
// Only needed when window is fixed size.
|
||||
if (( CacheState.flags & MENU_NORMAL_WINDOW ) == MENU_NORMAL_WINDOW ) {
|
||||
config.fixed_num_lines = TRUE;
|
||||
listview_set_fixed_num_lines ( state->list_view );
|
||||
rofi_view_window_update_size ( state );
|
||||
}
|
||||
// Move the window to the correct x,y position.
|
||||
|
@ -1596,7 +1598,7 @@ int rofi_view_error_dialog ( const char *msg, int markup )
|
|||
|
||||
// Make sure we enable fixed num lines when in normal window mode.
|
||||
if ( (CacheState.flags&MENU_NORMAL_WINDOW) == MENU_NORMAL_WINDOW){
|
||||
config.fixed_num_lines = TRUE;
|
||||
listview_set_fixed_num_lines ( state->list_view );
|
||||
}
|
||||
rofi_view_calculate_window_width ( state );
|
||||
// Need to resize otherwise calculated desired height is wrong.
|
||||
|
|
|
@ -605,3 +605,17 @@ void listview_set_max_lines ( listview *lv, unsigned int max_lines )
|
|||
lv->max_displayed_lines = max_lines;
|
||||
}
|
||||
}
|
||||
|
||||
gboolean listview_get_fixed_num_lines ( listview *lv )
|
||||
{
|
||||
if ( lv ) {
|
||||
return lv->fixed_num_lines;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
void listview_set_fixed_num_lines ( listview *lv )
|
||||
{
|
||||
if ( lv ) {
|
||||
lv->fixed_num_lines = TRUE;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue