Ticket #784: highlight-fix.diff

File highlight-fix.diff, 4.1 KB (added by tryagain, 10 years ago)

Should fix all above issues with highlighting in Bookmarks and POIs.

  • gui_internal.c

     
    22622262        int i;
    22632263        //wl=gui_internal_box_new(this, gravity_left_center|orientation_horizontal|flags_fill);
    22642264        wl=gui_internal_box_new(this, gravity_left_center|orientation_horizontal_vertical|flags_fill);
     2265        wl->background=this->background;
    22652266        wl->w=this->root.w;
    22662267        wl->cols=this->root.w/this->icon_s;
    22672268        nitems=sizeof(selectors)/sizeof(struct selector);
     
    24862487                wi->c.y=data->c.y;
    24872488                wi->c.pro=pro;
    24882489                wi->w=width;
     2490                wi->background=this->background;
    24892491                row = gui_internal_widget_table_row_new(this,
    24902492                                                          gravity_left
    24912493                                                          | flags_fill
    24922494                                                          | orientation_horizontal);
    2493                 row->children=g_list_append(row->children,wi);
     2495                gui_internal_widget_append(row,wi);
    24942496                row->datai=data->dist;
    24952497                gui_internal_widget_prepend(wtable,row);
    24962498                free(data->label);
     
    25202522                                                  gravity_left
    25212523                                                  | flags_fill
    25222524                                                  | orientation_horizontal);
    2523         row->children=g_list_append(row->children,wl);
    25242525        row->datai=100000000; // Really far away for Earth, but won't work for bigger planets.
    25252526        gui_internal_widget_append(wtable,row);
    2526 
     2527        gui_internal_widget_append(row,wl);
    25272528        // Rendering now is needed to have table_data->bottomrow filled in.
    25282529        gui_internal_menu_render(this);
    25292530        td=wtable->data;
     
    29842985
    29852986        gui_internal_prune_menu_count(this, 1, 0);
    29862987        wb=gui_internal_menu(this, _("Bookmarks"));
     2988        wb->background=this->background;
    29872989        w=gui_internal_box_new(this, gravity_top_center|orientation_vertical|flags_expand|flags_fill);
    29882990        w->spy=this->spacing*3;
    29892991        gui_internal_widget_append(wb, w);
     
    30463048                        }
    30473049                       
    30483050                        row=gui_internal_widget_table_row_new(this,gravity_left| flags_fill| orientation_horizontal);
     3051                        gui_internal_widget_append(tbl, row);
    30493052                        wbm=gui_internal_button_new_with_callback(this, label_full,
    30503053                                image_new_xs(this, hassub ? "gui_inactive" : "gui_active" ), gravity_left_center|orientation_horizontal|flags_fill,
    30513054                                        hassub ? gui_internal_cmd_bookmarks : gui_internal_cmd_position, NULL);
    30523055
    3053                         row->children=g_list_append(row->children,wbm);
     3056                        gui_internal_widget_append(row,wbm);
    30543057                        if (item_coord_get(item, &c, 1)) {
    30553058                                wbm->c.x=c.x;
    30563059                                wbm->c.y=c.y;
     
    30603063                                if (!hassub) {
    30613064                                        wbm->data=(void*)7;//Mark us as a bookmark
    30623065                                }
    3063                                 gui_internal_widget_append(tbl, row);
    30643066                                wbm->prefix=g_strdup(label_full);
    30653067                        } else {
    30663068                                gui_internal_widget_destroy(this, row);
     
    51175119gui_internal_keynav_find_closest(struct widget *wi, struct point *p, int dx, int dy, int *distance, struct widget **result)
    51185120{
    51195121        GList *l=wi->children;
    5120         if (wi->state & STATE_SENSITIVE) {
     5122        // Skip hidden elements
     5123        if (wi->p.x==0 && wi->p.y==0 && wi->w==0 && wi->h==0)
     5124                return;
     5125        if ((wi->state & STATE_SENSITIVE) ) {
    51215126                int dist1,dist2;
    51225127                struct point wp;
    51235128                gui_internal_keynav_point(wi, -dx, -dy, &wp);
     
    54665471        widget->flags=flags;
    54675472        widget->data = g_new0(struct table_data,1);
    54685473        widget->data_free=gui_internal_table_data_free;
     5474
     5475        // We have to set background here explicitly
     5476        // because it will be used by inner elements created later in this
     5477        // function (navigation buttons). Else that elements won't have
     5478        // any background.
     5479        widget->background=this->background;
    54695480        data = (struct table_data*)widget->data;
    54705481
    54715482        if (buttons) {
     
    54885499
    54895500        data->button_box=gui_internal_box_new(this,
    54905501                                              gravity_center|orientation_horizontal);
    5491         data->button_box->children=g_list_append(data->button_box->children,
    5492                                                  data->prev_button);
    5493         data->button_box->children=g_list_append(data->button_box->children,
    5494                                                  data->next_button);
    5495         //data->button_box->background=this->background2;
     5502        gui_internal_widget_append(widget, data->button_box);
     5503        gui_internal_widget_append(data->button_box, data->prev_button);
     5504        gui_internal_widget_append(data->button_box, data->next_button);
     5505
    54965506        data->button_box->bl=this->spacing;
    5497         widget->children=g_list_append(widget->children,data->button_box);
    54985507        gui_internal_widget_pack(this,data->button_box);
    54995508        }
    55005509