[gtk+/sdk/2965: 18/30] testoverlay: Add new input stacking test
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/sdk/2965: 18/30] testoverlay: Add new input stacking test
- Date: Sat, 11 Jul 2015 00:41:36 +0000 (UTC)
commit e6e2e08bf1081d449233c4c481bb4c07827ed962
Author: Alexander Larsson <alexl redhat com>
Date: Mon Jun 8 15:31:02 2015 +0200
testoverlay: Add new input stacking test
In this case we have a bunch of interactive main children
of the overlay, and then a centered overlay that contains both
non-interactive (labels) and interactive (entry) widgets.
This shows off a problem where the non-interactive parts (the labels)
steals input from the overlay main children (breaks button click and
hover effects).
https://bugzilla.gnome.org/show_bug.cgi?id=750568
https://bugs.freedesktop.org/show_bug.cgi?id=90917
tests/testoverlay.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 53 insertions(+), 0 deletions(-)
---
diff --git a/tests/testoverlay.c b/tests/testoverlay.c
index 0aded37..23718b8 100644
--- a/tests/testoverlay.c
+++ b/tests/testoverlay.c
@@ -410,6 +410,55 @@ G_GNUC_END_IGNORE_DEPRECATIONS
return win;
}
+static GtkWidget *
+test_input_stacking (void)
+{
+ GtkWidget *win;
+ GtkWidget *overlay;
+ GtkWidget *label, *entry;
+ GtkWidget *grid;
+ GtkWidget *button;
+ GtkWidget *vbox;
+ int i,j;
+
+ win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_title (GTK_WINDOW (win), "Input Stacking");
+
+ overlay = gtk_overlay_new ();
+ grid = gtk_grid_new ();
+ gtk_container_add (GTK_CONTAINER (overlay), grid);
+
+ for (j = 0; j < 5; j++)
+ {
+ for (i = 0; i < 5; i++)
+ {
+ button = gtk_button_new_with_label (" ");
+ gtk_widget_set_hexpand (button, TRUE);
+ gtk_widget_set_vexpand (button, TRUE);
+ gtk_grid_attach (GTK_GRID (grid), button, i, j, 1, 1);
+ }
+ }
+
+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
+ gtk_overlay_add_overlay (GTK_OVERLAY (overlay), vbox);
+ gtk_widget_set_halign (vbox, GTK_ALIGN_CENTER);
+ gtk_widget_set_valign (vbox, GTK_ALIGN_CENTER);
+
+ label = gtk_label_new ("This is some overlaid text\n"
+ "It does not get input\n"
+ "But the entry does");
+ gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 8);
+
+ entry = gtk_entry_new ();
+ gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 8);
+
+
+ gtk_container_add (GTK_CONTAINER (win), overlay);
+
+ return win;
+}
+
+
int
main (int argc, char *argv[])
{
@@ -420,6 +469,7 @@ main (int argc, char *argv[])
GtkWidget *win5;
GtkWidget *win6;
GtkWidget *win7;
+ GtkWidget *win8;
gtk_init (&argc, &argv);
@@ -447,6 +497,9 @@ main (int argc, char *argv[])
win7 = test_stacking ();
gtk_widget_show_all (win7);
+ win8 = test_input_stacking ();
+ gtk_widget_show_all (win8);
+
gtk_main ();
return 0;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]