Sun Jan 24 12:17:39 1999 Owen Taylor <otaylor@redhat.com>
* gdk/gdkcolor.c (gdk_colormap_real_destroy): Fix
reversed assertion.
(Pointed out by Austin Donnelly <austin@greenend.org.uk>)
* gtk/gtkruler.c (gtk_ruler_expose): Remove unecessary
and harmful call to gtk_paint_box(). We are going
to paint onto the backing store later anyways.
Sat Jan 23 11:15:39 1999 Owen Taylor <otaylor@gtk.org>
* gdk/gdkdnd.c (gdk_window_register_dnd): X expects
longs, not uint32 for XChangeProperty, when
format == 32.
* gdk/gdkdnd.c (motif_read_initiator_info): Byte-swap
the MotifInitiatorInfo structure if necessary.
* gdk/gdkdnd.c: When extracting and constructing
Motif DND messages, don't use data.s[], data.l[]
since on 64bit architectures, these won't necessarily
be in the same place with data.b[].
* gtk/testdnd.c (target_drag_drop): Return TRUE for
drag_drop within the drop zone.
* gtk/gtkdnd.c (gtk_drag_dest_handle_event): Only send
a XmTRANSFER_FAILURE if no drop site is found, not
on every drop!
Fri Jan 22 19:22:39 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkeditable.c: Add flags field to
GtkTargetEntry table.
* gdk/gdkwindow.c (gdk_window_is_viewable): Treat foreign
windows as always viewable, since we can't track their
map-state reliably without speed problems. (Fixes
problem where updating didn't occur properly within
GtkPlug)
Thu Jan 21 02:11:44 1999 Owen Taylor <otaylor@redhat.com>
* Set and read the XdndActionList property defined
in the Xdnd spec. We do this always, not just for
XdndActionAsk like the spec says, but if we don't
find it, we fall back to actions = suggested_action,
which is compatible with the language of the spec.
* gdk/gdkdnd.c (gdk_drag_context_unref):
Move not-null assertion before pointer de-ref.
* gdk/gdkevents.c (gdk_event_queue_find_first):
Fix infinite loop bug. Someone should look at this further to
make sure the events_pending tests are correct.
Sun Jan 17 17:56:33 1999 Owen Taylor <otaylor@redhat.com>
Patch from Felix Bellaby <felix@pooh.u-net.com>
* gdk/gdk.c: Use XmbSetWMProperties to set
the class/command on the loader window so that the
client machine is also set in the same place.
(For X11R5 sesssion management compatibility)
* gdk/gdk.c: (gdk_set_sm_client_id) Implementation
of function to set the session manager client ID.
* gdk/gdkwindow.c (gdk_window_new): Set
WM_CLIENT_LEADER propertiy on all windows pointing
back to GDK's leader window.
Fri Jan 15 19:16:42 1999 Tim Janik <timj@gtk.org>
* gtk/Makefile.am: define GTK_DISABLE_COMPAT_H for compilation of gtk
code.
* gtk/gtkrc.c (gtk_rc_style_unref): added an assertment.
* gtk/gtkcompat.h:
* gtk/gtklabel.h:
don't provide compatibility defines if GTK_DISABLE_COMPAT_H is defined.
* gtk/gtkstyle.h:
* gtk/gtkstyle.c: coding style, indentation and alignment fixups.
(gtk_draw_string):
(gtk_paint_string):
(gtk_draw_polygon):
(gtk_style_set_background): fixed assertments.
(gtk_default_draw_ramp):
(gtk_default_draw_cross):
(gtk_default_draw_oval): issue warnings since these functions aren't
yet implemented.
* gdk/gdkwindow.c:
(gdk_window_hide): only unmap window if already mapped.
(gdk_window_show): only map window if !mapped.
(gdk_window_internal_destroy): destroyed windows can't be mapped.
* gtk/gtkwidget.c (gtk_widget_event): don't ignore expose events just
because a resize is queued on a widget, we rely on the expose events
now.
Fri Jan 15 10:22:21 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_class_init):
nparams for selection_get should be 3, not 2.
[ From Damon Chaplin <damon@karuna.freeserve.co.uk> ]
* gtk/gtkeventbox.c (gtk_event_box_paint): Add a paint
routine so queued redraws work inside event boxes.
Thu Jan 14 17:47:37 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkentry.c (gtk_entry_draw_cursor_on_drawable): Only
redraw character under cursor when not displaying
highlighted selection.
* gdk/gdkrgb.c (gdk_rgb_init): Add in a cast to
gpointer to make IRIX cc happy.
Thu Jan 14 12:29:50 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcheckbutton.c (gtk_check_button_draw): Restructure
the drawing code to remove a bit of duplication -
and to remove a call to gtk_widget_draw_focus()
that queues a redraw when an expose occurs.
* gtk/gtklabel.c (gtk_label_expose): Fix up handling
of ypadding.
* gtk/gtknotebook.c (gtk_notebook_draw): If we redraw
the whole widget, also redraw the corresponding
areas of the child widget. (have_visible_child
still has some problems)
* gdk/gdkpixmap.c: Change some g_new's to g_new0 so
that fields unused for pixmaps get initialzized
sanely.
* gdk/gdk.h gdk/gdkwindow.c gdk/gdkprivate.h: Add new calls
gdk_window_is_visible() and gdk_window_is_viewable()
and a mapped flag to the window private structure.
* gtk/gtkbin.c gtk/gtkclist.c gtk/gtkfixed.c gtk/gtkitem.c
gtk/gtklayout.c gtk/gtklist.c gtk/gtkmenushell.c
gtk/gtknotebook.c gtk/gtkpaned.c gtk/gtktree.c
gtk/gtktreeitem.c gtk/gtkviewport.c:
Map windows after mapping children.
* gtk/gtkwidget.c (gtk_widget_clip_rect): Handle
rectangles completely clipped away correctly.
* gtk/gtkwidget.c (gtk_widget_idle_draw): Don't
call gtk_widget_draw if width or height is 0.
* gtk/gtkwidget.c (gtk_widget_idle_draw): Don't
rely on GTK_REDRAW_PENDING after we've cleared
it. (This was causing draw-combining to not
happen at all).
* gtk/gtkbin.c gtk/gtkscale.c: Remove uneccessary calls
to gtk_widget_queue_draw() when mapping.
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.
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.
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.
Tue Jan 5 15:03:47 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmain.c (gtk_propagate_event): Make
gtk_propagate_event() non-static, we need it in gtkdnd.c
so that the button-release we synthesize gets propagated
correctly.
* gtk/gtkdnd.c: Use gtk_propagate_event() so
release gets to a GtkList. But we can't really
get this right without access to the windows
event masks and doing X-style propagation ourselves.
Tue Jan 5 11:31:55 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkselection.c (gtk_target_list_unref): Free
memory allocated for target lists.
* gtk/gtkdnd.c (gtk_drag_drop_finished): Release
selections before destroying info structure.
* gdk/gdkdnd.c gdktypes.h (gdk_drag_get_protocol): Add
new value GDK_DRAG_PROTO_NONE, use it for non-drag
targets, to quiet Purify.
* gdk/gdkdnd.c (gdk_window_register_dnd): Set size
of property properly.
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.
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.
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 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.
Sat Dec 19 05:37:51 1998 Tim Janik <timj@gtk.org>
* gtk/gtklabel.c (gtk_label_expose): removed return_if_fail
(label->words != NULL) since that's a valid case when the label
is empty, or just default constructed.
fixed indentation prototype arguments and braces in some places.
also, pointer comparisions and initializations are done with NULL
not 0, there's a reason GLib defines NULL.
* gdk/gdkevents.c (gdk_events_pending): return (queued_events ||
putback_events) so this again returns whether events are pending,
not whether other sources like idles are pending.
* gtk/gtkmain.c (gtk_main_iteration_do):
(gtk_main_iteration): return whether the loop is done, not whether
something got dispatch to restore the original behaviour (yosh: this
fixes code like in GleSelector).
Fri Dec 18 01:32:59 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_main): added gdk_flush() after g_main_run(), so we
get the original behaviour back, i.e. the event queue needs to be flushed
after a main loop has been quitted.
(gtk_main): add/remove the current main loop to/from the main loop
before/after init/quit functions have been exected to preserve the
original gtk_main_quit() behaviour.
Thu Dec 17 23:48:29 1998 Tim Janik <timj@gtk.org>
* gdk/gdkevents.c (gdk_events_init): changed argument order in call
to g_main_add_poll() to match recent glib changes.
Thu Dec 17 11:00:48 1998 Owen Taylor <otaylor@redhat.com>
* gdk/gdkim.c (gdk_set_locale): Use setlocale (LC_ALL, NULL),
not (LC_ALL, "") to query current locale.
(Pointed out by Ullrich Hafner <hafner@informatik.uni-wuerzburg.de>)
1998-12-17 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gdk/gdkim.c: Define gdk_use_mb outside USE_XIM guard. Removed
unnecessary USE_XIM guard inside another. Made gdk_use_mb
static. Compile gdk_set_locale also if not USE_XIM.
Wed Dec 16 13:06:17 1998 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.[ch] gtk/gtkmain.[ch] gtk/gtkprivate.h: Move main
thread lock back to GDK - we need it there for locking
when translating events. Rename things appropriately.
Wed Dec 16 11:44:21 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrange.c (gtk_range_expose): Fix a x/y typo.
CVS:
1998-12-15 Elliot Lee <sopwith@bogus.cuc.ml.org>
* gdk/gdkevents.c: Use G_IO_ERR|G_IO_HUP|G_IO_NVAL
as the mask for checking for GDK_INPUT_EXCEPTION events.
Tue Dec 15 14:30:35 1998 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.h gdk/gdkfonts.c: Added gdk_text_extents_wc()
* Patch from Jonathan Blanford <jrb@redhat.com> to add line wrapping
to label. (Based on patch from Jeff Dairiki
<dairiki@mac-ceope.apl.washington.edu> gtk-dairiki-971208-0)
- Adds new function gtk_label_set_line_wrap()
- implement GTK_JUSTIFY_FILL.
- rename gtk_label_set to gtk_label_set_text() add
gtk_label_set() to gtkcompat.h.
* Use an internal wc representation in the label, so
that we handle underlining and line breaks correctly
for multi-byte strings.
Tue Dec 15 10:26:23 1998 Owen Taylor <otaylor@redhat.com>
* gdk/gdkevents.c: Keep separate putback_events and
queued_events queues so that we get both FIFO and
preemptive behavior for gdk_event_put().
Tue Dec 15 08:53:38 1998 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.c (gdk_get_display): Remove gdk_signal,
which crept back in in last commit.
gdk/gdkevents.c: File missed on last commit.
CVS
Tue Dec 15 01:38:53 1998 Owen Taylor <otaylor@redhat.com>
* gtk/Makefile.am: Commented out testthreads from
the build process, since we won't have any idea
how to create a thread.
* configure.in (LIBS): use glib-config ... gthread
so we always build a thread-compatible library.
* gtk/gtkaccellabel.c gtk/gtkclist.c gtk/gtkcolorsel.c
gtk/gtkcombo.c gtk/gtkcontainer.c gtk/gtkentry.c
gtk/gtklist.c gtk/gtkmenuitem.c gtk/gtknotebook.c
gtk/gtkrange.c gtk/gtkselection.c gtk/gtkspinbutton.c
gtk/gtktext.c gtk/gtktooltips.c gtk/gtkwidget.c:
Add GTK_THREADS_ENTER/LEAVE pairs around timeouts
and idles to account for the fact that they are no
longer called within the GTK+ lock.
* gtk/gtkprivate.h: Added definitions for locking
the main GTK+ mutex.
* gtk/gtkmain.c: Re-implement the main loop
in terms of the GLib main loop.
* gdk/gdk.h gdk/gdkthreads.c gdk/Makefile.am: Removed threading
functionality, as it seems better to subsume GDK within the
GTK+ lock than vice-versa.
* gdk/gdkevents.c: New file, containing event handling bits
from gdk.c.
* gdk/gdkevents.c: Implement event source for GDK
events.
* configure.in gdk/gdkevents.c: Removed attempts to
subtract base_id, which were already non-functional.
* acconfig.h
* configure.in: removed IPC_RMID_DEFERRED_RELEASE check
* gdk/gdk.c: remove signal handlers, since we do an IPC_RMID
after XShmAttach, and nobody complained
-Yosh
Sat Dec 12 17:18:32 1998 Owen Taylor <otaylor@redhat.com>
* gdk/gdkfont.c (gdk_text_extents): Corrections
to computation of extents of text from a font set.
(from Chi-Deok Hwang <cdhwang@sr.hei.co.kr>)
and Akira Higuchi <a-higuti@math.sci.hokudai.ac.jp>)
Wed Dec 9 13:06:31 1998 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gdk/gdkim.c (gdk_ic_new,gdk_ic_{set,get}_attr): Fixed argument
list and return type for non-XIM fallback.
* configure.in: Only build XIM-support if available.
Wed Dec 9 12:23:30 1998 Owen Taylor <otaylor@redhat.com>
* gtk/testselection.c (main): Add in missing 'flags'
field to target list.
* gdk/gdkproperty.c (gdk_atom_intern): Actually
add the atoms to the local cache.
* gdk/gdkprivate.h: put text after #endif in comment
* gdk/gdktypes.h: change whitespace in enum to shut up makeenums.pl
* gtk/testdnd.c: #include <string.h>
-Yosh
Mon Dec 7 10:27:09 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c: Destroy widgets _after_ propagating unrealize
signals through the widget heirarchy. This is unpleasant, as it
causes more X traffic, but is necessary, because we have to clean
up our Input Contexts before destroying the X windows.
(from matsu-981109-0.patch)
Mon Dec 7 10:18:18 1998 Owen Taylor <otaylor@redhat.com>
Applied gtk-a-higuti-981202-0 :
[ a-higuti@math.sci.hokudai.ac.jp (Akira Higuchi) ]
* gdk/gdk.h gdk/gdk.c
(gdk_mbstowcs): New function. Nearly equals to mbstowcs, but
implemented by a combination of Xlib functions, so
it works even with X_LOCALE.
(gdk_wcstombs): New function.
(g_mbtowc): Removed. No longer needed.
* gdk/gdk.h gdk/gdkfont.c gdk/gdkdraw.c:
Added _wc() variants to gdk_text_width(),
gdk_char_width(), gdk_draw_text(),
* gdk/gdki18n.h
(mblen, mbtowc, wctomb, mbstowcs, wcstombs,
wcslen, wcscpy, wcsncpy):
Removed. No longer needed.
(iswalnum): Removed.
(gdk_iswalnum): New macro.
(gdk_iswspace): New macro.
* gdk/gdktype.h
(GdkWChar): New typedef.
* gtk/gtkentry.h, gtk/gtkentry.c
There are many changes according to the change of the
internal representation of text, from multibyte string
to wide characters.
* gtk/gtkprivate.h, gtk/gtkmain.c
Removed the variable gtk_use_mb and related codes.
* gtk/gtkspinbutton.c
Some changes according to the change of type of entry->text.
* gtk/gtktext.h, gtk/gtktext.c
Changed the internal representation of text. We use GdkWchar
if a fontset is supplied. If not, we use guchar to save
memory.
Don't name function parameters after ObjC reserved words ("id" to
"sm_client_id" - the function doesn't appear to be implemented anywhere so
it's no great loss).