Sat Jul 12 16:01:03 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_set_property):
free the old text and extra_attrs *after* we parsed the new
markup string. (Fixes #114485, reported by Owen Taylor).
Sat Jul 12 15:51:33 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
Fixes #113904, testcase provided by Rene Seindal.
* gtk/gtktreeview.c (gtk_tree_view_button_press): set
pressed_button to -1 when a row has been activated,
(gtk_tree_view_motion_bin_window): only start a drag if there's
a button being pressed.
Sat Jul 12 15:51:18 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): use
gdk_window_get_pointer instead of gdk_display_get_window_at_pointer
to avoid a roundtrip (#110272, Owen Taylor).
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.
* 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.
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.
Owen Taylor [Tue, 8 Jul 2003 22:27:47 +0000 (22:27 +0000)]
Change _gdk_x11_send_xevent_async() to
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)
* gtk/gtktoggletoolbutton.h: remove strange #define
* gtk/gtktoolbutton.h: fix cut'n'paste error
* gtk/gtktoolbutton.c (gtk_tool_button_init): use instance
private data
* gtk/gtktoolitem.c (gtk_tool_item_class_init): use instance
private data instead of g_new0()
* gtk/gtktoggletoolbutton.c (gtk_toggle_tool_button_init): use
instance private data
* gtk/gtkbutton.c (gtk_button_realize): remove GDK_EXPOSURE_MASK
for INPUT_ONLY window
* gtk/gtkmenuitem.c (gtk_menu_item_realize): same
* gtk/gtknotebook.c (gtk_notebook_realize): same
* gtk/gtkexpander.c (gtk_expander_realize): same
* gtk/gtkrange.c (gtk_range_realize): same
* 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.
* 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
Owen Taylor [Sun, 6 Jul 2003 18:56:44 +0000 (18:56 +0000)]
gtk/gtkdnd.c (_gtk_drag_source_handle_event) Remove use of
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.)
Owen Taylor [Sun, 6 Jul 2003 16:13:11 +0000 (16:13 +0000)]
Move default icon creation here, so that we have an icon at the start of
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.)
(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).
Owen Taylor [Sat, 5 Jul 2003 05:27:11 +0000 (05:27 +0000)]
Move the grabs up earlier, so we don't get a big pile of uncompressed
Sat Jul 5 00:49:32 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin): Move the grabs up
earlier, so we don't get a big pile of uncompressed
motion events before the grab takes effect.
* gtk/gtkdnd.c (gtk_drag_update_icon): Call
gdk_window_process_all_updates() so that the area
we are dragging over gets a change to redraw.
* gtk/gtkdnd.c (_gtk_drag_dest_handle_event): Use
gdk_window_get_position(), not gdk_window_get_origin().
* gdk/x11/gdkwindow-x11.[ch] (gdk_window_have_shape_ext)
gdkdisplay-x11.h: use XShapeQueryExtension to
avoid duplicate XQueryExtension when we actually
use it. Remove unnecessary caching in GdkDisplayX11.
Owen Taylor [Sat, 5 Jul 2003 04:22:06 +0000 (04:22 +0000)]
Function to get a range of information about all the children of a window
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.
Owen Taylor [Sat, 5 Jul 2003 01:54:05 +0000 (01:54 +0000)]
Use asynchronously _gdk_x11_set_input_focus_safe to avoid having to trap
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/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.
Tor Lillqvist [Fri, 4 Jul 2003 00:23:03 +0000 (00:23 +0000)]
We can calculate the width and height of the bounding rectangle only after
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.
* 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
Owen Taylor [Wed, 2 Jul 2003 22:44:09 +0000 (22:44 +0000)]
Implement a loader for named themed icon based on from gnome-desktop
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.
* 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
Matthias Clasen [Mon, 30 Jun 2003 22:30:54 +0000 (22:30 +0000)]
Check for Xcursor.
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)
Tor Lillqvist [Mon, 30 Jun 2003 21:58:24 +0000 (21:58 +0000)]
New function, callback proc for EnumWindows().
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.
Matthias Clasen [Sat, 28 Jun 2003 20:04:18 +0000 (20:04 +0000)]
Stop discriminating against 32bpp ICOs a): Use the byte size of the image
2003-06-28 Matthias Clasen <maclas@gmx.de>
* io-ico.c (DecodeHeader): Stop discriminating against 32bpp ICOs a): Use the byte
size of the image as a heuristic when selecting the bitmap to load - this lets us
select 32bpp bitmaps which come after a 8bpp bitmap.
(OneLineTransp): Stop discriminating against 32bpp ICOs b): Don't overwrite the
alpha channel of 32bpp ICOs.
(gdk_pixbuf__ico_image_load_increment): Stop decoding the header unnecessarily.
Tor Lillqvist [Sat, 28 Jun 2003 01:12:51 +0000 (01:12 +0000)]
Fix for #111028, thanks to J. Ali Harlow, who writes: I found that the
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.
Soeren Sandmann [Fri, 27 Jun 2003 02:38:44 +0000 (02:38 +0000)]
Make it compile with C89 compilers.
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.
Matthias Clasen [Tue, 24 Jun 2003 21:55:40 +0000 (21:55 +0000)]
Add a blurb for shadow_type.
2003-06-24 Matthias Clasen <maclas@gmx.de>
* gtk/gtkspinbutton.c (gtk_spin_button_class_init): Add a blurb for shadow_type.
* gtk/gtkwidget.c (gtk_widget_class_install_style_property_parser):
(gtk_widget_class_list_style_properties): Use same parameter names as in
header (to silence gtk-doc).
Matthias Clasen [Mon, 23 Jun 2003 20:20:15 +0000 (20:20 +0000)]
Remove the pointless refusal to load images with dubious disposal mode on
2003-06-23 Matthias Clasen <maclas@gmx.de>
* io-gif.c (gif_get_frame_info): Remove the pointless refusal to load images with dubious
disposal mode on the first frame. Just ignore it, as everybody else does.
* io-gif.c (gif_get_extension): Reset block_count to 0 for all application extensions, otherwise the data blocks
of unknown extensions are not propertly skipped.
Second half of the fix for #106962, handle frames extending beyond the logical screen:
* io-gif.c (clip_frame): New helper function to clip a rectangle to the logical screen size of the gif.
(maybe_update): New helper function to call update_func only if the rectangle is not completely off-bounds.
(gif_get_lzw): Read frames extending outside the logical screen size, but be careful clip to the logical screen size
when operating on the composite pixbuf and when calling update_func.
(gif_init): Set the animation size to the logical screen size.
(gif_get_frame_info): Don't refuse to load images with frames extending beyond the logical screen size.
* io-gif-animation.c (gdk_pixbuf_gif_anim_frame_composite): Be careful to clip all rectangles to the logical screen
size, also handle the fact that frames may be completely off-bounds.
Tor Lillqvist [Sun, 22 Jun 2003 00:21:03 +0000 (00:21 +0000)]
When emulating X11's automatic grab on button down, pass owner_events as
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.
Matthias Clasen [Tue, 17 Jun 2003 00:37:28 +0000 (00:37 +0000)]
Add rule to regenerate man pages from Docbook. (man_MANS): Add
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.
Matthias Clasen [Wed, 11 Jun 2003 23:10:28 +0000 (23:10 +0000)]
Document child-notify and drag-data-received signals. Owen, we need to
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.
silly typo fix. s/seperator/separator/. This gets rid of the assert spam
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.
Hidetoshi Tajima [Tue, 10 Jun 2003 18:24:29 +0000 (18:24 +0000)]
New function for XIM instantiate callback. New function where call to
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).