2001-08-06 Havoc Pennington <hp@pobox.com>
* gdk/x11/gdkimage-x11.c (_gdk_x11_get_image): The whole
GDK_IS_WINDOW() branch of this was a bit screwed up, because
it was expecting a GdkWindow, not a GdkWindowImplX11.
Also, we were getting the window rect in screen coords
and the screen rect in window coords then intersecting
them; instead, get window rect in window coords.
Finally, there were codepaths that resulted in a stuck server grab
(when the window was fully onscreen, or on gdk_image_new()
failure); make the server ungrab thing a bit more
robust/consistent.
2001-08-06 Sven Neumann <sven@gimp.org>
* gdk/gdkpango.c (gdk_pango_context_destroy):
check if info->colormap != NULL before unref'ing it. It might have
been set to NULL using gdk_pango_context_set_colormap().
Sun Aug 5 11:24:27 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcolorsel.c (gtk_color_selection_set_current_alpha):
Fix conversion from float to int so that we don't get
skew in the int => float => int roundtrip.
(#58120, reported by Vitaly Tishkov). Also fix problem
where if no alpha was set, the returned alpha
from (say) set_current_alpha() was returned as 1, not 65535.
Sat Aug 4 19:28:21 2001 Owen Taylor <otaylor@redhat.com>
* tests/testgtk.c: Patch from Hans (with various modifications),
to add the ability to use testgtk as a rough-and-ready
benchmark. Try, 'testgtk --bench all:5' (if you want decent
numbers, run without a window manager)
2001-08-04 Alexander Larsson <alexl@redhat.com>
* gdk/win32/gdkinput.c:
Add #ifdef HAVE_WINTAB around wintab.h include.
* gtk/gtk.def:
Removed marshals that have been moved to glib.
Commented out plug and socket. They didn't compile for me
on win32.
2001-08-04 Hans Breuer <hans@breuer.org>
* gtk/stocks-icons/makefile.msc : new file
* gtk/makefile.msc.in : use it
* gtk/gtkstyle.c : not all platforms do provide M_PI and
friends, but luckily there is G_PI
* gtk/gtk.def : updated
* gdk/win32/gdkwindow.c (gdk_window_new) : don't make all TEMP
windows WS_POPUP, but only those without a parent. This fixes the
mis-alignment between the selectable (temp, input only) window and
the window text of GtkLabel.
(gdk_window_show) : respect private->state when actually showing
the window.
(gdk_window_set_transient_for) : Implementation from Wolfgang
Sourdeau <wolfgang@contre.com> ported to 2.0 and added some
error handling. Should fix#50586.
* gdk/win32/gdkevents-win32.c : beautify log output
2001-08-04 Michael Natterer <mitch@gimp.org>
* gtk/gtkitemfactory.c (gtk_item_factory_create_item):
Need to show the image after adding it to the GtkImageMenuItem.
This used to work without in testgtk because of the
gtk_widget_show_all() at the end of the function.
(Closes#54978).
Tue Jul 31 22:59:33 2001 Tim Janik <timj@gtk.org>
* gtk/gtknotebook.c (gtk_notebook_get_child_property):
(gtk_notebook_set_child_property): fix finding of child's page,
since we have to validly deal with labels and menus here as well.
(gtk_notebook_get_child_property): fix warning.
(gtk_notebook_class_init): property tab_pack is of type
GTK_TYPE_PACK_TYPE (enum) not boolean.
(gtk_notebook_find_child): don't always warn, we might be looking
for a label or menu child.
(gtk_notebook_map): fix mapping of panel.
* gtk/gtkwidget.c (gtk_widget_set_child_visible): always constrain
widget's mapped state, regardless of the value being set equals
old settings, since things like REALIZED(parent) or MAPPED(parent)
may have changed since the old value was set. make it an error to
invoke this function on a toplevel widget.
* gdk/gdkprivate.h:
* gdk/x11/gdkx.h:
Put all mentions of GdkFont inside #ifndef GDK_DISABLE_DEPRECATED.
* demos/gtk-demo/menus.c: (do_menus): Cast to G_OBJECT, not
GTK_OBJECT.
Sun Jul 29 17:14:01 2001 Tim Janik <timj@gtk.org>
* gtk/gtkitemfactory.c (gtk_item_factory_parse_rc): use g_file_test()
instead of long deprecated g_scanner_stat_mode().
2001-07-29 Hans Breuer <hans@breuer.org>
* gdk/makefile.msc : build in the backend dir after
auto-generating files
* gdk/win32/gdkfont-win32.c (gdk_font_load) : reimplement
with code from win32-production-branch.
* gdk/win32/gdkwindow-win32.c : set the private->destroyed flag
before calling DestroyWindow, which indirectly calls
gdk_window_destroy_notify ()
(performance patch merged from win32-production-branch)
* gdk/win32/gdkdrawable-win32.c (gdk_win32_draw_segments):
Use PatBlt() instead of LineTo() when possible (solid single-pixel pen,
R2_COPYPEN rop). It is claimed to be much faster.
Fri Jul 27 11:31:15 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_get_property):
add an "attributes" property to the text renderer for ATK.
2001-07-26 Alex Larsson <alexl@redhat.com>
* gdk/linux-fb/gdkimage-fb.c (_gdk_fb_get_image):
Initialize image->bits_per_pixel from the drawable, not from
the root window.
* gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_get_depth):
Fix cast. argument is an IMPL already.
2001-07-15 James Henstridge <james@daa.com.au>
* gtk/gtkwindow.c (gtk_window_add_accel_group): cast to GObject.
(gtk_window_remove_accel_group): same here.
(gtk_window_key_press_event): same here.
* gtk/gtkwidget.c (gtk_widget_add_accelerator): cast to GObject.
(gtk_widget_remove_accelerator): same here.
(gtk_widget_remove_accelerators): same here.
* gtk/gtkplug.c (gtk_plug_accel_entries_changed): same here.
* gtk/gtkmenushell.c (gtk_menu_shell_key_press): cast to GObject
instead of GtkObject.
* gtk/gtkmenu.c (gtk_menu_key_press): update since GtkAccelGroup
now takes GObjects.
* gtk/gtkitemfactory.c (gtk_item_factory_propagate_accelerator):
pass a GObject to gtk_accel_group_entries_from_object.
(gtk_item_factory_create_item): s/accel_widget/accel_object/
* gtk/gtk-boxed.defs: remove GtkAccelGroup boxed def.
* gtk/gtkaccellabel.c: convert to handle GObject accel objects.
* gtk/gtkaccellabel.h: fix header to reflect that arbitrary
GObjects can have accelerators set now. Add compatibility
defines.
* gtk/gtkmarshal.list: add missing marshallers.
* gtk/gtkaccelgroup.[ch]: convert to a GObject, and allow setting
accelerators on plain GObjects. gtk_accel_group_object_destroy
has been converted into a weak reference, and
gtk_accel_group_delete_entries is now a destroy notify for that
piece of data.
* gdk/gdkdraw.c: Added a check on the colormap depth to
gdk_drawable_set_colormap()
* gdk/x11/gdkimage-x11.c: combination of Mathias Hasselmann's
patch to fix colorsel and my patch to fix gdk_drawable_get_image()
for pixmaps without visuals (more specifically, bitmaps)
* gdk/x11/gdkpixmap-x11.c: Fixed gdk_pixmap_new() so it
doesn't set a colormap with the wrong depth
2001-07-22 Anders Carlsson <andersca@gnome.org>
* gtk/gtktreeview.c (gtk_tree_view_class_init): Replace the
expander_height and expander_width properties with a single
property, expander_size.
(gtk_tree_view_init): Set the tab_offset to expander_size
plus some padding.
(gtk_tree_view_unrealize): Remove the expand/collapse
timeout if it exists.
(coords_are_over_arrow): Fix a small bug.
(gtk_tree_view_motion_draw_column_motion_arrow): Use
expander_size.
(gtk_tree_view_draw_focus): Use "treeview" instead of
"add-mode" as detail when drawing the focus.
(gtk_tree_view_bin_expose): Use "treeview-drop-indicator"
instead of "add-mode" as detail when drawing the focus.
(gtk_tree_view_deleted): If we have a node currently being
expanded or collapsed, remove the timeout and set the node
to NULL.
(gtk_tree_view_queue_draw_arrow): New function that just
redraws the arrow of a node.
(gtk_tree_view_draw_arrow): Use expander_size instead of
expander_width/expander_height, also pass a different
expander_style to gtk_paint_expander depending on the
state of the node being drawn.
(expand_collapse_timeout): New function for expanding
or collapsing a node depending on the previous state.
(gtk_tree_view_real_expand_row): Add timeout and set
correct state for node being expanded.
(gtk_tree_view_real_collapse_row): Add timeout and set
correct state for node being collapsed.
* gtk/gtktreeprivate.h (struct _GtkTreeViewPrivate): Add
information about the node currently being expanded or
collapsed, and also a timeout id.
* gtk/gtkstyle.h (struct _GtkStyleClass): Replace is_open
with expander_style for draw_expander.
* gtk/gtkstyle.c (gtk_draw_expander): Replace is_open with
expander_style.
(create_expander_affine): New function for creating an
expander affine.
(apply_affine_on_point): New function for applying an
affine to a point.
(gtk_default_draw_expander): Modified to take expander_style
instead of is_open, and to draw the rectangle rotated differently
depending on the expander style.
(gtk_paint_expander): Replace is_open with expander_style.
* gtk/gtkrbtree.h: Add expander states to GtkRBNodeColor.
* gtk/gtkenums.h: Add expander style enum.
2001-07-21 Jonas Borgstrm <jonas@codefactory.se>
* gtk/gtktreemodel.c (gtk_tree_model_foreach): Check the return
value from gtk_tree_model_get_iter, the model might be empty.
2001-07-20 Hans Breuer <hans@breuer.org>
* gdk/win32/gdkinput-win32.c : gdk_device_get_history moved to
gdk/gdkinput.c like the other backends
* gdk/win32/gdkinput-win32.h :
* gdk/win32/gdkinput.c :
* gdk/win32/gdkvisual-win32.c :
* gdk/win32/gdkwin32.h : mechanical adaption to GdkDevice and
GdkVisual GObjectification. UNTESTED for pen-devices because
I simply have none.
* gdk/gdk.def :
* gtk/gtk.def : updated externals
* gtk/gtkiconfactory.c :
* gtk/gtkoldeditable.c : GError *error needs to be initialized (= NULL)
before passing &error to functions to avoid strange crashes
* gtk/gtkcontainer.c (gtk_container_real_set_focus_child) : is static
* gtk/gtkwidget.c (gtk_widget_get_child_visible): use g_return_val_if_fail
* gtk/makefile.msc.in : updated
Thu Jul 19 14:56:33 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkaccellabel.c (gtk_accel_label_class_init)
* gtk/gtkinputdialog.c (gtk_input_dialog_set_key):
Use Shift/Ctrl instead of Shft/Ctl. (#53807)
Thu Jul 19 11:41:00 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcolorsel.c: Add propery support (roughly
based on patch from Lee Mallabone, #51014)
* gtk/gtkcolorsel.h: Mark gtk_color_selection_set_update_policy as
deprecated, since we already g_warning() on it.
Thu Jul 19 14:24:34 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkentry.c (gtk_entry_set_positions): Fix
typo that sometimes caused selection not to work properly.
* gtk/gtkentry.c (gtk_entry_grab_focus): Select text in
entry when tabbing in. (#57743)
* gtk/gtkentry.c (gtk_entry_motion_notify): If the
user drags up above or down below the entry, move
to the end or the beginning of the entry. (Suggestion
from Jay Cox, #50940)
* gtk/gtkentry.c (gtk_entry_move_cursor): If we have
a current selection, then when moving by chars or
words, move to the end of the selection rather than
from entry->current_pos. (Suggestion from Jay Cox,
#50942)
Sat Jul 7 02:50:14 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_set_parent): Enforce
the widget/child realization/mapping invariants.
* gtk/gtkwidget.[ch] gtk/gtkprivate.h: Add functions
gtk_widget_[get/set]_child_visible() to control
whether visible children of a mapped window are
mapped.
* docs/widget_system.txt: Updated for changes in
container contract, and addition of GTK_CHILD_VISIBLE.
* gtk/gtkcontainer.c: Add generic map()/unmap()
functions that work for almost all containers.
* gtk/gtknotebook.c gtk/gtkpacker.c: Use
gtk_widget_set_child_visible() where necessary.
* gtk/*.c: Remove excess map(), unmap(), and
realization/mapping invariant enforcing code
from many containers.
Wed Jul 18 19:51:45 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtktextview.c (gtk_text_view_set_attributes_from_style):
Get the foreground color from 'text', nor 'base'. (#57568)
Wed Jul 18 19:28:46 2001 Owen Taylor <otaylor@redhat.com>
* gtk/*.c: Patch from Matthias Clasen to remove remove
all instances of g_return_if_fail (foo != NULL); that are
immediately before a g_return_if_fail (GTK_IS_FOO (foo));
since the second check catches the NULL anyways.
Wed Jul 18 18:23:05 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkbutton.c gtk/gtkentry.c gtk/gtkmenu.c gtk/gtktextview.c
gtktreeview.c: Fix idles and timeouts to be properly surrounded by
GDK_THREADS_ENTER()/LEAVE() pairs.
* gtk/gtkdialog.c gtk/gtkclipboard.c: Surround calls
to g_main_loop_run() with GDK_THREADS_LEAVE()/ENTER()
pairs. (Problem found by M. Meeks)
* gtk/gtkiconfactory.c: (gtk_icon_size_register): Reorder code so
that we don't get a g_warning message every time we register a new
icon size.
* gdk/x11/gdkcolor-x11.c: (gdk_colormap_alloc1): Fix warning by
using pixel variable of the correct type.
Fri Jul 13 15:33:32 2001 Owen Taylor <otaylor@redhat.com>
* gdk/gdkwindow.[ch]: Add a function gdk_window_get_internal_paint_info(),
so that using X functions on a GdkWindow is possible, if
a little hairy.
* gdk/gdkgc.c (gdk_gc_offset): Add a function to offset the clip
and ts_origin of a GC, so that external parties can offset/restore
a GC, when using gdk_window_get_internal_paint_info().
Sat Jul 14 12:47:35 2001 Tim Janik <timj@gtk.org>
* gtk/gtkrange.c:
(second_timeout):
(initial_timeout):
(update_timeout): add GDK_THREADS_ENTER/GDK_THREADS_LEAVE.
(gtk_range_calc_layout): compute the new layout based on an
adjustment->value being passed in as argument.
(gtk_range_button_press): for button2 slider warps, first recalc
the layout, then adjust the value. also, use update_slider_position()
for adjusting the value, so we keep pixel quantisation at which we
usually operate (upon motion or button releases). the reason for this
is that, we can't change the adjustment upon button2 presses to a non
quantised value and upon button2 release re-quantise the value since
that'd alter the value even if we didn't get any motion events (causing
unexpected scroll area warps upon release and/or slider pixel-jitter).
(gtk_range_motion_notify): update the slider position from queried
coordinates, not event coordinates.
Fri Jul 13 09:47:52 2001 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c (gtk_default_draw_focus): fix line style resetting,
the default gc values are: width=0, CapBut, JoinMiter.
2001-07-13 Anders Carlsson <andersca@codefactory.se>
* gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_render): Take
into account the xpad and ypad when calculating the width and the
height of the pixbuf cell.
Thu Jul 12 16:51:34 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c: Replace a couple of inappropriate calls to
GTK_WIDGET_HAS_FOCUS() with gtk_widget_is_focus(). (#57067)
Thu Jul 12 13:53:28 2001 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Properly
clean up when handling events for move-resize emulation.
(Problem traced down by Matthias Clasen, #57271)
Mon Jul 9 12:50:51 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreemodel.c: remove gtk_tree_model_get_first in favor of
gtk_tree_model_get_iter_root.
* gtk/gtkliststore.c: Add a bunch of g_return statements.
(gtk_list_store_iter_n_children): Fix up.
* gtk/gtktreestore.c: Add a bunch of g_return statements.
* gtk/gtkwidget.c (gtk_widget_class_init):
G_SIGNAL_TYPE_STATIC_SCOPE GtkSelectionData to
restore some workingness.
* gdk/x11/gdkwindow-x11.c (gdk_window_new): Fix
handle of window type for input-only windows.
Thu Jul 5 21:53:46 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkbbox.[ch] gtk/gtkbox.[ch] gtk/gtk[hv]bbox.c:
Patch from Gregory Merchan to add
gtk_button_box_set_secondary(), which separates
the child into a separate group from the normal
buttons. (#56331)
* gtk/gtkdialog.c: Make help buttons secondary by
default.
* gtk/gtkbbox.c: Added a child property "secondary".
* gtk/testgtk.c: Turn on the help button for the
color selector to check that it properly appears
as secondary.
Mon Jul 2 01:09:37 2001 Owen Taylor <otaylor@redhat.com>
* gdk/gdkwindow.[ch] gdk/gdkinternals.h gdk/x11/gdkwindow-x11.c
gdk/linux-fb/gdkwindow-fb.c gdk/x11/gdkwindow-x11.c gdk/gdk:
Add gdk_set_pointer_hooks() to allow pointer-querying to
be hooked by an event record/playback system like GERD.
(#56914)
Thu Jul 5 08:57:07 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_reset_rc_style): Pass
in the right value of initial_emission to
gtk_widget_set_style_internal (#57091)
Wed Jul 4 23:17:04 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_dest_hierarchy_changed):
Make compile.
* gtk/gtkwidget.c (gtk_widget_reset_rc_style): Fix problem
with calling gtk_widget_set_style_internal() with
the old style, not the new style. (#56989)
Wed Jul 4 22:35:40 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c gtk/gtkmenubar.c gtk/gtktreeviewcolumn.c
gtk/gtkwidget.c:
Check GTK_WIDGET_TOPLEVEL(gtk_widget_get_toplevel (widget)),
not GTK_WIDGET_GET_ANCESTOR ... see
http://mail.gnome.org/archives/gtk-devel-list/2001-July/msg00072.html.
Indicate the best practice in the docs for gtk_widget_get_toplevel().
* gtk/gtkwidget.[ch]: Expose a private _gtk_widget_hierarchy_changed(),
so GtkPlug can give the correct signals when transforming
from a child to a toplevel.
* gtk/gtkdnd.c (gtk_drag_dest_hierarchy_changed): Handle
reparentation correctly.
* gtk/gtkwidget.c (gtk_widget_propagate_hierarchy_changed):
Propagate the previous_toplevel argument down properly.
* gtk/gtklabel.c (gtk_label_finalize): Fix unrefing
of wrong atr list.
* gtk/gtkplug.[ch]: Add an "embedded" signal.
* gtk/gtksocket.[ch]: Add "child_added", "child_removed"
signals.
* gtk/gtkplug.[ch] gtk/gtksocket.[ch]: Add
functions gtk_plug_get_id(), gtk_socket_get_id(),
to avoid the user having to worry about realization,
and gdkx.h.
* tests/testsocket.c: Extend to try out the new signals
and gtk_plug/socket_get_id().
* gtk/gtklabel.c (gtk_label_set_pattern_internal): Fix
setting of underline attributes.
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Ignore
DestroyNotify events from SubstructureNotifyMask
* gdk/x11/gdkwindow-x11.c (gdk_window_reparent):
Switch GDK_WINDOW_TYPE (window) as needed.
* gdk/x11/gdkwindow-x11.c (gdk_window_new): Clean up,
allow creation of toplevel windows as children of
foreign windows.
* gtk/gtkplug.c: Remove hacks involving changing private
fields of GdkWindow.
* gtk/gtkplug.[ch] gtk/gtksocket.c: Work to make
exactly the same signals and notification
be emitted for local embedding as for inter-process
embedding.