Thu Jan 17 13:08:34 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkmain-x11.c (gdk_error_trap_push): Move
here, and save/restore the X error handler to allow
people using GTK+ to set the X error handler to something
custom without disturbing the operation of GDK.
* gdk/linux-fb/gdkmain-fb.c (gdk_error_trap_push)
* gdk/win32/gdkmain-win32.c (gdk_error_trap_pop): Add
dummy implementations.
* gdk/x11/gdkmain-x11.c gdk/x11/gdkevents-x11.c
gdk/x11/gdkdnd-x11.c: Use gdk_error_trap_push()/pop()
for all error trapping.
* gdk/x11/gdkdnd-x11.c: Remove '#if 0' code.
* gdk/x11/gdkdnd-x11.c (gdk_window_cache_new): Fix
problem where we would add the results anyways,
and then add it again if no error occurred, and problem
where we could leave _gdk_error_warnings() unset.
Wed Jan 16 20:28:38 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c: Fix "deleting" filename by adding
another boolean parameter to file_selection_populate() -
whether to clear the entry. Also, never fill in the
entry when the user clicks on something in the
directory list. (#6791, Reported by Jos Dehaes and many,
many, many others.)
2002-01-16 Havoc Pennington <hp@redhat.com>
* gtk/gtktextview.c (gtk_text_view_scroll_pages): update
cursor_y_pos with clamped delta rather than theoretical delta
(#68788). Also, if we can't page up/down further then jump
to top/bottom of the document.
Wed Jan 16 19:33:41 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (gtk_file_selection_map): Refresh
the dialog on map. (#52877, inspired by request from
Murray Cumming)
Wed Jan 16 19:23:04 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkbindings.c (gtk_binding_entry_activate):
Support "optional" bindings. If a binding signal
has a boolean return value, and returns FALSE it
is as if it didn't exist all.
* gtk/gtkbindings.c (binding_compose_params): Switch
over to GValue.
* gtk/gtknotebook.[ch]: Make the select_page() and
change_current_page() signals only take effect when
the focus is on the tab area so that key presses
in children pass up to the toplevel correctly.
Wed Jan 16 10:18:42 2002 Owen Taylor <otaylor@redhat.com>
* gtk/stock-icons/Makefile.am (EXTRA_DIST): Add
gtkstockpixbufs.h.
* configure.in: Make TIFF, JPEG, PNG loaders mandatory
unless you configure with --without-libtiff, etc.
(#54045, Brian Cameron)
2002-01-13 Jody Goldberg <jody@gnome.org>
* gtk/gtktexttag.c (get_color_arg) : set_boxed will copy the color
and will use a mem_chunk to do it. Avoid an unnecessary copy, a
leak, and confusion.
2002-01-15 Jody Goldberg <jody@gnome.org>
* gtk/gtklayout.c (gtk_layout_realize) : It is possible that a
GtkLayout may have been scrolled _before_ it was realized.
Tue Jan 15 18:10:24 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkspinbutton.c (gtk_spin_button_grab_notify): Stop
the timer on destroy, or when we are notified that we are
shadowed by a modal dialog.
* gtk/gtkspinbutton.c: Remove explicit gtk_grab_add()/remove() -
not needed any more.
* gtk/gtkmain.c (gtk_grab_notify): Fix problem where notifications
weren't sent out for the default grab group.
* gtk/gtkmain.c (gtk_grab_notify): Fix notification of widgets that
were getting events because they were part of the previous grab.
Tue Jan 15 12:23:33 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_mnemonic_activate_switch_page):
focus the activated tab, not the page. (#53612)
* gtk/gtknotebook.c (gtk_notebook_set_focus_child): Track
the last focus descendant of the page.
* gtk/gtknotebook.c (gtk_notebook_real_switch_page): If the focus
was on the previous page, move it to the last focused widget /
first element on the new page, if possible, or if not, to the
notebook itself. (#68224, reported by Jonathan Blandford)
* gtk/gtknotebook.c (focus_tabs_in): Don't focus tabs
tabs aren't visible. (#65462, Damon Chaplin, fixed based
on patch from Anders Carlsson)
Mon Jan 14 23:21:47 2002 Tim Janik <timj@gtk.org>
* gtk/gtkmenuitem.c (gtk_menu_item_map): map event_window after
mapping child, so we don't loose events.
2002-01-15 Sven Neumann <sven@gimp.org>
* gtk/gtkaccellabel.h
* gtk/gtkitemfactory.c: fixed documentation by syncing the parameter
names used in headers and code.
Tue Jan 15 01:13:51 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodelsort.c: fix a load of open line ends,
(gtk_tree_model_sort_set_model): only free root level if it's
!NULL
* gtk/gtkoldeditable.c, gtk/gtkrc.c,
gtk/gtkstyle.c: Documentation additions.
* gtk/gtkmenu.c (gtk_menu_set_accel_path),
gtk/gtkmenuitem.c (gtk_menu_item_set_accel_path),
gtk/gtkwidget.c (gtk_widget_add_accelerator): Typo and markup fixes.
* gtk/gtkitemfactory.c (gtk_item_factory_add_foreign): Document.
* gtk/gtkaccelmap.c (gtk_accel_map_add_filter): Explain intended use.
* gtk/running.sgml: Add ids to some elements to make them
addressable as link targets.
Mon Jan 14 17:14:13 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkselection-x11.c (sanitize_utf8): Don't
mangle sequences of consecutive \n or \r.
Mon Jan 14 17:42:28 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): allow cancel to
happen.
* gtk/gtktreeview.c (install_presize_handler): only install the
handler if we're realized, #68056
Mon Jan 14 16:35:58 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_move_resize): Unset
initial_pos_set after the first configure request.
Sun Jan 13 23:23:22 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_compute_hints): Fix problem where
widget->requisition was being used instead of
gtk_widget_get_child_requisition (), causing geometry widgets
with usizes to misbehave.
2002-01-14 Hasbullah Bin Pit <sebol@ikhlas.com>
* configure.in: Added ms at ALL_LINGUAS.
* po/ms.po: Added Malay Translation.
But not all translated :(
Sun Jan 13 01:15:45 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodelsort.c: various cleanups,
(get_child_iter_from_elt): removed,
(gtk_tree_model_sort_elt_get_path): rewritten to be a lot cleaner
and especially faster,
(gtk_tree_model_convert_iter_to_child_iter): use
gtk_tree_model_sort_elt_get_path
Sat Jan 12 16:57:31 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_start_interactive_search):
revert Owen's change (using a strdupped string as object data), so
the interactive search works again
2002-01-12 Tor Lillqvist <tml@iki.fi>
Fixes contributed by Archaeopteryx Software: This is a first small
part of their changes. Will commit more later.
* gdk/win32/*.c: Add some more checks for failed GDI calls. If a
call fails, don't use bogus values.
* gdk/win32/gdkcursor-win32.c (_gdk_win32_data_to_wcursor): Plug
memory leak: g_free() the AND and XOR bitmaps after use.
(_gdk_cursor_destroy): If we are destroying the current Windows
cursor, set the Windows cursor to none first.
* gdk/win32/gdkgc-win32.c (predraw_set_foreground): Delete the old
brush that was in the DC, like the win32-procution branch does. I
guess this plugs a resource leak? With the HDC cache, the old
brush might be something we created ourselves, and not a stock
brush. And it doesn't do any harm to call DeleteObject on stock
brushes.
* gdk/win32/gdkwindow-win32.c (gdk_window_impl_win32_finalize): If
the window has a cursor which is the current Windows cursor,
before destroying it set the current Windows cursor to none.
(gdk_window_set_cursor): Also here, if destroying the current
Windows cursor, set the current Windows cursor to none first.
(gdk_window_get_pointer): Revamp logic.
Wed Jan 9 20:56:42 2002 Jonathan Blandford <jrb@redhat.com>
* gdk/x11/gdkkeys-x11.c (get_xkb): get the types as well as the
symbols because we need them in MyEnhancedXkbTranslateKeyCode.
2002-01-10 Tor Lillqvist <tml@iki.fi>
Apply the same fixes and improvements as to the
gtk-1-3-win32-production branch: Bug fixes and cleanup of
selection and DND functionality. Still doesn't work as well as the
win32-production branch, though, but getting closer.
After this, need to add Archaeopteryx Software's OLE2 DND support.
* gdk/win32/gdkselection-win32.c (gdk_selection_owner_set,
gdk_selection_send_notify, generate_selection_notify): Don't use
SendMessage() to generate events for the same app, instead use
gdk_event_put().
* gdk/win32/gdkprivate-win32.h
* gdk/win32/gdkglobals-win32.c
* gdk/win32/gdkmain-win32.c
* gdk/win32/gdkevents-win32.c: Thus, remove declaration, definition,
initialisation and handling of gdk_selection_notify_msg,
gdk_selection_request_msg and gdk_selection_clear_msg.
* gdk/win32/gdkselection-win32.c (gdk_text_property_to_text_list,
gdk_free_text_list, gdk_string_to_compound_text,
gdk_free_compound_text): Implement trivially, witrh a text_list
always having a single element, and a compound text always
consisting of just a single (UTF-8!) string. Let's see how well
this works.
* gdk/win32/gdkselection-win32.c (gdk_selection_convert): Fix
non-ASCII paste from the clipboard: Try getting the same formats
from the Windows clipboard that gdk_property_change() puts there:
CF_UNICODETEXT, UTF8_STRING or CF_TEXT+CF_LOCALE.
* gdk/win32/gdkproperty-win32.c (gdk_property_change): When
storing text on the clipboard, handle non-ASCII text
correctly. The logic is as follows:
If we have only ASCII characters, use CF_TEXT.
Else, if we are on NT, use CF_UNICODETEXT.
Else (we are on Win9x), if all the characters are present in the
code page of some installed locale, use CF_TEXT and also set
CF_LOCALE to that locale.
Else (still on Win9x) store as RTF. We use a very simple RTF
string, just the text, no fonts or other crap, with the non-ASCII
characters as Unicode \uN keywords. Additionally, also store the
UTF-8 string as such, under the format "UTF8_STRING", so that GDK
can also paste from the Clipboard what it has copied there. (Thus
no need to implement any RTF parser.)
(find_common_locale): New function, implements the search for a
locale for case 3 above.
* gdk/win32/gdkglobals-win32.c: New global variables
compound_text, text_uri_list, utf8_string, cf_rtf and
cf_utf8_string.
* gdk/win32/gdkim-win32.c (_gdk_ucs2_to_utf8): New function,
converts from a wchar_t string to UTF-8.
(_gdk_utf8_to_ucs2): Rename from _gdk_win32_nmbstowchar_ts.
(_gdk_utf8_to_wcs): Rename from gdk_nmbstowchar_ts.
* gdk/win32/gdkevents-win32.c (build_keypress_event): Use
_gdk_ucs2_to_utf8().
* gdk/win32/gdkselection-win32.c: Remove some unnecessary logging.
* gdk/win32/gdkdnd-win32.c: Plug memory leaks, the
gdk_drag_context_ref() was called unnecessarily in a couple of
places, meaning drag contexts were never freed. The same memory
leaks seem to be present in gdk/linux-fb/gdkselection-fb.c, BTW.
(gdk_drop_reply): For WIN32_DROPFILES drops, free the temporarily
stored file list.
* gdk/win32/gdkselection-win32.c: Clarify the use of the
sel_prop_table. Now it is used only for storing the GDK_SELECTION
"properties".
The file names dropped with WM_DROPFILES -style DND is stored
temporarily (between the drop and the target picking them up) in a
separate place.
Have a separate hash table to map selection atoms to owner
windows. This used to be quite mixed up.
(_gdk_dropfiles_store): New function, to store the dropped file
list for the drop target to possibly fetch, and clear it
afterwards, from gdk_drop_reply().
(gdk_selection_owner_get): Much simplified now.
Wed Jan 9 19:10:07 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreeselection.c
(_gtk_tree_selection_internal_select_node): Now we test we can
unselect nodes before selecting new ones.
(gtk_tree_selection_real_select_node): be careful comparing booleans.
Wed Jan 9 21:31:44 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtkliststore.c (gtk_list_store_sort): pass NULL to
gtk_tree_model_rows_reordered and not an iter with user_data
set to NULL (which is an invalid liststore iter, so
iter_n_children failed, etc)
Wed Jan 9 11:13:12 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmenuitem.c (_gtk_menu_item_refresh_accel_path):
Fix problem with menus without accel groups, such as the
menus for option menus.
* gtk/gtkpaned.c (gtk_paned_expose): Only conditionalize
drawing of handle on whether both children are visible,
not the drawing of the other child!. (#68325, Diego Gonzalez)
Wed Jan 9 10:20:16 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdrawable-x11.c gdk/x11/gdkgc-c11.c: Check for
RENDER before trying to use it... XRenderFindFormat() prints
warnings if called when extension isn't present.
Wed Jan 9 13:20:14 2002 Tim Janik <timj@gtk.org>
* gtk/gtkviewport.c (gtk_viewport_size_allocate): small but important
fix to force vadjustments at size_alocate time from Xavier Ordoquy
<mcarkan@users.sourceforge.net>.
* gtk/gtkplug.c, gtk/gtksocket.c: Speak of window IDs rather
than XIDs in the docs.
* gtk/gtkclipboard.c (gtk_clipboard_clear): Fix docs.
* gtk/tmpl/gtksocket.sgml, gtk/tmpl/gtkplug.sgml: speak of
window IDs rather than XIDs.
Tue Jan 8 18:39:23 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreedatalist.c (gtk_tree_data_list_compare_func): wow!
Am I a moron or what 0 < 1 is not equivalent to strcmp ("a", "b")