2005-11-15 Matthias Clasen * === Released 2.8.7 === * NEWS: Updates * gtk/gtktreestore.c (gtk_tree_store_move): Fix a memory leak. (#321032, Peter Zelezny) 2005-11-14 Matthias Clasen * gtk/gtkselection.c (gtk_selection_data_set_uris): Don't leak result. (#321441, Tommi Komulainen) 2005-11-14 Matthias Clasen * gtk/gtkicontheme.c (gtk_icon_theme_get_icon_sizes): Don't crash if there is no builtin icon. 2005-11-13 Matthias Clasen * gdk/gdkcolor.c (gdk_color_parse): Documentation improvements. (#321338) * gtk/gtktextiter.c (gtk_text_iter_forward_search): Make limit an inclusive boundary. (#321299) * NEWS: Updates 2005-11-12 Matthias Clasen * gtk/gtkicontheme.c: Make it compile. 2005-11-12 Dom Lachowicz * modules/engines/ms-windows/msw_style.c: Bug #313627. Make win32 theme's handling of toolbars, handleboxes, and menubars more in-line with Microsoft's IE style. * modules/engines/ms-windows/*.c: Indentation cleanups 2005-11-12 Matthias Clasen Make builtin icons work in gtk_window_set_icon_name() (#321046, Maxim Udushlivy) * gtk/gtkicontheme.c (gtk_icon_theme_get_icon_sizes): Also check builtin icons. 2005-11-12 Tor Lillqvist * gtk/gtkfilesystemwin32.c (filename_get_info): Don't hide dotfiles, no such convention on Win32. Just hide files with the hidden attribute. (#314627) 2005-11-11 Federico Mena Quintero Merged from HEAD: * gtk/gtkfilechooserdefault.c (shortcuts_add_volumes): Only get the base path of the volume if it is mounted. 2005-11-10 Matthias Clasen * gtk/gtktreeview.c (gtk_tree_view_motion_resize_column): Remove another erroneous semicolon. * gdk/x11/gdkcolor-x11.c (gdkx_colormap_get): Remove an erroneous semicolon. Don't corrupt odd keymaps (#316638, Kean Johnston) * gdk/x11/gdkkeys-x11.c (set_symbol): Auxiliary function to handle frobbing keymaps with odd numbers of syms/code. * gdk/x11/gdkkeys-x11.c (update_keymaps): Use set_symbol() to frob the keymap. Improve navigation to parent folders. (#318444, Andrei Yurkevich) * gtk/gtkpathbar.[hc]: Add a child_path argument to the path_clicked signal. * gtk/gtkfilechooserdefault.c (path_bar_clicked): Select the child_path, if it is provided. * gtk/marshalers.list (path_bar_clicked): Add the necessary glue. * gtk/gtktreeview.c: Implement a getter for headers-clickable. (#163851, Richard Hult) 2005-11-09 Tor Lillqvist * gdk/win32/gdkwindow-win32.c (_gdk_win32_get_adjusted_client_rect): Remove this two-line function which was used only in one place. (get_outer_rect): Use _gdk_win32_adjust_client_rect(). (gdk_window_set_geometry_hints): If we have identical minimum and maximum size hints, remove the resize and maximize decorations/functions. (#104514) If we have a maximum size hint, remove the maximize decoration/function but ensure the resize decoration/function is available. Otherwise ensure both resize and maximize decorations/functions are there. (set_or_clear_style_bits): Factored out common code from gdk_window_set_decorations() and gdk_window_set_functions(). Hack the window style setting once more: Only touch the window style bits corresponding to the GdkWMDecoration or GdkWMFunction parameter bitmasks. Hopefully this finally is the correct thing to do. We used to clear all other bits than those that were being set, or set all other bits than those that were being cleared. Take into account that adding or removing decorations leaves the window's outer size unchanged, i.e., the client area's size and position change. This is apparently not what we want, so change also the window's (outer) position and size appropriately so that the client area's position and size stay constant. gtk-demo's color selector dialog is now non-resizable like on X11 (I tested with metacity in GNOME). Torn off menus are shrinkable vertically but have a maximum size, and are not maximizable or minimizable, like on X11. (gdk_window_set_decorations, gdk_window_set_functions): Let set_or_clear_decorations() do most of the job. * gdk/win32/gdkprivate-win32.h: Remove declaration of _gdk_win32_get_adjusted_client_rect(). 2005-11-09 Tor Lillqvist * gdk/win32/gdkwindow-win32.c: Remove unnecessary includes. (gdk_window_set_geometry_hints): Remove code that has been permanently ifdeffed out for two years. 2005-11-08 Matthias Clasen * gdk/gdkgc.c (gdk_gc_finalize): Unref tile and stipple when finalizing a gc. (#320789, Nickolay V. Shmyrev) * gdk/x11/gdkwindow-x11.c (gdk_window_set_icon_list): Ignore icons if they would make the request large enough to cause Xlib to loose the connection. (#320909, Claudio Saavedra) 2005-11-07 Matthias Clasen * gtk/gtkfilechooserdefault.c (shortcuts_reorder): Don't loose the bookmark label when reordering. (#320720, Jeremy Cook) * gtk/gtkpathbar.[hc]: Set focus-on-click to FALSE for all buttons. Don't grab focus when a slider button is pressed, instead, use a bit in the pathbar struct to determine whether to scroll up or down. (#314486, Carlos Garnacho) * gtk/gtktreeview.c (gtk_tree_view_search_key_press_event): Handle Shift-G to go to the previous match, like firefox. (#320061, Christian Neumair) * gtk/gtkentrycompletion.c (_gtk_entry_completion_popup): Don't popup the completions if the focus has already been moved somewhere else. (#319914, Christian Persch) * gtk/gtktoolitem.c (_gtk_tool_item_toolbar_reconfigured): Raise the drag_window after reconfiguring the toolbar. (#320803, Christian Persch) * gtk/gtkrbtree.c: Plug a small memory leak. (#320777, Antonio Sacchi) 2005-11-07 Tor Lillqvist * gdk/win32/gdkcursor-win32.c (pixbuf_to_hbitmaps_normal): Correct the calculation of maskstride. (#320152, Peter Zelezny) 2005-11-06 Tor Lillqvist * gdk/win32/gdkcursor-win32.c: As there is only one GdkDisplay in the Win32 backend, check that GdkDisplay* parameters are equal to _gdk_display instead of using the unnecessarily general GDK_IS_DISPLAY(). (pixbuf_to_hbitmaps_alpha_winxp): Rename the variables for the color bitmap to have "color" in their name, for similarity with pixbuf_to_hbitmaps_normal(). Create an 1-bit mask bitmap (DIB section) using create_color_bitmap(), not CreateBitmap(). Initialize the mask bitmap with ones for those pixels in the color bitmap where the alpha is zero, zeros for other pixels. Although the docs claim otherwise, using an unitialized bitmap for the mask together with a color bitmap that has alpha did not work if the color bitmap had zero alpha everywhere, like the blank icon used in gtktrayicon.c. (_gdk_win32_pixbuf_to_hicon_supports_alpha): Check G_WIN32_IS_NT_BASED() first, so we can pretend being on Win9x by setting the G_WIN32_PRETEND_WIN9X environment variable. 2005-11-06 Tor Lillqvist Make icon masks work on Win98 (#320152, Peter Zelezny) * gdk/win32/gdkcursor-win32.c (create_color_bitmap): Take also a parameter for the depth of the bitmap, so that this function can be used to create 1-bit bitmaps, too. (pixbuf_to_hbitmaps_normal): Create an 1-bit bitmap for the mask, and initialize it properly. 2005-11-04 Michael Natterer Merged from HEAD: * gtk/gtkrc.c (gtk_rc_reparse_all_for_settings): applied patch from maemo-gtk that changes the mtime check for rc files from '>' to '!=', otherwise theme changes go unnoticed when turning back the clock (Tommi Komulainen). 2005-11-02 Tor Lillqvist * gdk/win32/gdkcolor-win32.c * gdk/win32/gdkscreen-win32.c * gdk/win32/gdkwindow-win32.c: Whitespace consistency fixes. Remove superfluous test for GdkWindow* parameters being non-NULL. Testing GDK_IS_WINDOW() is enough. As there is only one GdkScreen and one GdkDisplay in the Win32 backend, use those variables instead of the getter functions. For GdkDisplay* and GdkScreen* parameters, check that they are equal to the corresponding singleton variables instead of the more general GDK_IS_DISPLAY() or GDK_IS_SCREEN(). 2005-11-02 Matthias Clasen * gtk/gtktextview.c: Remove some g_return_if_fail() from static functions, replace some others by g_assert(). * gtk/gtktextview.c (selection_motion_event_handler) (gtk_text_view_start_selection_drag): Keep track of the original selection boundaries during a drag selection, in order to correctly decide when to extend or shrink the selection. (#320167, reported by Arvind S N, patch by Paolo Borelli) * gtk/gtktextbtree.c (_gtk_text_line_char_to_byte_offsets): * gtk/gtktextiter.c (gtk_text_iter_backward_chars): Replace manual offset calculations by g_utf8_offset_to_pointer(). (#320360, Paolo Borelli) 2005-11-01 Tor Lillqvist * gdk/win32/gdkprivate-win32.h * gdk/win32/gdkglobals-win32.c * gdk/win32/gdkmain-win32.c (_gdk_windowing_init): Add more pre-interned GdkAtoms and pre-registered clipboard formats. Sort their declarations, definitions and assignments into a more logical and consistent order. * gdk/win32/gdkmain-win32.c (_gdk_win32_cf_to_string): Include the CF_ prefix for the predefined clipboard format names. Put quotes around registered format names to distinguish them. * gdk/win32/gdkproperty-win32.c (gdk_property_change): Return immediately with a warning if the property type is STRING, TEXT, COMPOUND_TEXT or SAVE_TARGETS, as these are X11-specific that we should never pretend to handle on Win32. Handle only UTF8_STRING here, other formats with delayed rendering. Use \uc1 instead of \uc0 when generating Rich Text Format for easier testability on XP, where WordPad misinterprets \uc0 encoded characters. Add more GDK_NOTE debugging output for Clipboard operations. * gdk/win32/gdkselection-win32.c: Debugging printout improvements. (gdk_selection_convert): Don't pretent to handle STRING, just UTF8_STRING. Streamline error handling, don't unnecessarily have a GError which then isn't used for anything anyway if it gets set. (gdk_win32_selection_add_targets): Skip also STRING, TEXT, COMPOUND_TEXT and SAVE_TARGETS in addition to UTF8_STRING. * configure.in: Don't look for X_PACKAGES unless building for X11. (#313986, John Ehresman) 2005-10-28 Matthias Clasen * gtk/gtkentrycompletion.c (_gtk_entry_completion_popup): Add the popup window to the toplevels window group. (#319912, Christian Persch) * gtk/gtkdnd.c (gtk_drag_get_cursor): Fix the anchor of the default drag cursors. (#319200, Federico Mena Quintero) * gtk/gtktreeview.c (gtk_tree_view_search_key_press_event): Handle Shift-G to go to the previous match, like firefox. (#320061, Christian Neumair) * gtk/gtkaboutdialog.c (gtk_about_dialog_init): Add the little stars. (#319985, Bastien Nocera) * gtk/gtktreeview.c (gtk_tree_view_search_entry_flush_timeout): Return FALSE, so we don't flush repeatedly. (#319151, Alexander Larsson) 2005-10-27 Michael Natterer * gtk/gtkthemes.c (gtk_theme_engine_load): fix typo (G_MODUE_BIND_LAZY -> G_MODULE_BIND_LAZY). 2005-10-27 Michael Natterer Merged from HEAD: Fix bug #319974: * gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_set_property): make sure that setting any of pixbuf/stock-id/icon-name resets the others because they are mutually exclusive, and that unsetting any of them only resets the pixbuf and nothing else. Also added some missing g_object_notify(). (gtk_cell_renderer_pixbuf_get_property): simplified calls to g_value_set_object(). (gtk_cell_renderer_pixbuf_create_stock_pixbuf) (gtk_cell_renderer_pixbuf_create_named_icon_pixbuf): added g_object_notify ("pixbuf"). 2005-10-27 Matthias Clasen * gtk/gtktreeview.c (gtk_tree_view_button_press): Be more careful about initializing cell_area. (#319382, Tommi Komulainen) * gtk/gtkcombobox.c (gtk_combo_box_key_press): Don't eat Ctrl-PageUp/PageDown. (#318670, Christian Neumair) * demos/gtk-demo/clipboard.c (paste_received): Only set the text if it is not NULL. (#319930, Thomas Klausner) * gtk/gtkselection.c (gtk_selection_data_get_pixbuf): Close the loader before trying to get the pixbuf. (#319930, Thomas Klausner) 2005-10-26 Matthias Clasen * gtk/gtkfilesystem.c (gtk_file_system_module_load): * gtk/gtkthemes.c (gtk_theme_engine_load): * gtk/gtkimmodule.c (gtk_im_module_load): Use G_MODULE_BIND_LAZY when dlopening modules. (#319557, Laszlo Peter) 2005-10-26 Matthias Clasen * gtk/gtktextbtree.c (gtk_text_btree_resolve_bidi): Only use text segments when determining text direction. (#319065, Tommi Komulainen) * gtk/gtktreeview.c (gtk_tree_view_destroy): Don't crash on duplicate destroy. (#318953, Gustavo Carneiro) * gtk/gtkfilechooserbutton.c (gtk_file_chooser_button_new_with_dialog): Point out that destroy-with-parent is a bad idea for the dialog passed to this function. (#318943, Christian Persch) * gtk/gtkfilechooserbutton.c (open_dialog): Add the dialog to the window group, if necessary (#318943, Christian Persch) * */Makefile.am: use $(GLIB_MKENUMS) instead of glib-mkenums. (#318582, Damien Carbery) * gtk/gtktreemodel.c (gtk_tree_model_rows_reordered): Clarify docs. (#317682, Christian - Manny Calavera - Neumair) * gdk/x11/gdkdnd-x11.c: Remove an extra const which doesn't seem to affect the placement of the data in the readonly section, and causes problems with some compilers. (#317844) 2005-10-25 Matthias Clasen * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action): Fix some issues with background drawing in RTL. (#318781, Eric Cazeaux) * gtk/gtktexttagtable.c (gtk_text_tag_table_foreach): Add some more docs. (#319722, Paolo Borelli) * gdk/x11/gdkxftdefaults.c (init_xft_settings): Make the initialization of screen_x11->xft_rgba more explicit. (#319627, Bogdan Nicula) 2005-10-22 Michael Natterer Merged from HEAD: * gtk/gtktreeview.c (gtk_tree_view_scroll_to_cell): check for the widget being realized, in addition to being visible, to avoid running into precondition check in gtk_tree_view_get_cell_area(). (approved by Kris). 2005-10-22 Dom Lachowicz * modules/engines/ms-windows/msw_style.c (setup_msw_rc_style): Experimentally, scrollbar steppers can shrink to 8 pixels on Win32. Reflect that in the theme. * modules/engines/ms-windows/Theme/gtk-2.0/gtkrc: Experimentally, there is a 1-pixel border between a scrollbar and its child in ScrolledWindows on Win32. Reflect that in the theme. 2005-10-21 Matthias Clasen * gtk/gtkstock.c: Define GTK_STOCK_[DIS]CONNECT here, and not only in the header. String addition. (#318939, Richard Hult) 2005-10-20 Matthias Clasen * gtk/gtkiconview.c: Apply a patch from Ross Burton to fix compiler warnings. (#318762) 2005-10-19 Federico Mena Quintero Merged from HEAD: Fixes bug #317999: * tests/autotestfilechooser.c (test_button_folder_states_for_action): Test that we have either $cwd or the explicitly-set folder. (test_reload_sequence): Likewise. * gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_get_current_folder): If our reload_state is RELOAD_EMPTY, return a GtkFilePath corresponding to $cwd. 2005-10-14 Tor Lillqvist * gdk/win32/gdkdisplay-win32.c: Remove the clipboard viewer code. It didn't really do anything useful, and was just confusing and incomplete. Comments claimed we don't do delayed rendering, but in fact we do, for images. (The delayed rendering code has other problems, though, see #168173.) The clipboard viewer code was probably even buggy (the WM_CHANGECBCHAIN handled didn't propagate the message when necessary). It was just test code, it said so in a comment. Add something similar back later if necessary. (_win32_on_clipboard_change, _gdk_win32_register_clipboard_notification): Remove. (gdk_display_supports_selection_notification, gdk_display_request_selection_notification): Always just return FALSE. We didn't generate any GDK_OWNER_CHANGE events anywhere. 2005-10-13 Tor Lillqvist * gdk/win32/gdkevents-win32.c (gdk_event_translate): Don't treat Alt-Enter specially. It does not have any special meaning and should be passed on to the application. (#318378, Tim Evans) 2005-10-13 Tor Lillqvist Set visual depth to 24 for 32 bits-per-pixel devices on Win32. This allows gdk_drawable_real_draw_pixbuf() to use the optimized composite_0888() function rather than the slower image dithering functions to draw pixbufs (#313993, John Ehresman) * gdk/win32/gdkimage-win32.c (_gdk_win32_new_image): Use _gdk_windowing_get_bits_for_depth() to initialize GdkImage::bits_per_pixel. (_gdk_windowing_get_bits_for_depth): Return 32 bits for depth 24. * gdk/win32/gdkpixmap-win32.c (gdk_pixmap_new): Use _gdk_windowing_get_bits_for_depth() to initialize BITMAPINFOHEADER::biBitCount. * gdk/win32/gdkvisual-win32.c (_gdk_visual_init): Set GdkVisual::depth to 24 even if GetDeviceCaps(BITSPIXEL) returns 32. 2005-10-12 Stefan Kost * demos/gtk-demo/appwindow.c: (about_cb): use PACKAGE_VERSION,bump year (#318654) 2005-10-11 Matthias Clasen * gtk/gtktextbtree.c (_gtk_text_btree_delete): Try to match an off toggle here with the matching on toggle if it immediately follows. This is a common case, and handling it here prevents quadratic blowup in cleanup_line() below. (#317125) * gtk/gtktextsegment.h: * gtk/gtktextsegment.c (_gtk_char_segment_new_from_two_strings): Pass the character counts into this function instead of computing them again. 2005-10-07 Federico Mena Quintero Merged from HEAD: Fixes bug #317999: * gtk/gtkfilechooser.c (gtk_file_chooser_get_current_folder): Clarify the documentation on when this can return NULL. (gtk_file_chooser_get_current_folder_uri): Likewise. * gtk/gtkfilechooserbutton.c (struct _GtkFileChooserButtonPrivate): Added a folder_has_been_set flag; we use it to keep track of whether a folder has been set. (gtk_file_chooser_button_map): Implement. If no folder has been loaded before, we at least try to load $cwd here. (gtk_file_chooser_button_constructor): If the construct-time dialog already has a folder set, turn on our folder_has_been_set flag. (dialog_current_folder_changed_cb): Turn on our folder_has_been_set flag. 2005-10-07 Matthias Clasen * gtk/gtktexttag.c (gtk_text_attributes_ref): Use g_return_val_if_fail(), not g_return_if_fail(). (#318412, Kazuki Iwamoto) 2005-10-04 Federico Mena Quintero Merged from HEAD: * gtk/gtkpathbar.c (get_dir_name): Don't special-case Home and Desktop; just use their real names on the file system for the user-visible names. * gtk/gtkfilechooserdefault.c (shortcuts_append_home): Don't special-case the name of "Home"; just use the folder name. 2005-10-04 Tor Lillqvist * gtk/gtkcalendar.c (gtk_calendar_init): Make it compile without HAVE__NL_TIME_FIRST_WEEKDAY. (#317910, Mathias Hasselmann)