Bug 796762 - Scrollbar partially hides the delete button in

the Saved Report Configurations window

The vertical scrollbar obscures the delete button in the tree view so
add a dummy blank column to the end and set it to the width of the
vertical scrollbar.
pull/386/head
Robert Fewell 8 years ago
parent fa1b4c685f
commit 93030c61f1

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<!-- Generated with glade 3.20.4 -->
<interface>
<requires lib="gtk+" version="3.10"/>
<object class="GtkDialog" id="custom_report_dialog">
@ -66,7 +66,7 @@
</packing>
</child>
<child>
<object class="GtkScrolledWindow" id="scrolledwindow1">
<object class="GtkScrolledWindow" id="custom_report_sw">
<property name="width_request">300</property>
<property name="height_request">150</property>
<property name="visible">True</property>
@ -124,5 +124,8 @@ the Reports menu or tool bar.</property>
<action-widgets>
<action-widget response="0">close_report_button</action-widget>
</action-widgets>
<child>
<placeholder/>
</child>
</object>
</interface>

@ -73,6 +73,7 @@ typedef struct _CustomReportDialog
GtkTreeViewColumn *runcol;
GtkTreeViewColumn *editcol;
GtkTreeViewColumn *delcol;
GtkTreeViewColumn *dummycol;
/* data */
SCM reportlist;
@ -195,6 +196,7 @@ set_reports_view_and_model(CustomReportDialog *crd)
{
GtkCellRenderer *renderer;
GtkTreeModel *model;
gint number_of_columns;
crd->namerenderer = gtk_cell_renderer_text_new();
g_signal_connect (G_OBJECT (crd->namerenderer), "edited",
@ -227,6 +229,14 @@ set_reports_view_and_model(CustomReportDialog *crd)
NULL);
crd->delcol = gtk_tree_view_get_column (GTK_TREE_VIEW (crd->reportview), VIEW_COL_DELETE);
// this is a dummy column which will be set the same width of the vertical scrollbar
renderer = gtk_cell_renderer_text_new();
number_of_columns = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (crd->reportview), -1,
"", renderer,
NULL);
crd->dummycol = gtk_tree_view_get_column (GTK_TREE_VIEW (crd->reportview), number_of_columns -1);
model = create_and_fill_report_list(crd);
gtk_tree_view_set_model (GTK_TREE_VIEW (crd->reportview), model);
@ -495,6 +505,9 @@ gnc_ui_custom_report_internal(GncMainWindow * window)
GtkTreeIter iter;
GtkTreeModel *model;
GtkWidget *no_report_notification;
GtkWidget *scroll_window;
GtkWidget *vscroll;
GtkRequisition nat_sb;
crd = g_new0(CustomReportDialog, 1);
@ -503,10 +516,18 @@ gnc_ui_custom_report_internal(GncMainWindow * window)
crd->dialog = GTK_WIDGET(gtk_builder_get_object (builder, "custom_report_dialog"));
crd->reportview = GTK_WIDGET(gtk_builder_get_object (builder, "custom_report_list_view"));
scroll_window = GTK_WIDGET(gtk_builder_get_object (builder, "custom_report_sw"));
no_report_notification = GTK_WIDGET(gtk_builder_get_object (builder, "label2"));
set_reports_view_and_model(crd);
crd->window = window;
// get the vertical scroll bar width
vscroll = gtk_scrolled_window_get_vscrollbar (GTK_SCROLLED_WINDOW (scroll_window));
gtk_widget_get_preferred_size (vscroll, NULL, &nat_sb);
// set the width of the dummy column to that of the scrollbar
gtk_tree_view_column_set_fixed_width (crd->dummycol, nat_sb.width);
gtk_window_set_transient_for (GTK_WINDOW (crd->dialog), GTK_WINDOW(window));
// Set the style context for this dialog so it can be easily manipulated with css

Loading…
Cancel
Save