diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-04-09 11:41:00 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-04-16 20:28:24 +0200 |
commit | bc0e0f633b05c4f91b6695488fc9e5c127507ba5 (patch) | |
tree | cca168c8aced9207ffa877693b856440764de341 /solenv | |
parent | de1dadd591862e38242cc2de7a4a658a9a8b67ac (diff) |
tdf#131120 use a replacement for GtkComboBox
the problems with GtkComboBox we have are:
1) https://gitlab.gnome.org/GNOME/gtk/issues/1910 has_entry long menus take
forever to appear (tdf#125388)
on measuring each row, the GtkComboBox GtkTreeMenu will call its
area_apply_attributes_cb function on the row, but that calls
gtk_tree_menu_get_path_item which then loops through each child of the menu
looking for the widget of the row, so performance drops to useless.
All area_apply_attributes_cb does it set menu item sensitivity, so block it
from running with fragile hackery which assumes that the unwanted callback is
the only one with a
2) https://gitlab.gnome.org/GNOME/gtk/issues/94
when a super tall combobox menu is activated, and the selected entry is
sufficiently far down the list, then the menu doesn't appear under wayland
3) https://gitlab.gnome.org/GNOME/gtk/issues/310
no typeahead support
4) we want to be able to control the width of the button, but have a drop down menu which
is not limited to the width of the button
5) https://bugs.documentfoundation.org/show_bug.cgi?id=131120
super tall menu doesn't appear under X sometimes
In general we often pack a lot into the comboboxes and the default ones don't
like that.
Overlay scrolling is turned off for the GtkTreeView replacement because
otherwise there are null-derefs in gtk on indicator->scrollbar on repeated
reopenings
Change-Id: I1b6164020996377341b5992d593a027b76021f65
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91990
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/sanitizers/ui/vcl.suppr | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/solenv/sanitizers/ui/vcl.suppr b/solenv/sanitizers/ui/vcl.suppr index e5ad013909f9..b26735592919 100644 --- a/solenv/sanitizers/ui/vcl.suppr +++ b/solenv/sanitizers/ui/vcl.suppr @@ -3,6 +3,8 @@ vcl/uiconfig/ui/aboutbox.ui://GtkLabel[@id='logoreplacement'] orphan-label vcl/uiconfig/ui/aboutbox.ui://GtkTextView[@id='version'] no-labelled-by vcl/uiconfig/ui/aboutbox.ui://GtkLabel[@id='description'] orphan-label vcl/uiconfig/ui/aboutbox.ui://GtkLabel[@id='copyright'] orphan-label +vcl/uiconfig/ui/combobox.ui://GtkEntry[@id='entry'] no-labelled-by +vcl/uiconfig/ui/combobox.ui://GtkToggleButton[@id='button'] button-no-label vcl/uiconfig/ui/cupspassworddialog.ui://GtkLabel[@id='text'] orphan-label vcl/uiconfig/ui/printdialog.ui://GtkEntry[@id='pageedit-nospin'] no-labelled-by vcl/uiconfig/ui/printdialog.ui://GtkLabel[@id='totalnumpages'] orphan-label |