Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.1:Update
gtk
gtk-filesel-dirchanged-fix.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gtk-filesel-dirchanged-fix.patch of Package gtk
diff --exclude=Makefile.in -Nrc -x *~ gtk+-1.2.10.orig/gtk/gtkfilesel.c gtk+-1.2.10/gtk/gtkfilesel.c *** gtk+-1.2.10.orig/gtk/gtkfilesel.c Tue Sep 25 13:32:32 2001 --- gtk+-1.2.10/gtk/gtkfilesel.c Tue Sep 25 13:44:11 2001 *************** *** 2337,2342 **** --- 2337,2343 ---- (GtkSignalFunc) gtk_button_clicked, GTK_OBJECT (filesel->ok_button)); gtk_box_pack_start (GTK_BOX (entry_vbox), filesel->selection_entry, TRUE, TRUE, 0); + gtk_object_set_data (GTK_OBJECT (filesel->selection_entry), "last_entry_was_dir_selection", (gpointer) FALSE); gtk_widget_show (filesel->selection_entry); if (!cmpl_state_okay (filesel->cmpl_state)) *************** *** 2974,2982 **** g_return_val_if_fail (widget != NULL, FALSE); g_return_val_if_fail (event != NULL, FALSE); if (event->keyval == GDK_Tab) { - fs = GTK_FILE_SELECTION (user_data); text = gtk_entry_get_text (GTK_ENTRY (fs->selection_entry)); text = g_strdup (text); --- 2975,2985 ---- g_return_val_if_fail (widget != NULL, FALSE); g_return_val_if_fail (event != NULL, FALSE); + fs = GTK_FILE_SELECTION (user_data); + gtk_object_set_data (GTK_OBJECT (fs->selection_entry), "last_entry_was_dir_selection", (gpointer) FALSE); + if (event->keyval == GDK_Tab) { text = gtk_entry_get_text (GTK_ENTRY (fs->selection_entry)); text = g_strdup (text); *************** *** 3129,3134 **** --- 3132,3138 ---- else gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename); + gtk_object_set_data (GTK_OBJECT (fs->selection_entry), "last_entry_was_dir_selection", (gpointer) FALSE); g_free (filename); } } *************** *** 3142,3147 **** --- 3146,3153 ---- { GtkFileSelection *fs = NULL; gchar *filename, *temp = NULL; + const gchar *entry_text; + gboolean last_entry_was_dir_selection; g_return_if_fail (GTK_IS_CLIST (widget)); *************** *** 3152,3157 **** --- 3158,3167 ---- gtk_clist_get_text (GTK_CLIST (fs->dir_list), row, 0, &temp); filename = g_strdup (temp); + entry_text = gtk_entry_get_text (GTK_ENTRY (fs->selection_entry)); + last_entry_was_dir_selection = (gboolean) gtk_object_get_data (GTK_OBJECT (fs->selection_entry), + "last_entry_was_dir_selection"); + if (filename) { if (bevent) *************** *** 3162,3175 **** break; default: ! gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename); break; } ! else ! gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename); g_free (filename); } } static void --- 3172,3195 ---- break; default: ! if (!entry_text || !strlen (entry_text) || last_entry_was_dir_selection) ! { ! gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename); ! last_entry_was_dir_selection = TRUE; ! } break; } ! else if (!entry_text || !strlen (entry_text) || last_entry_was_dir_selection) ! { ! gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename); ! last_entry_was_dir_selection = TRUE; ! } g_free (filename); } + + gtk_object_set_data (GTK_OBJECT (fs->selection_entry), "last_entry_was_dir_selection", + (gpointer) last_entry_was_dir_selection); } static void *************** *** 3312,3318 **** } else { ! if (fs->selection_entry) gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), ""); } --- 3332,3343 ---- } else { ! gboolean last_entry_was_dir_selection; ! ! last_entry_was_dir_selection = (gboolean) gtk_object_get_data (GTK_OBJECT (fs->selection_entry), ! "last_entry_was_dir_selection"); ! ! if (fs->selection_entry && last_entry_was_dir_selection) gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), ""); }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor