chiark / gitweb /
disobedience/choose-search.c: Fix segfault when search terms change.
[disorder] / disobedience / choose-search.c
index 1208f174f6996c4fcf2b5c6ee6dc0bdb41153786..83d3f743652578e482d4d2709f24e0708aa1ebcb 100644 (file)
@@ -289,6 +289,11 @@ static void choose_search_completed(void attribute((unused)) *v,
    * left over from the old search. */
   choose_auto_collapse();
   choose_search_hash = hash_new(1);
+  /* If we were still setting up the chooser to show previous search results
+   * then turn that off now.  We'll turn it back on again if necessary. */
+  event_cancel(choose_inserted_handle);
+  choose_inserted_handle = 0;
+  /* Start showing the results of our search. */
   if(nvec) {
     for(int n = 0; n < nvec; ++n)
       hash_add(choose_search_hash, vec[n], "", HASH_INSERT);
@@ -441,6 +446,7 @@ static gboolean choose_get_visible_range(GtkTreeView *tree_view,
  * @param direction -1 for prev, +1 for next
  */
 static void choose_move(int direction) {
+  assert(direction);                    /* placate analyzer */
   /* Refocus the main view so typahead find continues to work */
   gtk_widget_grab_focus(choose_view);
   /* If there's no results we have nothing to do */
@@ -515,15 +521,15 @@ GtkWidget *choose_search_widget(void) {
   gtk_widget_set_style(choose_search_entry, tool_style);
   g_signal_connect(choose_search_entry, "changed",
                    G_CALLBACK(choose_search_entry_changed), 0);
-  gtk_tooltips_set_tip(tips, choose_search_entry,
-                       "Enter search terms here; search is automatic", "");
+  gtk_widget_set_tooltip_text(choose_search_entry,
+                              "Enter search terms here; search is automatic");
 
   /* Cancel button to clear the search */
   choose_clear = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
   gtk_widget_set_style(choose_clear, tool_style);
   g_signal_connect(G_OBJECT(choose_clear), "clicked",
                    G_CALLBACK(choose_clear_clicked), 0);
-  gtk_tooltips_set_tip(tips, choose_clear, "Clear search terms", "");
+  gtk_widget_set_tooltip_text(choose_clear, "Clear search terms");
 
   /* Up and down buttons to find previous/next results; initially they are not
    * usable as there are no search results. */