Wed Jan 13 13:28:00 1999 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c: eliminate queue_clears or queue_draws where we know
that expose events will be generated.
(gtk_widget_map): only queue_draw for NO_WINDOW widgets.
(gtk_widget_unmap): only queue_clear_child for NO_WINDOW widgets.
(gtk_widget_size_allocate): we don't need a queue_clear on changing
allocations of !NO_WINDOW widgets, we do still need a full redraw for
them though.
* gtk/gtklabel.c (gtk_label_set_text): check whether the new string
actually differs from the original.
Tue Jan 12 18:30:51 1999 Owen Taylor <otaylor@redhat.com>
* gtk/testdnd.c (label_drag_data_received): Add
a drag_data_received handler for the label.
Tue Jan 12 15:01:50 1999 Owen Taylor <otaylor@redhat.com>
* gdk/gdkevents.c: Removed the putback_events queue,
since it was causing problems with event ordering -
just keep a single queue. If we need it, we can
add priorities to events.
* gdk/gdkevents.c: Annotate events with flags - we allocate
a GdkEventPrivate structure in gdk_event_new() and use these
flags to mark an event being translated as "pending" -
I.e., not yet ready to be dequeued. So we can put
the event on the queue and get the order of the
events right. (This solves the double-click problems)
* gdk/gdk.h gdk/gdkevents.h: Add gdk_event_peek() to get a copy
of the next event on the event queue.
* gtk/gtkmain.c (gtk_main_do_event): Use gdk_event_peek()
to check the next event without causing event queue
reordering.
Tue Jan 12 13:47:07 1999 Tim Janik <timj@gtk.org>
* reworked the redrawing heuristics somewhat, this fixed a bunch of
existing redrawing problems and majorly reduces overall redrawing needs
during normal operation. basically we now only queue redraws when
neccessary and much rely on the draw_area coalescing code in gtkwidget.c
to optimize the queued portions. widgets will now upon reallocation only
get redrawed if their allocation has changed. upon hide/show only the
area allocated by the child will be queued for the parent, this has the
side effect that parents which change their appearance in dependance on
the numer of visible children have to keep track of their children's
visiblity and eventually fully redraw themselves. this is a minor
constrain with great benefits in terms of redraw reduction, and only got
triggered by the notebook widget.
* gtk/gtkwidget.c:
(gtk_widget_queue_clear): don't bother if width and height == 0.
(gtk_widget_queue_clear_child): new static function to queue a redraw of
the area obscured by a child on a parent.
(gtk_widget_queue_resize): queue_clear the widget if it is drawable.
(gtk_widget_show): queue resize on the widget before showing.
(gtk_widget_hide): queue resize on the widget after hiding.
(gtk_widget_map): queue_draw the widget after mapping.
(gtk_widget_unmap): queue_clear_child the widget.
(gtk_widget_size_allocate): queue_clear_child and queue_draw if the
widget's allocation changed.
(gtk_widget_unparent): queue_clear_child so the parent redraws obscured
portions.
(gtk_widget_real_show):
(gtk_widget_real_hide):
(gtk_widget_real_map):
(gtk_widget_real_unmap):
(gtk_widget_real_size_allocate): don't bother with redraw queueing,
descendants that override these functions don't do either and we handle
all redrawing/resizing related stuff before or after the signal emission
now.
* gtk/gtkcontainer.c:
(gtk_container_resize_children): don't bother about redrawing anymore
since gtk_widget_size_allocate handles that for us now.
* gtk/gtknotebook.h:
* gtk/gtknotebook.c:
added a flag have_visible_child to indicate whether we need to draw
non child related portions at all, e.g. shadows etc.
(gtk_notebook_draw): if have_visible_child changed, do a full paint
instead of updating a small area only.
Mon Jan 11 20:44:35 1999 Tim Janik <timj@gtk.org>
* gtk/gtkstyle.c: changed gtk_style_apply_default_pixmap to
gtk_style_apply_default_background which takes an extra argument
copy_area to determine NO_WINDOW widget pixmap copying.
changed callers accordingly.
* gtk/gtktogglebutton.c:
(gtk_toggle_size_allocate):
(gtk_toggle_button_expose):
(gtk_toggle_button_paint): avoid messing with our parent's window if
toggle_button->draw_indicator == TRUE and we are a NO_WINDOW widget.
* gtk/gtkcheckbutton.c (gtk_real_check_button_draw_indicator): draw
the draw_indicator with GTK_STATE_ACTIVE if the toggle button is active.
* gtk/check-n.xpm:
* gtk/check-y.xpm:
* gtk/testgtkrc: set pixmaps for ACTIVE and NORMAL check button
bg_pixmaps.
Mon Jan 11 23:52:58 1999 Lars Hamann <lars@gtk.org>
* gtk/gtklist.c (gtk_list_signal_drag_begin)
(gtk_list_drag_begin): end drag selections if necessary.
* gtk/gtkspinbutton.c/h (gtk_spin_button_update): made function
public. Manually force synchronization of spin button text and
adjustment value.
Mon Jan 11 15:23:32 1999 Tim Janik <timj@gtk.org>
* gtk/gtktogglebutton.c: eliminated some queue_draws when invoking
gtk_widget_set_state, since that cares about redrawing already.
some code cleanups.
* gtk/gtktogglebutton.[hc]:
* gtk/gtkfontsel.c:
* gtkgamma.c:
s/gtk_toggle_button_set_state/gtk_toggle_button_set_active/ since
set_state is already taken by gtkwidget.h.
* gtk/gtkcompat.h: #define gtk_toggle_button_set_state
gtk_toggle_button_set_active.
* gtk/gtkstyle.c: some indentation cleanups.
Mon Jan 11 10:45:28 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c: Only remove handlers for motion/button_release
at drop, remove "selection_get" handler later.
Mon Jan 11 13:31:49 1999 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.[hc]: removed Paolo Molaro's type creation hooks
again, since they 1) don't care about infinite recursion (likely
to achive), 2) we are in feature freeze for 1.2. this definitely
deserves a sane implementation in 1.3 though (but without a hook
return value, without seq_id hackery and with recursion checks).
Mon Jan 11 13:18:37 1999 Tim Janik <timj@gtk.org>
* gtk/gtkwindow.c:
(gtk_window_key_release_event):
(gtk_window_key_press_event): only pass key events to the focus widget
if it is sensitive.
* gtk/gtkmenuitem.c (gtk_menu_item_select_timeout): don't popup the
submenu if it isn't sensitive.
(gtk_menu_item_paint): state_type doesn't need to be reset to
GTK_STATE_INSENSITIVE if the widget is insensitive anyways.
* gtk/gtkcontainer.c (gtk_container_real_focus):
* gtk/gtklist.c (gtk_list_focus):
* gtk/gtkmenushell.c (gtk_menu_shell_move_selected):
* gtk/gtknotebook.c (gtk_notebook_focus):
s/GTK_WIDGET_SENSITIVE/GTK_WIDGET_IS_SENSITIVE/ since a widgets
sensitivity is determined through the parent as well,
GTK_WIDGET_SENSITIVE is only of interest inside gtkwidget.c, everywhere
else GTK_WIDGET_IS_SENSITIVE (widget) needs to be used to check for
sensitivity.
* gtk/gtkaccelgroup.c (gtk_accel_group_activate): don't activate
object if it is an insensitive widget.
Sun Jan 10 14:45:37 1999 Owen Taylor <otaylor@gtk.org>
* gtk/gtktext.c (text_properties_equal): Fixed
cut and paste bug when comparing text property
bg colors.
[ Matt Aubury <Matt.Aubury@comlab.ox.ac.uk> ]
1999-01-10 Tim Janik <timj@gtk.org>
* gtk/gtksignal.c (gtk_signal_lookup): if the lookup failed, try
to initialize the object class and reattempt the lookup, reported
by Paolo Molaro <lupus@lettere.unipd.it>.
Sat Jan 9 17:36:20 1999 Owen Taylor <otaylor@redhat.com>
* configure.in (ALL_LINGUAS): Added cs to ALL_LINGUAS.
Sat Jan 9 17:27:49 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (gtk_file_selection_populate):
Mark another string for internationalization.
[ Stanislav Brabec <utx@k332.feld.cvut.cz> ]
Sat Jan 9 14:02:08 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.c (gtk_tooltips_force_window): Set
name "gtk-tooltips" on tip window so that a style
can be set for tooltips.
Fri Jan 8 19:00:17 1999 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c (gdk_window_cache_filter): Fixed
some list-manipulation breakage.
* gdk/gdkdnd.c (gdk_window_cache_destroy): Free
window cache structure.
* gtk/gtkdnd.c (gtk_drag_set_icon_pixmap): Set an
event mask on the drag window so clicking on it
doesn't pop up root menus, etc.
* gtk/gtkdnd.c (gtk_drag_button_release_cb): Remove
signal handlers at button release.
Fri Jan 8 00:42:00 1999 Lars Hamann <lars@gtk.org>
* gtk/gtkspinbutton.c (gtk_spin_button_get_value_as_int)
(gtk_spin_button_get_value_as_float): call gtk_spin_button_update
before returning a value
* gtk/gtkclist.c (gtk_clist_motion): don't allow 'drag selections'
if clist is a drag source.
(gtk_clist_drag_begin): remove pointer grabs, end ongoing selections.
* gtk/gtkctree.c (remove_grab): copy of clist function.
(gtk_ctree_drag_begin): let clists drag_begin method set the
source info struct.
Thu Jan 7 19:10:21 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkviewport.c (gtk_viewport_style_set): Fixes
to drawing the background of the bin window
so that clearing and redrawing of child
widgets work properly.
* gtk/gtkwidget.c (gtk_widget_idle_draw): Juggle around
data so that if somebody triggers more redraw queuing
from a expose_event handler, it doesn't confuse the
heck out of GTK+. (But is highly liable to cause
an infinite loop...)
Tue Jan 05 21:18:00 1999 George Lebl <jirka@5z.com>
* gtk/gtkmenu.c,gtk/gtkmenuitem.c,gtk/gtkeditable.c: free the
event that was returned to us by gtk_get_current_event
Tue Jan 5 19:01:18 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcolorsel.c (gtk_color_selection_dialog_init): Push
GdkRGB's visual and colormap around the color selection
dialog so that the window and the previews have the
same colormap. If an app adds things to the colorsel
dialog, it will have to take care of them itself.
Sat Jan 2 03:54:30 1999 Tim Janik <timj@gtk.org>
* gdk/gdk.h (GDK_PRIORITY_EVENTS): make this G_PRIORITY_DEFAULT.
* gdk/gdkevents.c (gdk_events_init): add the source and the poll fd with
a priority of GDK_PRIORITY_EVENTS.
* gdk/gdk.c
* gdk/gdkinputnone.h
* gtk/gtkruler.c: casts to get rid of const warnings
* gtk/Makefile.am: fix gtktypebuiltins.h dependencies, and do a
cmp so people don't whine about rebuilds
* gtk/gtknotebook.c: use g_snprintf on translated strings, so we
don't get buffer overflows
* gtk/gtkrc.c: use g_strdup_printf instead of g_malloc/sprintf
Plug some memleaks.
-Yosh
* configure.in, config.h.in:
Check for features.h.
* gdk/gdkevents.c (gdk_event_put, gdk_events_queue):
Fixed bug in linked list append logic by replacing hand-coded
logic with a call to g_list_append. Bug found by tml.
* gdk/gdkimage.c:
'gcc -ansi -pedantic' on GNU/Linux spews warnings and errors
in sys/ipc.h, including one specific admonishment to use
_SVID_SOURCE or _XOPEN_SOURCE. Manually defined the latter, and
included features.h if present to obtain the necessary
side-effects.
* gtk/gtkclist.c, gtk/gtkeditable.c:
Eliminates comma-after-final-element warnings.
* gtk/gtkfontsel.c (gtk_font_selection_init):
Fixed bug where an intl string was declared as _("x") in
local var initializer.
1998-12-30 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gtk/gtkmain.c (gtk_main_do_event): Fix memory leak.
gdk_event_put would make a copy of next_event, and next_event was
not being freed.
Wed Dec 30 18:39:21 CST 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GTK+ 1.1.11
* INSTALL:
NEWS:
README:
configure.in:
gtk+.spec:
docs/gtk-config.1:
gtk/gtkfeatures.h.in: version=1.1.11
Also fixed docs/Makefile.am so make distcheck works well now,
even on an SMP machine.
Do these .po files really have to be remade during a make dist?
Wed Dec 23 20:31:40 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c: Fix problem where empty labels were
getting a requisition height of zero, and trailing
newlines were being ignored.
Wed Dec 23 13:58:14 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_parse_uline):
label->label should be the mb text _after_ removing
the underlines, not before.
* gtk/gtkmenu.c: Reverted Elliot's tearoff-menu-item
title hack. If it deserves being done, it deserves
being done right.
*/Makefile.am: Now passes 'make distcheck'. Now loops. I'm not sure what
is up.
1998-12-23 Elliot Lee <sopwith@redhat.com>
* gtk/gtkmenu.c: Allow programmer to gtk_object_set_data(obj,
"GtkTearoffMenuItem_window_title", ..) on a GtkMenuItem and have
it be recognized. If we're getting the title out of the GtkLabel,
then remove all underscores.
Tue Dec 22 17:01:43 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_dest_handle_event):
Request XmTRANFER_FAILURE on Motif drops not within
a drop zone. I don't know why this is necessary,
but it is.
* gdk/gdkdnd.c (gdk_drop_reply): Fixed error where
Motif flag field in response was getting wrong
values.
Tue Dec 22 15:55:39 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtkoptionmenu.c (gtk_option_menu_button_press):
Return TRUE for button press events we handle.
(Allows option menus in radio buttons to work...)
Tue Dec 22 14:50:25 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (gtk_drag_find_widget): Optimization -
when we've already found a widget, skip all checks
for subsequent children.
* gtk/gtkdnd.c (gtk_drag_find_widget): Checked for
!MAPPED, not !VISIBLE, since a widget (like a notebook
page), can be VISIBLE, but !REALIZED or !MAPPED.
* gtk/gtkdnd.c (gtk_drag_find_widget): Use forall(),
not foreach().
Sun Dec 20 04:48:59 1998 Tim Janik <timj@gtk.org>
* gdk/gdk.h (GDK_PRIORITY_EVENTS): export the priority at which
events are processed.
* gtk/gtk[main|signal|container].[ch]: removed deprecated _interp
variants: gtk_container_foreach_interp, gtk_idle_add_interp,
gtk_timeout_add_interp, gtk_signal_connect_interp.
Sat Dec 19 22:49:40 1998 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.c (gtk_type_query): eek, fixed an embarrasing bug
that caused this function to always return NULL (noticed by marius
vollmer).
Sat Dec 19 17:28:30 1998 Owen Taylor <otaylor@redhat.com>
* configure.in: Don't add the gthread libs to
GLIB_LIBS either, or -lgthread -lpthread will get
pulled into all applications because of shlib deps.
* gtk/gtkmain.h gtk/gtkwidget.c gtk/gtk gdk/gdk:
Use GLIB's priority #define. Revise scale of
priorities.