Method

HandySearchBarhandle_event

Declaration [src]

gboolean
hdy_search_bar_handle_event (
  HdySearchBar* self,
  GdkEvent* event
)

Description [src]

Handles key press events.

This function should be called when the top-level window which contains the search bar received a key event.

If the key event is handled by the search bar, the bar will be shown, the entry populated with the entered text and GDK_EVENT_STOP will be returned. The caller should ensure that events are not propagated further.

If no entry has been connected to the search bar, using hdy_search_bar_connect_entry(), this function will return immediately with a warning.

Showing the search bar on key presses

static gboolean
on_key_press_event (GtkWidget *widget,
                    GdkEvent  *event,
                    gpointer   user_data)
{
  HdySearchBar *bar = HDY_SEARCH_BAR (user_data);
  return hdy_search_bar_handle_event (self, event);
}

static void
create_toplevel (void)
{
  GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  GtkWindow *search_bar = hdy_search_bar_new ();

  // Add more widgets to the window...

  g_signal_connect (window,
                   "key-press-event",
                    G_CALLBACK (on_key_press_event),
                    search_bar);
}
Available since:1.0

Parameters

event

Type: GdkEvent

A GdkEvent containing key press events.

The data is owned by the caller of the function.

Return value

Type: gboolean

GDK_EVENT_STOP if the key press event resulted in text being entered in the search entry (and revealing the search bar if necessary), GDK_EVENT_PROPAGATE otherwise.