2004-07-10 Matthias Clasen * === Released 2.4.4 === 2004-07-09 Federico Mena Quintero Merged from HEAD: Fixes #137031: * gtk/gtkfilesystemunix.c (get_fallback_icon): New helper function, fetches a stock icon as a fallback. (gtk_file_system_unix_volume_render_icon): Fall back to a stock icon. (gtk_file_system_unix_render_icon): Fall back to a stock icon. Use helper functions rather than being a mega-function. (get_icon_name_for_directory): Renamed from get_icon_for_directory(). (get_icon_type_from_path): New helper function; code pulled out from gtk_file_system_unix_render_icon(). (get_special_icon): Likewise. (get_icon_for_mime_type): Likewise. 2004-07-09 Matthias Clasen * gtk/gtktooltips.c (gtk_tooltips_paint_window): Use the requisition of the widget instead of relying on the style drawing function to supply the size of the drawable. (#146531) 2004-07-09 Matthias Clasen * NEWS: Updates. 2004-07-09 Matthias Clasen Make GtkEntry work harder to protect passwords: (#143955, Morten Welinder) * gtk/gtkentry.c (gtk_entry_destroy): Add a destroy handler to clear the password even if the widget is leaked. * gtk/gtkentry.c (gtk_entry_real_delete_text): * gtk/gtkentry.c (gtk_entry_finalize): Zero out the memory before freeing it. * gtk/gtkentry.c (gtk_entry_real_insert_text): Zero and free the old memory instead of just reallocating it. * gtk/gtkentry.c (gtk_entry_create_layout): Don't leak text direction information for passwords. 2004-07-09 Matthias Clasen * gtk/gtkstyle.c: Fix some cases where style functions were not handling widget == NULL properly. (#146282) Thu Jul 8 22:16:18 2004 Matthias Clasen * gtk/gtkiconfactory.c (get_default_icons): * gtk/stock-icons/Makefile.am: Add stock file and directory icons in sizes 16 and 24. Do not add the stock ids to the gtkstock.h, since they are only for internal use on the 2.4 branch. 2004-07-08 Federico Mena Quintero Merged from HEAD: Fix #139290: * gtk/gtkfilesystemmodel.c (_gtk_file_system_model_new): Add a GError argument. Do check for errors when getting the GtkFileFolder: get the folder and read the children before actually creating the model. Removed obsolete code that handled roots-changed on the file system. (file_model_node_get_info): Assert that we don't reach the old case to display file system roots. (roots_changed_callback): Removed. * gtk/gtkfilechooserdefault.c (set_list_model): Add a GError argument, and a boolean return value. Return an error if we cannot create the file system model. On error, set a NULL model on the tree. (gtk_file_chooser_default_set_current_folder): Use the error value from set_list_model(). (gtk_file_chooser_default_set_property): Set the show_hidden property only if the browse_files_model exists. (gtk_file_chooser_default_unselect_path): Only operate if the browse_files_model exists. (check_preview_change): Check whether we have the sort_model. (change_folder_and_display_error): Copy the path we get passed before using it. There's a comment in there that explains why we need to copy it; basically, if the passed path belongs to the model, the model may go away in the middle of this function and we'll be left with a dangling pointer. (install_list_model_filter): Assert that the model is not NULL. (set_current_filter): Check whether the model exists. * gtk/gtktreeselection.c (gtk_tree_selection_get_selected): Don't g_return_if_fail if the model is NULL. (gtk_tree_selection_get_selected_rows): Likewise. (gtk_tree_selection_count_selected_rows): Likewise. (gtk_tree_selection_selected_foreach): Likewise. (gtk_tree_selection_path_is_selected): Likewise; rather just return FALSE. (gtk_tree_selection_select_all): Likewise. (gtk_tree_selection_unselect_all): Likewise. (gtk_tree_selection_select_range): Do g_return_if_fail() if the model is NULL. (gtk_tree_selection_unselect_range): Likewise. * gtk/gtkfilesystemunix.c (fill_in_names): Return immediately if g_dir_open() fails: there is no need to set the error ourselves, as g_dir_open() already does it. 2004-07-08 Matthias Clasen * gtk/gtktreeview.c (gtk_tree_view_set_search_equal_func): Allow to restore the default search function. (#145365, John Finlay) * gdk/x11/gdkdnd-x11.c (xdnd_send_xevent): Don't leak references to the drag context. (#144324, Alex Larsson) Thu Jul 8 00:33:15 2004 Matthias Clasen * gtk/gtktreeview.c (gtk_tree_view_set_model): Stop editing when a new model is set. (#145566, Dmitry M. Shatrov) Wed Jul 7 23:44:32 2004 Matthias Clasen * gtk/gtkimage.c (gtk_image_expose): Make sure that subpixbufs are properly aligned for gdk_pixbuf_saturate_and_pixelate(), in order to avoid rendering artifacts from misaligned pixelation patterns. (#145585, Felipe Heidrich, Billy Biggs) Tue Jul 6 23:00:32 2004 Matthias Clasen * gdk/x11/gdkwindow-x11.c (_gdk_x11_window_set_user_time): Fix a 64bit alignment issue. (#144302, Sunil) 2004-07-07 Tor Lillqvist * gdk/win32/gdkdrawable-win32.c (gdk_win32_draw_text) * gdk/win32/gdkfont-win32.c (gdk_text_extents) * gdk/win32/gdkproperty-win32.c (find_common_locale, gdk_property_change) * gdk/win32/gdkselection-win32.c (gdk_selection_convert): Use g_utf8_to_utf16() instead of the removed _gdk_utf8_to_ucs2() (see below). * gdk/win32/gdkglobals-win32.c * gdk/win32/gdkmain-win32.c (_gdk_windowing_init) * gdk/win3/gdkprivate-win32.h: Add a variable for the TARGETS atom. Initialize it. Declare it. Drop the variable for the COMPOUND_TEXT atom. * gdk/win32/gdkim-win32.c (gdk_wcstombs): Don't return UTF-8. This function is supposed to return the string in the locale's charset and encoding. Use g_convert(). (gdk_mbstowcs): Similarily, don't take an UTF-8 string, but a string in the locale's charset. Use g_convert(). (_gdk_ucs2_to_utf8, _gdk_utf8_to_wcs, _gdk_utf8_to_ucs2): Delete. The UCS-2 functions didn't handle surrogates anyway. Use GLib's UTF-16 functions instead. Windows uses UTF-16. * gdk/win32/gdkprivate-win32.h: Remove declarations of the deleted functions mentioned above. * gdk/win32/gdkproperty-win32.c (gdk_property_change): Use CF_TEXT also if the string is of type STRING, i.e. ISO-8859-1, and the current codepage is 1252, and contains no C1 chars. Accept also UTF8_STRING. * gdk/win32/gdkselection-win32.c (_gdk_selection_property_store): Mark as static. When storing STRING data, convert to Latin-1. (#140537) (gdk_selection_owner_set_for_display): Now that STRING is always ISO-8859-1, use UTF8_STRING when sending the selection request to ourselves. (gdk_selection_convert): Handle also UTF8_STRING. (#140537, John Ehresman) (gdk_text_property_to_text_list_for_display): Make work more like X11 version. Do obey the encoding parameter. (gdk_string_to_compound_text_for_display, gdk_utf8_to_compound_text_for_display): Don't even pretend supporting COMPOUND_TEXT. (gdk_utf8_to_string_target): Convert to ISO-8859-1, like on X11. (sanitize_utf8): Zero-terminate string. Tue Jul 6 10:00:22 2004 Jonathan Blandford Fix for #136496, Pawel Salek: * gtk/gtktreeview.c (gtk_tree_view_row_changed): Queue a redraw on a node when it changes in fixed_height mode. (gtk_tree_view_node_queue_redraw): new function to queue a redraw on a node. 2004-07-06 Matthias Clasen * gtk/gtkmenu.c (gtk_menu_position): Make sure private->monitor_num is a valid monitor number before using it. (#139187, Michael Natterer) 2004-06-25 Matthias Clasen * gtk/gtkfontbutton.c (gtk_font_button_update_font_info): Avoid a crash if the font doesn't exist. (#144967, Yevgen Muntyan) Tue Jul 6 02:00:28 2004 Matthias Clasen * gtk/gtkfilechooserdefault.c (popup_position_func): * gtk/gtkentry.c (popup_position_func): * gtk/gtktextview.c (popup_position_func): Improve positioning of keyboard-activated menus with Xinerama. Tue Jul 6 00:29:03 2004 Matthias Clasen * gtk/gtkuimanager.c (do_updates): (do_updates_idle): Only call GDK_THREADS_ENTER() / _LEAVE() when called from an idle handler. (#145429, Jan-Marek Glogowski) Mon Jul 5 23:47:38 2004 Matthias Clasen * gtk/gtkfilechooserutils.c (delegate_notify): Use the less efficient g_object_interface_find_property () instead of the param_id range check, since the GParamSpecs we're dealing with are the overridden onces on the interface, whose param_id is always zero. (#145312, Alex Roitman, fix proposed by Owen Taylor) Sun Jul 4 01:29:35 2004 Matthias Clasen * gtk/gtkcalendar.c (gtk_calendar_drag_data_get): (gtk_calendar_drag_data_received): Fix off-by-one error. GDate month is one-based and GtkCalendar month is zero-based. (#145134, William Jon McCann) Sun Jul 4 01:11:07 2004 Matthias Clasen * gtk/gtktreestore.c (gtk_tree_store_move): Don't crash if somebody tries to move a node after itself in a list of length 1. (#145291, Sampo Nurmentaus) Sat Jul 3 23:43:23 2004 Matthias Clasen * docs/faq/gtk-faq.sgml: * gtk/gtkwindow.c: Fix links to www.freedesktop.org. (#145210, Billy Biggs) Sat Jul 3 02:09:51 2004 Matthias Clasen * gtk/gtksocket.c (gtk_socket_end_embedding): Reset current_width and current_height to 0 when ending the embedding. (#143675, Nickolay V. Shmyrev) Sat Jul 3 01:48:19 2004 Matthias Clasen * gtk/gtkentry.c (gtk_entry_move_visually): Let the cursor move to the right end of the entry text, even if it ends in combining marks. (#141728, Theppitak Karoonboonyanan) Fri Jul 2 23:34:33 2004 Matthias Clasen * gtk/gtkcombobox.c (gtk_combo_box_unset_model): Unset the displayed row when unsetting the model. (#138560, Christian Persch) Fri Jul 2 22:41:27 2004 Matthias Clasen * gtk/gtkimage.c (gtk_image_expose): Properly align mask and pixbuf if a subarea is exposed. (#135423, fix by John Ehresman) 2004-07-01 J. Ali Harlow * gdk/win32/gdkinput-win32.c (_gdk_input_ungrab_pointer): Fix win32 build problem w/o wintab. Fixed #145242 Sat Jun 26 01:15:40 2004 Matthias Clasen * gdk/x11/gdkwindow-x11.c (set_initial_hints): Handle _NET_WM_STATE_ABOVE and _NET_WM_STATE_BELOW. (#144851, Billy Biggs) Sat Jun 26 01:04:31 2004 Matthias Clasen * gtk/gtkiconfactory.c (clear_cache): Prevent unwanted recursion by resetting icon_set->cache before freeing the cache. (#144947, Tim Janik) Sat Jun 26 00:40:02 2004 Matthias Clasen * gtk/gtkiconfactory.c (render_icon_name_pixbuf): * gtk/gtkiconfactory.c (gtk_icon_set_render_icon): * gtk/gtkstyle.c (gtk_default_render_icon): Accept a NULL style. Sat Jun 26 00:06:38 2004 Matthias Clasen * gtk/gtkentrycompletion.c (gtk_entry_completion_set_model): * gtk/gtkcombobox.c (gtk_combo_box_set_model): Reflect the last change in the docs. Fri Jun 25 23:35:42 2004 Matthias Clasen * gtk/gtkentrycompletion.c (gtk_entry_completion_set_model): * gtk/gtkcombobox.c (gtk_combo_box_set_model): Allow passing NULL to unset the model. (#137211, patch by Mariano Suárez-Alvarez) Fri Jun 25 23:33:05 2004 Matthias Clasen * gtk/gtkcombobox.c (gtk_combo_box_menu_position_below): Fix the placement policy for GtkComboBoxEntry to be: if it fits below, place below, if it fits above place above, else place in the larger space and scroll so that the scroll arrow appear at the far end. (#144362, David A. Knight) Fri Jun 25 22:49:58 2004 Matthias Clasen * gtk/gtktreestore.c (gtk_tree_store_move): Avoid uninitialized use of &parent_iter. (#145007, John Finlay) 2004-06-25 Bastien Nocera reviewed by: Matthias Clasen * gdk/x11/gdkkeys-x11.c: (get_symbol), (update_keymaps), (gdk_keymap_lookup_key), (translate_keysym): fix keys parsing when the number of keysyms per keycode is odd. Fixes #144808. Fri Jun 25 00:32:15 2004 Matthias Clasen * gtk/gtktreestore.c (gtk_tree_store_swap): Commit the change which was mentioned below. 2004-06-22 Federico Mena Quintero Merged from HEAD: * gtk/gtkfilechooserdefault.c (location_popup_handler): Use a Save or an Open stock button for the C-l dialog depending on the action in which the file chooser operates. Fixes #141753. 2004-06-22 Federico Mena Quintero Merged from HEAD: Fixes the GTK+ part of #142308: * gtk/gtkfilesystemunix.c (gtk_file_system_unix_filename_to_path): Use filename_to_path(). (gtk_file_system_unix_uri_to_path): Likewise. (filename_to_path): Use remove_trailing_slash(). 2004-06-22 Matthias Clasen * gtk/gtkaccelmap.c (_gtk_accel_path_is_valid): Accept "" as a valid accel path. (#144427, Philip Kendall) * gtk/gtkselection.c (GTK_SELECTION_MAX_SIZE): Make sure this gets defined for all backends, so linux-fb has a chance of compiling. * gtk/gtktreestore.c (gtk_tree_store_swap): Make this work for children of the root. (#139785, Jean-François Wauthy, patch by John Finlay) * gtk/gtkicontheme.h (GTK_ICON_THEME_GET_CLASS): Typo fix. (#144750, Jeff Franks) 2004-06-21 Michael Natterer * gdk/x11/gdkdrawable-x11.[ch]: made convert_format() utility function public as _gdk_x11_convert_to_format(). * gdk/x11/gdkcursor-x11.c (create_cursor_image): premultiply the pixels from the GdkPixbuf when putting them in the Xcursor image. Fixes bug #144350. 2004-06-16 Federico Mena Quintero Merge from HEAD: * gtk/gtkfilesystemmodel.c (do_files_added): When inserting a visible node, free the old path before creating the new one. Fixes #144356. Tue Jun 15 01:10:32 2004 Matthias Clasen * gtk/gtkcombobox.c: Make GtkComboBox work without model. (#144198, Mariano Suárez-Alvarez) 2004-06-11 Federico Mena Quintero Merge from HEAD: Fixes #143578: * gtk/gtkfilesystemmodel.c (_gtk_file_system_model_add_editable): Don't ref the editable node. (_gtk_file_system_model_remove_editable): Don't unref the editable node. (_gtk_file_system_model_remove_editable): Ahem, free the node. * gtk/gtkfilechooserdefault.c (struct _GtkFileChooserDefault): Added fields for edited_idle and edited_new_text. (renderer_edited_cb): Queue the creation of the folder in an idle handler. (renderer_editing_canceled_cb): Likewise for the cancellation. (gtk_file_chooser_default_finalize): Free the impl->edited_new_text.