gpointer enter_data;
gpointer tab_data;
gpointer tab_append_data;
-
+
GtkWidget *combo;
gboolean has_history;
gchar *history_key;
TabCompData *td = data;
GtkWidget *child;
-#if GTK_CHECK_VERSION(2,20,0)
if (!gtk_widget_get_visible(widget)) return;
-#else
- if (!GTK_WIDGET_VISIBLE(widget)) return;
-#endif
child = gtk_bin_get_child(GTK_BIN(widget));
if (GTK_IS_LABEL(child)) {
const gchar *entry_text = gtk_entry_get_text(GTK_ENTRY(td->entry));
const gchar *prefix = filename_from_path(entry_text);
guint prefix_len = strlen(prefix);
-
+
if (strlen(text) < prefix_len || strncmp(text, prefix, prefix_len))
{
/* Hide menu items not matching */
{
TabCompData *td = data;
- if (event->keyval == GDK_Tab ||
- event->keyval == GDK_BackSpace ||
+ if (event->keyval == GDK_KEY_Tab ||
+ event->keyval == GDK_KEY_BackSpace ||
(event->keyval >= 0x20 && event->keyval <= 0xFF) )
{
if (event->keyval >= 0x20 && event->keyval <= 0xFF)
buf[1] = '\0';
gtk_editable_insert_text(GTK_EDITABLE(td->entry), buf, 1, &p);
gtk_editable_set_position(GTK_EDITABLE(td->entry), -1);
-
+
/* Reduce the number of entries in the menu */
td->choices = 0;
gtk_container_foreach(GTK_CONTAINER(widget), tab_completion_iter_menu_items, (gpointer) td);
if (td->choices > 1) return TRUE; /* multiple choices */
if (td->choices > 0) tab_completion_do(td); /* one choice */
}
-
+
/* close the menu */
gtk_menu_popdown(GTK_MENU(widget));
/* doing this does not emit the "selection done" signal, unref it ourselves */
-#if GTK_CHECK_VERSION(2,12,0)
g_object_unref(widget);
-#else
- gtk_widget_unref(widget);
-#endif
return TRUE;
}
gtk_widget_get_requisition(td->entry, &requisition);
gtk_widget_get_allocation(td->entry, &allocation);
-
+
height = MIN(requisition.height, allocation.height);
if (req.height > monitor.y + monitor.height - *y - height &&
ptr = (gchar *)filename_from_path(entry_dir);
if (ptr > entry_dir) ptr--;
ptr[0] = '\0';
-
+
if (strlen(entry_dir) == 0)
{
g_free(entry_dir);
switch (event->keyval)
{
- case GDK_Tab:
+ case GDK_KEY_Tab:
if (!(event->state & GDK_CONTROL_MASK))
{
if (tab_completion_do(td))
stop_signal = TRUE;
}
break;
- case GDK_Return: case GDK_KP_Enter:
+ case GDK_KEY_Return: case GDK_KEY_KP_Enter:
if (td->fd_button &&
(event->state & GDK_CONTROL_MASK))
{
if (!td) return;
-#if GTK_CHECK_VERSION(2,20,0)
if (!gtk_widget_has_focus(entry))
-#else
- if (!GTK_WIDGET_HAS_FOCUS(entry))
-#endif
{
gtk_widget_grab_focus(entry);
}
gtk_widget_show(combo);
combo_entry = gtk_bin_get_child(GTK_BIN(combo));
-#if 0
- gtk_combo_set_case_sensitive(GTK_COMBO(combo), TRUE);
- gtk_combo_set_use_arrows(GTK_COMBO(combo), FALSE);
-#endif
button = tab_completion_create_complete_button(combo_entry, combo);
gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0);