Sat Jul 12 15:28:26 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
This patch really really fixes scrolling. Related bugs: #81627,
testcase provided by Timo Sirainen, #111500, testcase provided by
manu, #113241, reported by Pedro Gimeno/Michael Natterer.
* gtk/gtktreeview.c (validate_visible_area): scrolling to a dy
which is equal to the lower border of the window means scrolling
to an invisible row, always update the dy when scrolling to an
invisible row, corrected area_above/below calculations for
invisible rows, when walking the tree correct the size
subtracted for invalidated rows, fix wrong logic in comment.
2003-07-11 Matthias Clasen <maclas@gmx.de>
* gtk/gtkicontheme.c (pixbuf_supports_svg): Use g_strfreev() to free mime_types.
(#117219, Steve Chaplin)
* queryloaders.c (query_module): Handle absolute filenames properly. (#117170, Jens Elkner)
* gdk-pixbuf-io.c: Mention that NULL-terminated arrays returned by
gdk_pixbuf_format_get_mime_types() and gdk_pixbuf_format_get_extensions() must be
freed with g_strfreev().
Tue Jul 8 20:11:04 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (get_real_window)
gdk/x11/gdkinput-x11.c (_gdk_input_common_init)
gdk/x11/gdkimage-x11.c (_gdk_windowing_image_init)
gdk/x11/gdkprivate-x11.h (_gdk_windowing_image_init)
Don't assume that all events start with XEventAny - Xkb events
don't! (#105745). So, only do that for core events, and for
non-core events, add a system for registering event types
that start with XEventAny.
* gdk/x11/gdkevents-x11.c (gdk_event_translate):
Check to see if the result of gdk_window_lookup_for_display()
is actually a window.
Fri Jul 11 20:48:14 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodel.c (gtk_tree_path_free): make the path != NULL
check a silent assert, so it follows the g_free() behaviour.
Wed Jul 9 19:48:26 2003 Kristian Rietveld <kris@gtk.org>
Merge from stable.
* gdk/gdkdisplay.c (gdk_display_get_window_at_pointer): don't
directly return from ->window_at_pointer, but set win_x and win_y
first if needed. (Fixes#110166, reported by Arno Charlet).
* gdk/gdkwindow.c (gdk_window_get_composite_drawable): change
function to accept GdkDrawables and not just GdkWindows. This was
already done in some other functions a while back, but this patch
got lost for some reason.
2003-07-09 Matthias Clasen <maclas@gmx.de>
* gtk/gtkcontainer.c (gtk_container_focus_sort_tab): Consider the text direction
when sorting children. (#116540, Soeren Sandmann)
Tue Jul 8 17:36:21 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkasync.[ch] gdk/gdkdnd-x11.c:
Change _gdk_x11_send_xevent_async() to
_gdk_x11_send_client_message_async() avoid using Xlib
internals that are different on Solaris.
(#116917, Morten Welinder)
Tue Jul 8 19:57:14 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkstyle.c (gtk_default_draw_arrow): remove correction on x
when detail is "menuitem". With the new menu look is isn't needed
anymore.
* gtk/gtktoolitem.c (gtk_tool_item_toolbar_reconfigured): queue a
resize here, so that tool items will get a chance to relayout
themselves based on the toolbar configuration.
change DEFAULT_SPACE_SIZE to 4 instead of 5
* gtk/gtktoolbar.c
Get rid of "!GTK_BIN (item)->child means separator". Separators
are widgets in their own right
change DEFAULT_SPACE_SIZE to 4 instead of 5
(get_space_size): remove this function
(toolbar_item_is_homogeneous): new function
* gtk/gtkseparatortoolitem.c
(gtk_separator_tool_item_size_request): new function.
Tue Jul 8 14:10:35 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoggletoolbutton.h: use private data, add new
internal function _gtk_toggle_tool_button_get_button()
* gtk/gtktoolbutton.h: move to private data
* gtk/gtkradiotoolbutton.c, gtk/gtktoolbutton.c: updates for new
private data.
Tue Jul 8 12:50:20 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbutton.c (gtk_tool_button_get_icon_widget): fix a
type check, (#116947, Krasimir Angelov)
* gtk/gtktoolbar.c: Use new GtkToolItem accessors.
* gtk/gtktoolitem.[ch]: Use a private struct to hold the instance
data. Not instance private data yet, because of bug 116921.
* gtk/gtktoolitem.h: new accessors:
gtk_tool_item_get_homogeneous ()
gtk_tool_item_get_expand ()
gtk_tool_item_get_pack_end ()
gtk_tool_item_get_use_drag_window ()
Mon Jul 7 16:50:32 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkcellrenderertext.c
(gtk_cell_renderer_text_class_init): remove accidentally committed
debugging spew
* gtk/gtktoolbar.c
(gtk_toolbar_paint_space_line): remove this function
(gtk_toolbar_expose): always propagate expose, even if the item is
a separator item
* gtk/gtkseparatortoolitem.c
(gtk_separator_tool_item_expose): moved here from gtktoolbar.c
(get_space_size): new function.
(get_space_style): new function
Sun Jul 6 13:00:20 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (_gtk_drag_source_handle_event)
* gtk/gtkdnd.c (gtk_drag_begin_internal): Remove use
of GDK_POINTER_MOTION_HINT_MASK.
* gtk/gtkdnd.c (gtk_drag_update_idle): Move updating
of the drag into an idle as a superior form of
expose compression.
* gtk/gtkdnd.c (gtk_drag_begin_internal): Move default icon
creation here, so that we have an icon at the start
of the drag (e.g., when retrieving the window cache
information.)
Sun Jul 6 11:56:48 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin_internal): Move default icon
creation here, so that we have an icon at the start
of the drag (e.g., when retrieving the window cache
information.)
Sat Jul 5 10:34:00 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkmenu.c: add vertical_padding style property.
* gtk/gtkmenuitem.c: add style properties toggle_spacing,
arrow_spacing and horizontal_padding. Also center separators and
make them a bit taller.
* gtk/*menuitem.c: use new style properties.
* docs/widget_geometry.txt: Add note about GtkMenuItem
* gtk/gtkstyle.c
(gtk_default_draw_vline, gtk_default_draw_hline):
fix +/-1 errors.
(gtk_default_draw_shadow): draw a black border around menus.
* gtk/gtkvseparator, gtk/gtkhseparator.c, gtk/gtkmenuitem.c: fix
calls to gtk_paint_hline() and gtk_paint_vline() (they take x1,
x2 and y1, y2 respectively, not x, width and y, height).
Sat Jul 5 09:55:38 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdnd-x11.c (precache_target_list): Lookup
all the atoms in the target list at once.
* gdk/x11/gdkdnd-x11.c (gdk_drag_get_protocol_for_display):
Local drag short-circuit.
* gdk/x11/gdkdnd-x11.c (gdk_drag_motion): For the
local case, poke the actions in directly instead of
going through xdnd_set_actions.
* gdk/x11/gdkdnd-x11.c (xdnd_read_actions): Short-circuit
the local case.
* gdk/x11/gdkdnd-x11.c (xdnd_manage_source_filter): Don't
XSelectInput()/add a filter if the drag is local.
* gdk/x11/gdkdnd-x11.c (gdk_drag_get_selection):
Simplify handling of "XdndSelection".
* gdk/x11/gdkevents-x11.c (gdk_event_send_client_message_to_all_recurse): Somehow,
a WM_STATE => _NET_WM_STATE change hand been made here.
* gdk/x11/gdkproperty-x11.c (_gdk_x11_precache_atoms): Free
xatom_names, not atom_names.
* tests/testdnd.c (target_drag_motion): Make the trashcan
open again. (Got lost in deprecation cleanup.)
Fri Jul 4 23:49:22 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkasync.[ch] (_gdk_x11_get_window_child_info):
Function to get a range of information about all the
children of a window in a single pass.
* gdk/x11/gdkdnd-x11.c (get_client_window_at_coords_recurse)
gdk/x11/gdkdnd-x11.c (gdk_window_cache_new): Use
_gdk_x11_get_window_child_info() to greatly reduce
the number of roundtrips.
Fri Jul 4 22:57:18 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkasync.[ch] (_gdk_send_xevent_async): Add
a function to XSendEvent() and call a calback on
failure/success.
* gdk/x11/gdkdnd-x11.c (xdnd_send_xevent): Short-circuit
messages to the same process, use _gdk_send_xevent_async().
Fri Jul 4 22:26:27 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkwindow-x11.[ch] gdkevents-x11.c: Split
toplevel-specific pieces of GdkWindowImplX11 into
a separate GdkToplevelX11 structure.
Fri Jul 4 15:57:52 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_wm_protocols_filter):
Use asynchronously _gdk_x11_set_input_focus_safe
to avoid having to trap errors and XSync().
* gdk/x11/gdkwindow-x11.c (gdk_window_focus): Use
_gdk_x11_set_input_focus_safe() here as well.
* gdk/x11/gdkevents-x11.c (gdk_check_wm_state_changed):
Rework handling of property notifies on _NET_WM_STATE
so that we ignore _NET_WM_DESKTOP notifies unless we
really care.
* gdk/x11/gdkimage-x11.c (gdk_image_check_xshm): Use
XShmQueryExtension() rather than XQueryExtension() to
avoid extra rountrip.
* gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init):
Remove unused call to XGetWindowAttributes()
* gdk/x11/gdkdisplay-x11.c (gdk_display_open): Remove
unused call to XGetKeyboardControl().
* gdk/x11/gdkdisplay-x11.c gdk/gdk.def (gdk_display_flush):
Add (#99571)
* gdk/win32/gdkevents-win32.c gdk/linux-fb/gdkevents-fb.c
No-op implementations of gdk_display_flush().
* gdk/gdkwindow.c (gdk_window_process_all_updates): Use
gdk_display_flush() rather than gdk_flush() to avoid
XSync().
* gdk/x11/gdkwindow-x11.c (update_wm_hints)
gdk/x11/gdkwindow-x11.h: Centralize all handling of WM_HINTS here
so that we don't have to get the property back from the server.
* gdk/x11/gdkwindow-x11.c (show_window_internal): Store
the serial of when we map a toplevel to allow optimizing
out notifies on _NET_WM_STATE/_NET_WM_DESKTOP.
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Don't
XTranslateCoordinates() for override-redirect windows.
Fri Jul 4 15:59:27 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkwindow-x11.c (gdk_window_set_group): Remove comment
about setting window group after the window is mapped from docs
- nothing the ICCCM forbids that.
* gdk/x11/gdkcursor-x11.c (gdk_display_get_maximal_cursor_size):
Fix g_return_val_if_fail() in void return function.
* configure.in: Fix misplaced comma that was resulting
in XShm always being disabled.
Fri Jul 4 19:06:31 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* tests/stresstest-toolbar.c: new test for removing items
* tests/testtoolbar.c: add a popup menu
* gtk/gtkcontainer.c (gtk_container_remove): add hack to avoid
assert widget->parent == container when the container is a
toolbar.
* gtk/gtktoolbar.c (gtk_toolbar_remove_tool_item): Make much
simpler. Also make correct.
* gtk/gtktoolbar.c (gtk_toolbar_button_press): make
popup_context_menu a boolean handled signal.
2003-07-04 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkdrawable-win32.c (gdk_win32_draw_polygon,
gdk_win32_draw_segments, gdk_win32_draw_lines): We can calculate
the width and height of the bounding rectangle only after the
minumum x and y have been found, and need a separate loop for
it. Thanks to Bruce Hochstetler for providing a sample program
exhibiting the bug.
Thu Jul 3 03:13:20 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkpaned.c (gtk_paned_set_child_property): Insert cast to
fix warning. Assign something to old_value to quiet gcc
* gtk/gtkcalendar.c
(start_spinning): gtk_timeout_add->g_timeout_add
* gtk/gtkicontheme.c
(theme_lookup_icon): Make it compile (remove double semicolon)
* gtk/gtktoolbutton.c
(gtk_tool_button_class_init): Long comment about properties.
(gtk_tool_button_class_init): Improve text for "use_underline"
property
(gtk_tool_button_create_menu_proxy): Fix up to use_mnemonic based
on whether the passed-in label has use_mnemonic set
(gtk_tool_button_create_menu_proxy): Split image cloning out in
new function. Make that function also handle image with pixbuf
storage.
(gtk_tool_button_construct_contents): Use gtk_widget_destroy()
instead of gtk_container_remove().
(gtk_tool_button_construct_contents): Fix eliding bug
* gtk/gtktoolbar.c
(gtk_toolbar_finalize): New function. Unref tooltips, pointed out
by Morten Welinder
(gtk_toolbar_button_press): Make popup_context_menu signal provide
coordinates and button number
* tests/testtoolbar.c (main): Add new pixbuf toolbutton
* tests/apple-red.png: new file
Wed Jul 2 18:00:56 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkicontheme.[ch]: Implement a loader for
named themed icon based on from gnome-desktop library
by Alex Larsson.
* gtk/gtkiconthemeparser.[ch]: .ini file parsing code
from gnome-desktop.
* gtk/gtkiconfactory.[ch]: Add
gtk_icon_source_set/get_icon_name() to allow stock icons
to be based off of named theme icons.
* gtk/gtkiconfactory.c: Rework sources so that the source
is *either* a pixbuf, or a filename, or an icon name,
instead of the pixbuf/filename mix it was before. Put a
workaround for get_pixbuf() so that it can return the
filename pixbuf, e.g, for render_icon().
* gtk/gtkiconfactory.c: Make the default setup use
themed icons, and add builtin icons to the default
icon theme for all the standard pixbufs, so we
don't rely on actually having an icon theme on disk.
* gtk/gtkrc.c: Add support for @"icon-name" to specify
a themed icon for a stock icon source.
* tests/Makefile.am test/testicontheme.c: Add a test
program from gnome-desktop.
* gdk/x11/gdkevents-x11.c gtk/gtksettings.c: Add
Net/IconThemeName / gtk-icon-theme-name setting.
* gtk/gtkiconfactory.c (ensure_cache_up_to_date): Actually
update the icon cache serial so we don't continually
* gtk/gtkwidget.c: Fix a couple of references in doc comments
to ::direction_set that should have been to ::direction-changed
Wed Jul 2 15:42:26 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtk.h: Add new toolbar headers
* tests/testtoolbar.c: new file
* tests/Makefile.am (noinst_PROGRAMS): Add testtoolbar.c
* gtk/gtkexpander.c (gtk_expander_class_init): Make it compile
Tue Jul 1 22:49:25 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbar.c:
(gtk_toolbar_remove_tool_item): Fix bug where list is changed
inside a for loop (pointed out by Morten Welinder).
(gtk_toolbar_focus_home_or_end): Minor formatting change
Comments from Owen:
* gtk/gtktoolbutton.c: remove copy of elide_underscores(). Use
gtk_toolbar_elide_underscores instead.
* gtk/gtktoolbar.c: rename signal from focus_ends to
focus_home_or_end.
(_gtk_toolbar_elide_underscores): export this as an internal
function.
(gtk_toolbar_move_focus): add comment explaining difference to
gtk_toolbar_focus();
(gtk_toolbar_list_children_in_focus_order): Make TAB_FORWARD and
TAB_BACKWARD focus the right widgets in RTL mode
* gtk/gtktoolbutton.c (gtk_tool_button_new): Change to take
"label" and "icon" parameters
* gtk/gtktoolbutton.[ch]: remove icon_set property.
2003-07-01 Matthias Clasen <maclas@gmx.de>
* configure.in: Check for Xcursor.
* gdk/x11/gdkcursor-x11.c:
* gdk/gdkdisplay.h:
* gdk/gdkcursor.h: RGBA cursor support based on Xcursor. New functions:
gdk_cursor_new_from_pixbuf(), gdk_display_supports_cursor_alpha(),
gdk_display_supports_cursor_color(), gdk_display_get_default_cursor_size() and
gdk_display_get_maximal_cursor_size(). (#69436)
2003-06-30 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkdnd-win32.c (find_window_enum_proc): New function,
callback proc for EnumWindows().
(gdk_drag_find_window_for_screen): Actually take the drag_window
argument into account: Instead of using WindowFromPoint(), use
EnumWindows(), to be able to skip the drag_window. (#116320, Tony
M Brown, Herman Bloggs)
* gdk/win32/*.c: Replace gdk_drawable_ref()/unref() and
gdk_window_ref()/unref() calls with g_object_ref()/unref().
Consistently use %p format in debugging output of pointers and
HANDLEs.
2003-06-30 Mark McLoughlin <mark@skynet.ie>
Add GtkExpander. See discussion in bug #60553.
* gtk/gtkexpander.[ch]: add.
* gtk/Makefile.am: build gtk-expander.[ch].
* docs/widget_geometry.txt: add info on the layout
of GtkExpander.
2003-06-28 Tor Lillqvist <tml@iki.fi>
Fix for #111028, thanks to J. Ali Harlow, who writes:
I found that the GdkPixmap->GdkImage reference really isn't
important. It's only really there to have somewhere convenient to
store the location of the pixel data in the pixmap and as an easy
way of accessing the dimensions of that data. I have therefore put
together a fix which removes this reference entirely which seems
to solve the problem.
* gdk/win32/gdkpixmap-win32.h (struct _GdkPixmapImplWin32):
Instead of a pointer to a GdkImage, keep a pointer to the pixels
directly.
* gdk/win32/gdkimage-win32.c (_gdk_win32_setup_pixmap_image): Remove.
(_gdk_win32_new_image): New function, replacing the above. Creates
a GdkImage without any associated GdkPixmap.
(gdk_image_new_bitmap, _gdk_image_new_for_depth): Use it instead.
* gdk/win32/gdkprivate-win32.h: Remove from here, too.
* gdk/win32/gdkcursor-win32.c (gdk_cursor_new_from_pixmap)
* gdk/win32/gdkdrawable-win32.c (blit_from_pixmap)
* gdk/win32/gdkgc-win32.c (_gdk_win32_bitmap_to_hrgn)
* gdk/win32/gdkmain-win32.c (_gdk_win32_drawable_description):
* gdk/win32/gdkpixmap-win32.c (gdk_pixmap_impl_win32_finalize,
gdk_pixmap_new, gdk_bitmap_create_from_data, gdk_pixmap_foreign_new)
Corresponding changes.
Fri Jun 27 03:56:59 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* io-gif-animation.c (gdk_pixbuf_gif_anim_frame_composite): Make
it compile with C89 compilers.
Thu Jun 26 21:41:16 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktreeviewcolumn.c
(gtk_tree_view_column_cell_set_cell_data): only set "is_expander"
and "is_expanded" if the new value is different fromt he old one.
Tue Jun 24 20:00:45 BST 2003 Tony Gale <gale@gtk.org>
* docs/faq/gtk-faq.sgml: Thread support updates
from Owen. Various suggestions from Steve Chaplin.
2003-06-21 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkevents-win32.c (gdk_event_translate): When
emulating X11's automatic grab on button down, pass owner_events
as FALSE. According to the XLib spec, automatic grabs use True for
owner_events when OwnerGrabButtonMask is selected, and I don't see
the X11 backend doing that. (#110271)
(find_window_for_pointer_event): Improve debugging output.
2003-06-17 Tor Lillqvist <tml@iki.fi>
* gtk-zip.sh.in (DLLDIR): Look for DLLs also in the bin
subdirectory, where libtool 1.5 installs them.
* README.win32: Point to FSF's binary Win32 distribution of
gettext-runtime.
2003-06-17 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf/Makefile.am: Add rule to regenerate man pages from
Docbook.
(man_MANS): Add gdk-pixbuf-csource.1, gdk-pixbuf-query-loaders.1.
(content_files): Add gdk-pixbuf-csource.xml,
gdk-pixbuf-query-loaders.xml.
* gdk-pixbuf/gdk-pixbuf-csource.xml: New refentry, containing the
former gdk-pixbuf/gdk-pixbuf-csource.1, converted to Docbook.
* gdk-pixbuf/gdk-pixbuf-query-loaders.xml: New refentry.
* gdk-pixbuf/gdk-pixbuf-csource.1:
* gdk-pixbuf/gdk-pixbuf-query-loaders.1: Man pages generated from
the .xml sources.
* gdk-pixbuf/gdk-pixbuf.sgml: Include gdk-pixbuf-csource.xml and
gdk-pixbuf-query-loaders.xml.
* gtk/Makefile.am: Add rule to regenerate man pages from Docbook.
(man_MANS): Add gtk-query-immodules-2.0.1
(content_files): Add gtk-query-immodules-2.0.xml
* gtk/gtk-query-immodules-2.0.xml: New refentry.
* gtk/gtk-query-immodules-2.0.1: Man page generated from the .xml
source.
* gtk/gtk-docs.sgml: Include gtk-query-immodules-2.0.xml.
* acinclude.m4 (JH_PATH_XML_CATALOG, JH_CHECK_XML_CATALOG): New
macros to check for XML catalog contents and path, borrowed from
gtk-doc.
* configure.in: New option --enable-man to enable regeneration of
man pages from Docbook, if the necessary tools are found.
2003-06-15 Matthias Clasen <maclas@gmx.de>
* gtk/gtkcalendar.c (gtk_calendar_class_init):
* gtk/gtknotebook.c (gtk_notebook_class_init):
* gtk/gtkalignment.c (gtk_alignment_class_init):
* gtk/gtkpaned.c (gtk_paned_class_init): Document new properties
as 2.4 additions.
* gtk/gtkwidget.c (gtk_widget_class_init): Move inline signal docs
to the proper place, immediately before the g_signal_new() call.
* gtk/gtktextiter.h: Make the flags-nature of GtkTextSearchFlags
more obvious. (#115122, Jeff Franks)
2003-06-12 Matthias Clasen <maclas@gmx.de>
* gtk/gtkwidget.c: Document child-notify and drag-data-received
signals. Owen, we need to figure out where the best place for
these comments in the source is. I currently put them in front of
the signals enum.
Thu Jan 12 01:01:19 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
silly typo fix. s/seperator/separator/. This gets rid of the
assert spam when using TreeView.
Tue Jun 10 11:23:48 2003 Hidetoshi Tajima <hidetoshi.tajima@sun.com>
* modules/input/gtkimcontextxim.c (xim_instantiate_callback): New
function for XIM instantiate callback.
* modules/input/gtkimcontextxim.c (xim_info_try_im): New function
where call to XOpenIM() or XRegisterIMInstantiateCallback() is
actually made.
* modules/input/gtkimcontextxim.c (xim_destroy_callback): New function
for XIM's destroy callback.
* modules/input/gtkimcontextxim.c (get_im): add a check if info->im
is set or not - if it's not set, call xim_info_try_im() to try to
initiaize it.
* modules/input/gtkimcontextxim.c (reinitialize_ic): reset
filter_key_release flag of the context.
* modules/input/gtkimcontextxim.c (get_ic_real): removed
* modules/input/gtkimcontextxim.c (gtk_im_context_xim_get_ic): move
code from the removed get_ic_real().
For XIM instantiation, destruction and re-instantiation. With
this, Gtk+ apps will be able to connect or reconnect to the XIM,
when it starts after the apps, or when the XIM gets lost and recover.
(#113099, #107782).
Mon Jun 10 01:12:31 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_get_size):
check if width is !null, not *width. Doh.
Tue Jun 10 01:09:33 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
Remove the weird dx logic, get all cell_area and background_area
calculations right. Not sure what was up with it before. (Fixes
#110989, testcase from Vasco Alexandre da Silva Costa).
Mon Jun 9 16:18:11 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_button_press): Back
out event->window test - it wasn't needed because
of the call to get_widget_coordinates().
* gtk/gtknotebook.c (gtk_notebook_button_press): Remove
call to gtk_widget_grab_focus() when not clicking on
any tabs. (Real fix for #114534)
Sun Jun 8 22:03:09 2003 Owen Taylor <otaylor@redhat.com>
* tests/testdnd.c: Use application/x-rootwindow-drop for
root window drops. (#108670, Alex Larsson)
* gdk/x11/gdkdnd-x11.c (gdk_drag_motion) gtk/gtkdnd.c (gtk_drag_drop):
Accept either application/x-rootwin-drop (what GTK+ has always used)
or application/x-rootwindow-drop (what the XDND standard specifies).
Fri Jun 6 11:07:33 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (event_window_still_viewable):
Before delivering an event to a widget, check that
(if relevant), the event's window is still viewable.
(#105642, Dennis Björklund)
* gdk/gdkwindow.c (_gdk_window_destroy_hierarchy):
NULL out private->parent, since after destruction
it might not be valid any more.
* gdk/gdkwindow.c (gdk_window_is_viewable): Fix some
accesses before g_return_val_if_fail(). Treat
DESTROYED windows as unmapped.
Thu Jun 5 09:28:03 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkentry.c: Recompute unconditionally in
gtk_entry_style_set, and in a new gtk_label_screen_changed().
Protect the guts of recompute_idle_func() with
gtk_widget_has_screen(). (#114040, Morten Welinder)
Fix FALSE/0 confusion.
Fri Jun 6 16:25:44 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkviewport.c: Many fixes, along with extensive cleanups and
refactoring of code to reduce duplication; fixes include:
- gtk_viewport_realize(): Position the window correct from adjustment
values. (#110737, Michael Natterer)
- Remove some division-by-zero checks in places where there is no
longer division. (#110737)
- gtk_viewport_class_init: Make the hadjustment/vadjustment properties
G_PARAM_CONSTRUCT, so that there will always be adjustments, even
if gtk_viewport_new isn't used (#101135, Thomas Leonard).
- Switch over to encapsulated lazy-creation for hadjustment/
vadjustment; even with the CONSTRUCT property, we need this after
destroy.
- When updating the adjustment, immediate set their values to
match the the current range of the viewport, and update the
viewport position to match the value of the new adjustments.
(Part of #1165
2003-06-06 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkgc-win32.c (_gdk_win32_gc_new): Set
graphics_exposures and subwindow_mode, too, even if they aren't
currently used.
Fri Jun 6 23:38:23 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (do_expand_collapse),
(expand_collapse_timeout), (cancel_arrow_animation): made
expand_collapse_timeout a wrapper with locks around
do_expand_collapse, made cancel_arrow_animation use
do_expand_collapse. Fixes threadlock. (Fixes#111286, patch from
Peter Bloomfield).
Fri Jun 6 11:05:45 2003 Hidetoshi Tajima <hidetoshi.tajima@sun.com>
* modules/input/gtkimcontextxim.h (struct _GtkIMContextXIM):
* modules/input/gtkimcontextxim.c (preedit_start_callback,
preedit_draw_callback, preedit_done_callback): Add a 'finalizing' flag
to keep preedit-[start,changed,end] signals from being called during
finalization (#111861).
2003-06-05 Noah Levitt <nlevitt@columbia.edu>
* gtk/gtknotebook.c (gtk_notebook_button_press): Ignore button
presses that are not on the tab (#114534).
Thu Jun 5 20:35:40 2003 Owen Taylor <otaylor@redhat.com>
* demos/Makefile.am: Conditionalize deendencies for
gdk-pixbuf-csource on cross-compilation (#112391, J. Ali Harlowe).
Buildtest-inline-pixbufs.h in srcdir. Don't try to build
test-inline-pixbufs.h if we don't have libpng.
* gtk/stock-icons/Makefile.am (gtkstockpixbufs.h):
Add a dependency on gdk-pixbuf.loaders when not
cross-compiling, remove the dependency on gdk-pixbuf-csource
when not cross compiling.
Thu Jun 5 19:24:33 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtktoolbar.c (gtk_toolbar_expose): Subtract off
twice the border width from the width/height, not
1x the border width. (#106336, Rodney Dawes)
Thu Jun 5 15:33:38 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_next_line):
If at the end of the buffer, move to the end iter -
parallels behavior of move_iter_to_previous_line.
(#81960, Padraig O'Briain)
Thu Jun 5 16:12:54 2003 Owen Taylor <otaylor@redhat.com>
#80023, Yao Zhang, TOKUNAGA Hiroyuki
* gtk/gtktextlayout.c (gtk_text_layout_get_cursor_locations):
Account for the preedit cursor offset if the iter passed
in is at the same place as the insertion cursor.
* gtk/gtktextview.c (gtk_text_view_get_cursor_location):
Encapsulate getting the insertion cursor location.
* gtk/gtktextview.c (gtk_text_view_update_im_spot_location):
Pass the real y/height to the IM context. Take
text_view->x/yoffset into account.
Thu Jun 5 16:52:54 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtktextview.[ch]: Never scroll on focus in
(#81893, Patch from Paolo Maggi)
* gtk/gtktextview.c (gtk_text_view_scroll_[h]pages):
Scroll to the current cursor location before handling
the action, in case the user just tabbed in
and the cursor is offscreen.
Thu Jun 5 17:20:40 2003 Owen Taylor <otaylor@redhat.com>
#107883, Gustavo Giráldez
* gtk/gtktextlayout.c (gtk_text_layout_emit_changed):
Split out the case where we know we changed, and
already dealt with our cached line being invalidated
from external calls to gtk_text_layout_changed.
* gtk/gtktextlayout.c (gtk_text_layout_changed):
Check if the invalidate yrange intersects our
cached line, and clear it if necessary.
2003-06-05 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c: Fix for #84668, reported by Torbjrn Andersson:
(gtk_text_view_grab_notify):
(gtk_text_view_state_changed): Implement these
to unobscure cursor when grab shadowed or insensitised.
(gtk_text_view_unobscure_mouse_cursor): New function to undo the
effect of gtk_text_view_obscure_mouse_cursor(). Code lifted from
gtk_text_view_motion_event().
(gtk_text_view_motion_event): Use gtk_text_view_obscure_mouse_cursor().
2003-06-05 Matthias Clasen <maclas@gmx.de>
* gtk/gtktextview.c (select_all): New keybinding signal for
(un)selecting the whole buffer. Bound to C-a/C-\. (see #107889)
Wed Jun 4 19:42:17 2003 Owen Taylor <otaylor@redhat.com>
* gdk/gdkpango.c (gdk_draw_layout_line_with_colors):
When drawing underlines, join up adjacent runs
where possible, so we don't get changes in
shaper/font/etc. breaking underlines. (#103662,
Kang Jeong-Hee)
Wed Jun 4 19:22:58 2003 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_level_find_insert):
Slightly modified patch from Owen Taylor <otaylor@redhat.com> to
improve the speed of inserting rows into an already sorted list,
#109292
Wed Jun 4 19:24:28 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkgc-x11.c gdk/x11/gdkprivate-x11.h: Keep
track of when we have a clip mask set for the GC,
and when we unset it, or switch to a clip region,
immediately call XSetClipMask (..., None) to avoid
Xlib caching stale data. (#111806)
* gtk/gtktextdisplay.c: Don't set a clip mask
when drawing alpha pixmaps; it isn't necessary any more.
(#111806)
Wed Jun 4 18:27:44 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcheckbutton.c (gtk_real_check_button_draw_indicator):
gtk/gtkradiobutton.c (gtk_radio_button_draw_indicator):
Use GTK_WIDGET_IS_SENSITIVE(), not GTK_WIDGET_SENSITIVE
(#92548, Tim Evans)
* gtk/gtkcheckmenuitem.c (gtk_real_check_menu_item_draw_indicator)
gtk/gtkradiomenuitem.c (gtk_radio_menu_item_draw_indicator): If
Use state_type = STATE_INSENSITIVE for insensitive menu items.
Wed Jun 4 21:25:35 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (gtk_tree_view_drag_begin): use a silent
assert for get_info. (reported by Michael Natterer),
(gtk_tree_view_expand_all_emission_helper),
(gtk_tree_view_expand_all_helper): emit row_expanded for all
expanded rows during an _expand_all operation. (Fixes#111280,
reported by Benjamin Bayart).
Tue Jun 3 18:32:30 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_wm_protocols_filter): Don't
respond to pings on a root window; prevents infinite
loops if we are selecting for SubstructureNotify on the
root window. (#111945, Sergey V. Udaltsov)
Tue Jun 3 17:39:16 2003 Owen Taylor <otaylor@redhat.com>
#71597, reported by Morten Welinder
* gdk/gdkpixbuf-drawable.c (rgb888amsb): Fix and simplify
(Patch from Christian Petig)
* gdk/gdkpixbuf-drawable.c (rgb{555,565}{a,}{msb,lsb}):
Major rewrite of 555 and 565 conversion routines:
- Move all the bit shifting into a small block of macros,
eliminating much duplication of complicated arithmetic.
- Get rid of 2-pixels at a time code, which was buggy,
hard to maintain, caused unaligned accesses, and
probably didn't actually perform any better.
- Simplify cases where different data types were
used for the little and big endian cases, use
GUINT16_SWAP_LE_BE() where appropriate.
Tue Jun 3 15:05:47 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdrawable-x11.c (convert_to_format): Remove
bad optimization for src_rowstride == dest_stride.
(Didn't consider the case where we were copying only
partial widths of a wider source buffer)
(#113034, reported by Hans Petter Jansson)