forked from AuroraMiddleware/gtk
5c339f2844
Make sure we're correctly resetting the internal key capture widget pointer when the widget goes away.
55 lines
1.4 KiB
C
55 lines
1.4 KiB
C
#include <gtk/gtk.h>
|
|
|
|
static void
|
|
capture_widget_destroy (void)
|
|
{
|
|
GtkWidget *searchbar = gtk_search_bar_new ();
|
|
GtkWidget *button = gtk_button_new ();
|
|
|
|
g_object_ref_sink (searchbar);
|
|
g_object_ref_sink (button);
|
|
|
|
gtk_search_bar_set_key_capture_widget (GTK_SEARCH_BAR (searchbar), button);
|
|
|
|
g_assert (gtk_search_bar_get_key_capture_widget (GTK_SEARCH_BAR (searchbar)) == button);
|
|
|
|
g_object_unref (button);
|
|
|
|
g_assert (gtk_search_bar_get_key_capture_widget (GTK_SEARCH_BAR (searchbar)) == NULL);
|
|
|
|
g_object_unref (searchbar);
|
|
}
|
|
|
|
static void
|
|
capture_widget_unset (void)
|
|
{
|
|
GtkWidget *searchbar = gtk_search_bar_new ();
|
|
GtkWidget *button = gtk_button_new ();
|
|
|
|
g_object_ref_sink (searchbar);
|
|
g_object_ref_sink (button);
|
|
|
|
gtk_search_bar_set_key_capture_widget (GTK_SEARCH_BAR (searchbar), button);
|
|
|
|
g_assert (gtk_search_bar_get_key_capture_widget (GTK_SEARCH_BAR (searchbar)) == button);
|
|
|
|
gtk_search_bar_set_key_capture_widget (GTK_SEARCH_BAR (searchbar), NULL);
|
|
|
|
g_assert (gtk_search_bar_get_key_capture_widget (GTK_SEARCH_BAR (searchbar)) == NULL);
|
|
|
|
g_object_unref (searchbar);
|
|
g_object_unref (button);
|
|
}
|
|
|
|
int
|
|
main (int argc,
|
|
char *argv[])
|
|
{
|
|
gtk_test_init (&argc, &argv);
|
|
|
|
g_test_add_func ("/searchbar/capture-widget-destroy", capture_widget_destroy);
|
|
g_test_add_func ("/searchbar/capture-widget-unset", capture_widget_unset);
|
|
|
|
return g_test_run();
|
|
}
|