2004-07-21 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcalendar.c: Use the new text target functionality
in GtkTargetList instead of hardcoding a subset of text targets.
Tue Jul 20 23:11:23 2004 Matthias Clasen <maclas@gmx.de>
* gdk/x11/gdkevents-x11.c: Hook up gtk-menu-bar-accel to
an XSetting, Gtk/MenuBarAccel. (#120859, Scott James Remnant)
2004-07-20 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): Fix the
documentation comment for the editing-started signal.
* gtk/gtkmarshalers.list: Added VOID:OBJECT,STRING for
GtkCellRenderer::editing-started.
2004-07-20 Matthias Clasen <mclasen@redhat.com>
* tests/testactions.c (main):
* tests/testmerge.c (main): Add some refcount debugging.
* gtk/gtkuimanager.c (update_node, free_node): Ref an sink
all proxies, so that we can properly clean up floating proxies
which the app didn't adopt. (#147926, Tommi Komulainen)
2004-07-20 Matthias Clasen <mclasen@redhat.com>
Allow custom initialization of cell editables. (#147221)
* gtk/gtkcellrenderer.h (struct _GtkCellRendererClass):
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): Add a
::editing-started signal as a hook for setting up the
GtkCellEditable.
(gtk_cell_renderer_start_editing): ...and emit it here.
Tue Jul 20 00:45:38 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtktreeview.c (gtk_tree_view_button_press): Set drag_pos
before grabbing the focus, since we may reenter into
gtk_tree_view_motion_resize_column() which requires drag_pos
to be set. (#147913, Guilherme Salgado, patch by John Finlay)
2004-07-19 Matthias Clasen <mclasen@redhat.com>
Make GtkCellView public, since people seem to have uses for it,
it is clean API and we were just conservative in not making it
public initially. At the same time, get rid of GtkCellViewMenuItem,
which doesn't have any function which can't be served by a
GtkMenuItem with a GtkCellView child.
* gtk/gtk.h: Include gtkcellview.h
* gtk/Makefile.am (gtk_public_h_sources):
* gtk/Makefile.am (gtk_private_h_sources):
(gtk_c_sources): Remove gtkcellviewmenuitem.[hc]
* gtk/gtkcombobox.c: Replace all uses of GtkCellViewMenuItem by
GtkMenuItem with a GtkCellView child.
* gtk/gtkcellviewmenuitem.[hc]: Removed.
2004-07-19 Matthias Clasen <mclasen@redhat.com>
Support inline autocompletion in entries (#135953)
* gtk/gtkentryprivate.h:
* gtk/gtkentrycompletion.h:
* gtk/gtkentrycompletion.c (gtk_entry_completion_class_init):
Add a new signal ::insert-prefix which can be used to override
the default inline-completion behaviour. Add two new boolean
properties, :popup_completion and :inline_completion which
determine how the possible completions should be presented.
(gtk_entry_completion_insert_prefix): New function to request
a prefix insertion.
* gtk/gtkentry.c: Add the necessary glue for inline completion.
Sun Jul 18 15:28:24 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkdnd.c (gtk_drag_source_set, gtk_drag_dest_set): Create an
empty target list if targets is NULL.
* configure.in: Add check for X11/extensions/sync.h. (#147416,
Morten Welinder)
Sat Jul 17 00:48:27 2004 Matthias Clasen <maclas@gmx.de>
Support text/plain selection target (#55117, Owen Taylor)
* gtk/gtkselection.h:
* gtk/gtkdnd.h:
* gtk/gtkselection.c (gtk_target_list_add_text_targets):
* gtk/gtkdnd.c (gtk_drag_dest_add_text_targets):
* gtk/gtkdnd.c (gtk_drag_source_add_text_targets): New
functions to facilitate handling of text targets.
* gtk/gtkentry.c:
* gtk/gtktextview.c: Use the new text target handling
functions instead of hardwiring the list of supported
text targets everywhere.
* gtk/gtkselection.c (gtk_selection_data_get_text):
(gtk_selection_data_set_text):
Support the targets text/plain, text/plain?charset=utf-8
and text/plain?charset=<LOCALE-CHARSET> as outlined in
#55117:
For text/plain send only ASCII, but accept 8-bit text
and treat it as ISO-8859-1 as specified by the Xdnd spec.
Always send CRLF terminators. Accept either and convert
into the native terminator for the platform.
2004-07-16 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcombobox.c (gtk_combo_box_scroll_event): Make
scrolling work if no item is selected.
(gtk_cell_editable_key_press): Don't eat space.
Thu Jul 15 22:19:40 2004 Matthias Clasen <maclas@gmx.de>
Fix#60128, #58307, #144706:
* gtk/gtkstyle.c (gtk_style_real_copy): Handle references
to bg_pixmaps properly.
(gtk_style_real_unrealize): Don't keep dangling references
to the bg_pixmaps.
(gtk_style_attach): Split the loop into two loops, first
looking for a matching style, then for an empty one.
(gtk_style_finalize):
(gtk_style_duplicate): Add comments explaining the handling
of style->styles.
Thu Jul 15 20:31:28 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkspinbutton.c (start_spinning): Install the timeout
before changing the value, so that a ::value_changed handler
has a chance to remove it. (#122427, Elke Meier)
2004-07-15 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_class_init):
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init):
Correct the declared default values of several properties
to be in sync with the actual initial values.
2004-07-15 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcellrenderer.c (gtk_cell_renderer_get_property):
Correct the declared default values of several properties
to be in sync with the actual initial values.
2004-07-15 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_class_init):
Make spacing a property, correct the declared default values
of several properties to be in sync with the actual initial
values. (#147654, Matthias Clasen)
2004-07-15 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Don't reparent
back to menu->toplevel if it is already gone because we're
shutting down. (#147656, John Cupitt)
2004-07-14 Federico Mena Quintero <federico@ximian.com>
Fix#126295:
* gtk/gtktreeview.c (gtk_tree_view_bin_expose): Draw a focus
indicator along the edge of the bin_window when the tree is empty.
(grab_focus_and_unset_draw_keyfocus): New helper function.
(gtk_tree_view_button_press): Remove a bit of superfluous code.
Use the helper function to save on duplicated code.
(gtk_tree_view_button_press): Grab the focus if the tree is empty.
(gtk_tree_view_focus): Allow focusing into an empty tree.
2004-07-14 Federico Mena Quintero <federico@ximian.com>
Fix#144405, patch by Padraig O'Briain <padraig.obriain@sun.com>:
* gtk/gtkfilechooserdefault.c (shortcuts_list_create): Set the
accessible object name for the tree view.
(create_file_list): Likewise.
2004-07-13 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (shortcuts_activate_volume): Set a
busy cursor while mounting the volume. Also, ref the chooser
while mounting, as we may re-enter. Fixes#139376.
2004-07-13 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_adjustment_changed):
Prepare to handle composite implementations of
GtkCellEditable, but recursively poking at
allocation->y (hack stolen from GtkCList).
Tue Jul 13 00:40:29 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/gdkwindow.c (gdk_window_process_updates_internal): Do an
empty begin_paint_region()/end_paint() for windows without
EXPOSURE_MASK.
* gdk/x11/gdkwindow-x11.c (_gdk_x11_window_tmp_unset_bg,
_gdk_x11_window_tmp_reset_bg): Remove checks for EXPOSURE_MASK.
Mon Jul 12 01:56:26 2004 Matthias Clasen <maclas@gmx.de>
* gdk/x11/gdkwindow-x11.c (gdk_toplevel_x11_free_contents):
Include the update_counter check in the HAVE_XSYNC condition,
since update_counter isn't present in the !HAVE_XSYNC case.
Sun Jul 11 15:24:03 2004 Soeren Sandmann <sandmann@daimi.au.dk>
Bug 143330, support update counter spec.
* configure.in: Add check for the Sync extension
* gdk/gdkwindow.h: gdk_window_enable_synchronized_configure() and
gdk_window_configure_finished()
* gtk/gtkwindow.c (gtk_window_move_resize): Call gdk_window_finish_configure().
* gtk/gtkwindow.c (gtk_window_realize): Automatically enable
synchronized configures.
* gdk/x11/gdkwindow-x11.h (struct _GdkToplevelX11): Store current
and pending counter values.
* gdk/x11/gdkwindow-x11.c (gdk_window_configure_finished): New function.
* gdk/x11/gdkwindow-x11.c
(gdk_window_enable_synchronized_configure): New function.
* gdk/x11/gdkwindow-x11.c (gdk_toplevel_x11_free_contents):
Delete update counter.
* gdk/x11/gdkwindow-x11.c (set_wm_protocols): Advertise
_NET_WM_SYNC_REQUEST when Sync is available
* gdk/x11/gdkevents-x11.c (gdk_wm_protocols_filter): Handle
_NET_WM_SYNC_REQUEST messages
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Save counter
value for use by gdk_window_configure_finished() when receiving
ConfigureNotifies.
* gdk/x11/gdkdisplay-x11.h (struct _GdkDisplayX11): Add use_sync flag
* gdk/x11/gdkdisplay-x11.c (gdk_display_open): Check if the XSync
extension is available
* gdk/x11/gdkdisplay-x11.c: Add _NET_WM_SYNC_REQUEST and
_NET_WM_SYNC_REQUEST_COUNTER to list of supported atoms.
* gdk/linux-fb/gdkwindow-fb.c, gdk/win32/gdkwindow-win32.c: Add
stubs for enable_synchronized_configure() and configure_finished()
Sat Jul 10 23:35:13 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkentry.c (paste_received): Make middle-button pasting
work as expected inside the entry. (#116789, Scott Bronson)
Sat Jul 10 01:55:29 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/x11/gdkwindow-x11.c (_gdk_x11_window_tmp_{re|un}set_bg):
Insert checks for root window. The root window is never mapped.
Sat Jul 10 00:37:45 2004 Soeren Sandmann <sandmann@daimi.au.dk>
Bug 113310.
* gdk/x11/gdkwindow-x11.c (_gdk_x11_window_tmp_{un|re}set_bg):
New functions that can do a recursive unset/reset bg.
* gdk/x11/gdkgeometry-x11.c: Remove
gdk_window_tmp_{un|re}set_bg().
* gdk/x11/gdkwindow-x11.c (pre_unmap, post_unmap): New functions
called before and after unmapping a window. They unset the
background of all other windows to prevent flicker from the X
server repainting the background. post_unmap() also invalidates
the parent of the unmapped window to draw it without roundtrips.
* gdk/x11/gdkwindow-x11.c (show_window_internal): Unset
background of newly mapped windows and all desendants to prevent
flicker.
Fri Jul 9 15:33:55 2004 Manish Singh <yosh@gimp.org>
* gdk/gdkevents.c: have a dummy case GDK_OWNER_CHANGE in switch
statements to avoid gcc warnings about not all enum values handled.
* gdk/x11/gdkdisplay-x11.c (gdk_display_open): ignore should live in
#ifdef HAVE_XFIXES.
2004-07-09 Federico Mena Quintero <federico@ximian.com>
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 <mclasen@redhat.com>
* 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 <mclasen@redhat.com>
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 <mclasen@redhat.com>
* gtk/gtkstyle.c: Fix some cases where style functions were
not handling widget == NULL properly. (#146282)
2004-07-08 Federico Mena Quintero <federico@ximian.com>
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.
Thu Jul 8 00:33:15 2004 Matthias Clasen <maclas@gmx.de>
* 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 <maclas@gmx.de>
* 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)
2004-07-07 Matthias Clasen <mclasen@redhat.com>
Support separators in combo boxes and more generally in tree
views (#135873):
* gtk/gtkcombobox.h:
* gtk/gtkcombobox.c (gtk_combo_box_get_row_separator_column):
* gtk/gtkcombobox.c (gtk_combo_box_set_row_separator_column):
Add a ::row-separator-column property with getter and setter,
which can indicate a boolean model column to determine which
rows are separators.
* gtk/gtkcombobox.c: Display separator rows as separator menu
items in menu mode, and by using the new treeview separator
functionality in list mode.
* gtk/gtktreeview.h:
* gtk/gtktreeview.c (gtk_tree_view_get_row_separator_func):
* gtk/gtktreeview.c (gtk_tree_view_set_row_separator_func):
Add a callback to determine whether a row is a separator.
* gtk/gtktreeview.c (gtk_tree_view_bin_expose):
* gtk/gtktreeview.c (gtk_tree_view_create_row_drag_icon):
* gtk/gtktreeview.c (validate_row): Use the new callback
to determine whether a row is a separator, and draw it
as a separator then. Since separators should take up less
vertical space than regular rows, this requires removing
the redundant MAX(...,expander_size) calls which appear in
many places. Instead, the MAX() is now only done in
validate_row(), and only if the row is not a separator.
To catch possible side effects of this intrusive change,
I have left EXPANDER_MAX() calls in place of the MAX() calls
which will emit a warning if something breaks. They should
be removed before 2.6.
* gtk/gtktreeselection.c (row_is_selectable): Don't let
separator rows be selected.
* tests/testcombo.c (create_blaat): Add a separator column.
2004-07-07 Tor Lillqvist <tml@iki.fi>
* 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.
2004-07-06 Matthias Clasen <mclasen@redhat.com>
* gtk/stock-icons/Makefile.am: Add stock_file_16.png,
stock_file_24.png, stock_directory_16.png and stock_directory_24.png.
* gtk/gtkstock.h (GTK_STOCK_FILE, GTK_STOCK_DIRECTORY):
* gtk/gtkiconfactory.c (get_default_icons): New stock icons as
fallbacks for gtkfilechooser. Currently these are the same images
as the "new" and "open" items...
Tue Jul 6 10:00:22 2004 Jonathan Blandford <jrb@redhat.com>
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 <mclasen@redhat.com>
* 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 <mclasen@redhat.com>
* gtk/gtkfontbutton.c (gtk_font_button_update_font_info): Avoid
a crash if the font doesn't exist. (#144967, Yevgen Muntyan)
Mon Jul 5 23:47:38 2004 Matthias Clasen <maclas@gmx.de>
* 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)
* gtk/gtklayout.c (gtk_layout_add): added a default method for the add
virtual method of GtkContainer.
(gtk_layout_class_init): assign gtk_layout_add to the 'add' virtual
method slot of the container class.
2004-07-05 Anders Carlsson <andersca@gnome.org>
* gtk/gtkiconview.c: (gtk_icon_view_set_markup_column):
* gtk/gtkiconview.h:
Use gint, not int in gtk_icon_view_set_markup_column,
(Paolo Maggi)
2004-07-05 Anders Carlsson <andersca@gnome.org>
* gtk/gtkiconview.c: (gtk_icon_view_class_init),
(gtk_icon_view_real_select_cursor_item),
(gtk_icon_view_real_activate_cursor_item):
* gtk/gtkiconview.h:
Add an "activate_cursor_item" action signal
and bind it to the return key.
Sun Jul 4 01:29:35 2004 Matthias Clasen <maclas@gmx.de>
* 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 <maclas@gmx.de>
* 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 02:09:51 2004 Matthias Clasen <maclas@gmx.de>
* 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 <maclas@gmx.de>
* 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 22:41:27 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkimage.c (gtk_image_expose): Properly align mask and
pixbuf if a subarea is exposed. (#135423, fix by John Ehresman)