summaryrefslogtreecommitdiff
path: root/vcl/inc/unx/gtk/gtkframe.hxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-04-09 11:41:00 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-04-16 20:28:24 +0200
commitbc0e0f633b05c4f91b6695488fc9e5c127507ba5 (patch)
treecca168c8aced9207ffa877693b856440764de341 /vcl/inc/unx/gtk/gtkframe.hxx
parentde1dadd591862e38242cc2de7a4a658a9a8b67ac (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 'vcl/inc/unx/gtk/gtkframe.hxx')
-rw-r--r--vcl/inc/unx/gtk/gtkframe.hxx15
1 files changed, 15 insertions, 0 deletions
diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx
index d9d2d0d6631b..f62dd649dbef 100644
--- a/vcl/inc/unx/gtk/gtkframe.hxx
+++ b/vcl/inc/unx/gtk/gtkframe.hxx
@@ -529,6 +529,21 @@ AtkObject* ooo_fixed_get_accessible(GtkWidget *obj);
} // extern "C"
+#if !GTK_CHECK_VERSION(3, 22, 0)
+enum GdkAnchorHints
+{
+ GDK_ANCHOR_FLIP_X = 1 << 0,
+ GDK_ANCHOR_FLIP_Y = 1 << 1,
+ GDK_ANCHOR_SLIDE_X = 1 << 2,
+ GDK_ANCHOR_SLIDE_Y = 1 << 3,
+ GDK_ANCHOR_RESIZE_X = 1 << 4,
+ GDK_ANCHOR_RESIZE_Y = 1 << 5,
+ GDK_ANCHOR_FLIP = GDK_ANCHOR_FLIP_X | GDK_ANCHOR_FLIP_Y,
+ GDK_ANCHOR_SLIDE = GDK_ANCHOR_SLIDE_X | GDK_ANCHOR_SLIDE_Y,
+ GDK_ANCHOR_RESIZE = GDK_ANCHOR_RESIZE_X | GDK_ANCHOR_RESIZE_Y
+};
+#endif
+
#endif // INCLUDED_VCL_INC_UNX_GTK_GTKFRAME_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */