Commented out testthreads from the build process, since we won't have any
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.
This commit is contained in:
parent
58475f05a5
commit
a0c84d6818
40
ChangeLog
40
ChangeLog
@ -1,3 +1,41 @@
|
|||||||
|
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.
|
||||||
|
|
||||||
Mon Dec 14 23:05:20 PST 1998 Manish Singh <yosh@gimp.org>
|
Mon Dec 14 23:05:20 PST 1998 Manish Singh <yosh@gimp.org>
|
||||||
|
|
||||||
* acconfig.h
|
* acconfig.h
|
||||||
@ -871,6 +909,8 @@ Tue Nov 24 11:31:06 1998 Owen Taylor <otaylor@redhat.com>
|
|||||||
* testgtk.c: Modified layout test to test scrolling over
|
* testgtk.c: Modified layout test to test scrolling over
|
||||||
long distances.
|
long distances.
|
||||||
|
|
||||||
|
* gtk/gtkplug.c: Added a few blank lines.
|
||||||
|
|
||||||
Tue Nov 24 11:11:05 1998 Owen Taylor <otaylor@redhat.com>
|
Tue Nov 24 11:11:05 1998 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtklayout.[ch]: Fixed up copyright message.
|
* gtk/gtklayout.[ch]: Fixed up copyright message.
|
||||||
|
@ -1,3 +1,41 @@
|
|||||||
|
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.
|
||||||
|
|
||||||
Mon Dec 14 23:05:20 PST 1998 Manish Singh <yosh@gimp.org>
|
Mon Dec 14 23:05:20 PST 1998 Manish Singh <yosh@gimp.org>
|
||||||
|
|
||||||
* acconfig.h
|
* acconfig.h
|
||||||
@ -871,6 +909,8 @@ Tue Nov 24 11:31:06 1998 Owen Taylor <otaylor@redhat.com>
|
|||||||
* testgtk.c: Modified layout test to test scrolling over
|
* testgtk.c: Modified layout test to test scrolling over
|
||||||
long distances.
|
long distances.
|
||||||
|
|
||||||
|
* gtk/gtkplug.c: Added a few blank lines.
|
||||||
|
|
||||||
Tue Nov 24 11:11:05 1998 Owen Taylor <otaylor@redhat.com>
|
Tue Nov 24 11:11:05 1998 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtklayout.[ch]: Fixed up copyright message.
|
* gtk/gtklayout.[ch]: Fixed up copyright message.
|
||||||
|
@ -1,3 +1,41 @@
|
|||||||
|
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.
|
||||||
|
|
||||||
Mon Dec 14 23:05:20 PST 1998 Manish Singh <yosh@gimp.org>
|
Mon Dec 14 23:05:20 PST 1998 Manish Singh <yosh@gimp.org>
|
||||||
|
|
||||||
* acconfig.h
|
* acconfig.h
|
||||||
@ -871,6 +909,8 @@ Tue Nov 24 11:31:06 1998 Owen Taylor <otaylor@redhat.com>
|
|||||||
* testgtk.c: Modified layout test to test scrolling over
|
* testgtk.c: Modified layout test to test scrolling over
|
||||||
long distances.
|
long distances.
|
||||||
|
|
||||||
|
* gtk/gtkplug.c: Added a few blank lines.
|
||||||
|
|
||||||
Tue Nov 24 11:11:05 1998 Owen Taylor <otaylor@redhat.com>
|
Tue Nov 24 11:11:05 1998 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtklayout.[ch]: Fixed up copyright message.
|
* gtk/gtklayout.[ch]: Fixed up copyright message.
|
||||||
|
@ -1,3 +1,41 @@
|
|||||||
|
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.
|
||||||
|
|
||||||
Mon Dec 14 23:05:20 PST 1998 Manish Singh <yosh@gimp.org>
|
Mon Dec 14 23:05:20 PST 1998 Manish Singh <yosh@gimp.org>
|
||||||
|
|
||||||
* acconfig.h
|
* acconfig.h
|
||||||
@ -871,6 +909,8 @@ Tue Nov 24 11:31:06 1998 Owen Taylor <otaylor@redhat.com>
|
|||||||
* testgtk.c: Modified layout test to test scrolling over
|
* testgtk.c: Modified layout test to test scrolling over
|
||||||
long distances.
|
long distances.
|
||||||
|
|
||||||
|
* gtk/gtkplug.c: Added a few blank lines.
|
||||||
|
|
||||||
Tue Nov 24 11:11:05 1998 Owen Taylor <otaylor@redhat.com>
|
Tue Nov 24 11:11:05 1998 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtklayout.[ch]: Fixed up copyright message.
|
* gtk/gtklayout.[ch]: Fixed up copyright message.
|
||||||
|
@ -1,3 +1,41 @@
|
|||||||
|
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.
|
||||||
|
|
||||||
Mon Dec 14 23:05:20 PST 1998 Manish Singh <yosh@gimp.org>
|
Mon Dec 14 23:05:20 PST 1998 Manish Singh <yosh@gimp.org>
|
||||||
|
|
||||||
* acconfig.h
|
* acconfig.h
|
||||||
@ -871,6 +909,8 @@ Tue Nov 24 11:31:06 1998 Owen Taylor <otaylor@redhat.com>
|
|||||||
* testgtk.c: Modified layout test to test scrolling over
|
* testgtk.c: Modified layout test to test scrolling over
|
||||||
long distances.
|
long distances.
|
||||||
|
|
||||||
|
* gtk/gtkplug.c: Added a few blank lines.
|
||||||
|
|
||||||
Tue Nov 24 11:11:05 1998 Owen Taylor <otaylor@redhat.com>
|
Tue Nov 24 11:11:05 1998 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtklayout.[ch]: Fixed up copyright message.
|
* gtk/gtklayout.[ch]: Fixed up copyright message.
|
||||||
|
@ -1,3 +1,41 @@
|
|||||||
|
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.
|
||||||
|
|
||||||
Mon Dec 14 23:05:20 PST 1998 Manish Singh <yosh@gimp.org>
|
Mon Dec 14 23:05:20 PST 1998 Manish Singh <yosh@gimp.org>
|
||||||
|
|
||||||
* acconfig.h
|
* acconfig.h
|
||||||
@ -871,6 +909,8 @@ Tue Nov 24 11:31:06 1998 Owen Taylor <otaylor@redhat.com>
|
|||||||
* testgtk.c: Modified layout test to test scrolling over
|
* testgtk.c: Modified layout test to test scrolling over
|
||||||
long distances.
|
long distances.
|
||||||
|
|
||||||
|
* gtk/gtkplug.c: Added a few blank lines.
|
||||||
|
|
||||||
Tue Nov 24 11:11:05 1998 Owen Taylor <otaylor@redhat.com>
|
Tue Nov 24 11:11:05 1998 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtklayout.[ch]: Fixed up copyright message.
|
* gtk/gtklayout.[ch]: Fixed up copyright message.
|
||||||
|
@ -1,3 +1,41 @@
|
|||||||
|
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.
|
||||||
|
|
||||||
Mon Dec 14 23:05:20 PST 1998 Manish Singh <yosh@gimp.org>
|
Mon Dec 14 23:05:20 PST 1998 Manish Singh <yosh@gimp.org>
|
||||||
|
|
||||||
* acconfig.h
|
* acconfig.h
|
||||||
@ -871,6 +909,8 @@ Tue Nov 24 11:31:06 1998 Owen Taylor <otaylor@redhat.com>
|
|||||||
* testgtk.c: Modified layout test to test scrolling over
|
* testgtk.c: Modified layout test to test scrolling over
|
||||||
long distances.
|
long distances.
|
||||||
|
|
||||||
|
* gtk/gtkplug.c: Added a few blank lines.
|
||||||
|
|
||||||
Tue Nov 24 11:11:05 1998 Owen Taylor <otaylor@redhat.com>
|
Tue Nov 24 11:11:05 1998 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtklayout.[ch]: Fixed up copyright message.
|
* gtk/gtklayout.[ch]: Fixed up copyright message.
|
||||||
|
@ -66,11 +66,6 @@
|
|||||||
|
|
||||||
#undef NO_FD_SET
|
#undef NO_FD_SET
|
||||||
|
|
||||||
#undef RESOURCE_BASE
|
|
||||||
|
|
||||||
/* Define to enable POSIX threading awareness */
|
|
||||||
#undef USE_PTHREADS
|
|
||||||
|
|
||||||
#undef XINPUT_NONE
|
#undef XINPUT_NONE
|
||||||
#undef XINPUT_GXI
|
#undef XINPUT_GXI
|
||||||
#undef XINPUT_XFREE
|
#undef XINPUT_XFREE
|
||||||
|
37
configure.in
37
configure.in
@ -184,7 +184,7 @@ if test x$with_glib = x ; then
|
|||||||
AC_MSG_ERROR([
|
AC_MSG_ERROR([
|
||||||
*** GLIB 1.1.6 or better is required. The latest version of GLIB
|
*** GLIB 1.1.6 or better is required. The latest version of GLIB
|
||||||
*** is always available from ftp://ftp.gtk.org.]),
|
*** is always available from ftp://ftp.gtk.org.]),
|
||||||
gmodule)
|
gmodule gthread)
|
||||||
|
|
||||||
glib_cflags=$GLIB_CFLAGS
|
glib_cflags=$GLIB_CFLAGS
|
||||||
glib_libs=$GLIB_LIBS
|
glib_libs=$GLIB_LIBS
|
||||||
@ -305,20 +305,6 @@ else
|
|||||||
AC_DEFINE(XINPUT_NONE)
|
AC_DEFINE(XINPUT_NONE)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Threads
|
|
||||||
|
|
||||||
if test "x$with_threads" = "xposix" || test "x$with_threads" = "xyes"; then
|
|
||||||
AC_CHECK_LIB(pthread, pthread_attr_init,
|
|
||||||
[AC_DEFINE(USE_PTHREADS)
|
|
||||||
x_libs="$x_libs -lpthread"
|
|
||||||
GTK_THREAD_FLAGS="-D_REENTRANT"],
|
|
||||||
# AIX has libpthreads, cause they're special. Special friends (TM)
|
|
||||||
AC_CHECK_LIB(pthreads, pthread_attr_init,
|
|
||||||
[AC_DEFINE(USE_PTHREADS)
|
|
||||||
x_libs="$x_libs -lpthreads"
|
|
||||||
GTK_THREAD_FLAGS="-D_REENTRANT -D_THREAD_SAFE"]))
|
|
||||||
fi
|
|
||||||
|
|
||||||
CFLAGS="$saved_cflags"
|
CFLAGS="$saved_cflags"
|
||||||
LDFLAGS="$saved_ldflags"
|
LDFLAGS="$saved_ldflags"
|
||||||
|
|
||||||
@ -349,27 +335,6 @@ if test "x$enable_shm" = "xyes"; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check for private display resource base variable
|
|
||||||
AC_MSG_CHECKING(resource base field in XDisplay)
|
|
||||||
AC_CACHE_VAL(gtk_cv_display_resource_base,
|
|
||||||
[AC_TRY_RUN([
|
|
||||||
#define XLIB_ILLEGAL_ACCESS
|
|
||||||
#include <X11/Xlib.h>
|
|
||||||
|
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
|
||||||
Display *display;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
display->resource_base;
|
|
||||||
}],
|
|
||||||
gtk_cv_display_resource_base="resource_base",
|
|
||||||
gtk_cv_display_resource_base="private3")])
|
|
||||||
AC_MSG_RESULT($gtk_cv_display_resource_base)
|
|
||||||
AC_DEFINE_UNQUOTED(RESOURCE_BASE, gdk_display->$gtk_cv_display_resource_base)
|
|
||||||
|
|
||||||
# Check if X_LOCALE definition is necessary
|
# Check if X_LOCALE definition is necessary
|
||||||
|
|
||||||
AC_MSG_CHECKING(need -DX_LOCALE)
|
AC_MSG_CHECKING(need -DX_LOCALE)
|
||||||
|
@ -84,23 +84,76 @@ Incompatible Changes from GTK+-1.0 to GTK+-1.2:
|
|||||||
Window. The scrollbar policy is set on the scrolled window with
|
Window. The scrollbar policy is set on the scrolled window with
|
||||||
gtk_scrolled_window_set_policy() and not on the child widgets
|
gtk_scrolled_window_set_policy() and not on the child widgets
|
||||||
(e.g. GtkCList's gtk_clist_set_policy() was removed).
|
(e.g. GtkCList's gtk_clist_set_policy() was removed).
|
||||||
|
|
||||||
|
* The "main loop" of GTK+ has been moved to GLib. This should not
|
||||||
|
affect existing programs, since compatibility functions have
|
||||||
|
been provided. However, you may want to consider migrating
|
||||||
|
your code to use the GLib main loop directly.
|
||||||
|
|
||||||
* the GTK_BASIC flag got removed, and with it the corresponding
|
Minor known incompatibilities:
|
||||||
|
|
||||||
|
- gtk_idle_remove_by_data() and gtk_timeout_remove_by_data() now
|
||||||
|
work from a common pool of "input sources", so
|
||||||
|
gtk_idle_remove_by_data() will remove timeouts and
|
||||||
|
vice-versa.
|
||||||
|
|
||||||
|
* the GTK_BASIC flag was removed, and with it the corresponding
|
||||||
macro and function GTK_WIDGET_BASIC() and gtk_widget_basic().
|
macro and function GTK_WIDGET_BASIC() and gtk_widget_basic().
|
||||||
|
|
||||||
* all freeze/thaw methods in gtk work in an incremental way now.
|
* All freeze/thaw methods are now recursive - that is, if you
|
||||||
code portions like:
|
freeze a widget n times, you must also thaw it n times.
|
||||||
|
|
||||||
|
Therefore, if you have code like:
|
||||||
|
|
||||||
gboolean frozen;
|
gboolean frozen;
|
||||||
frozen = GTK_CLIST_FROZEN (clist);
|
frozen = GTK_CLIST_FROZEN (clist);
|
||||||
gtk_clist_freeze (clist);
|
gtk_clist_freeze (clist);
|
||||||
[...]
|
[...]
|
||||||
if (!frozen)
|
if (!frozen)
|
||||||
gtk_clist_thaw (clist);
|
gtk_clist_thaw (clist);
|
||||||
will not work anymore, they have to be modified to simply:
|
|
||||||
|
it will not work anymore. It must be, simply:
|
||||||
|
|
||||||
gtk_clist_freeze (clist);
|
gtk_clist_freeze (clist);
|
||||||
[...]
|
[...]
|
||||||
gtk_clist_thaw (clist);
|
gtk_clist_thaw (clist);
|
||||||
|
|
||||||
|
* The thread safety in GTK+ 1.2 is slightly different than
|
||||||
|
that which appeared in early versions in the 1.1
|
||||||
|
development track. The main difference is that it relies on
|
||||||
|
the thread primitives in GLib, and on the thread-safe
|
||||||
|
GLib main loop.
|
||||||
|
|
||||||
|
This means:
|
||||||
|
|
||||||
|
- You must call g_thread_init(), then gtk_thread_init()
|
||||||
|
in a threaded GTK+ program.
|
||||||
|
|
||||||
|
- Idles, timeouts, and input functions are executed outside
|
||||||
|
of the main GTK+ lock. So, if you need to call GTK+
|
||||||
|
inside of such a callback, you must surround the callback
|
||||||
|
with a gtk_thread_enter()/gtk_thread_leave() pair.
|
||||||
|
|
||||||
|
[ However, signals are still executed within the main
|
||||||
|
GTK+ lock ]
|
||||||
|
|
||||||
|
In particular, this means, if you are writing widgets
|
||||||
|
that might be used in threaded programs, you _must_
|
||||||
|
surround timeouts and idle functions in this matter.
|
||||||
|
|
||||||
|
- There is no longer a special --with-threads configure
|
||||||
|
option for GTK+. To use threads in a GTK+ program, you
|
||||||
|
must:
|
||||||
|
|
||||||
|
a) If you want to use the native thread implementation,
|
||||||
|
make sure GLib found this in configuration, otherwise,
|
||||||
|
call you must provide a thread implementation to
|
||||||
|
g_thread_init().
|
||||||
|
|
||||||
|
b) Link with the libraries returned by:
|
||||||
|
|
||||||
|
gtk-config --libs gthread
|
||||||
|
|
||||||
* All functions matching g_message* are deprecated
|
* All functions matching g_message* are deprecated
|
||||||
|
|
||||||
* Functions *_interp are deprecated, *_full variants are available
|
* Functions *_interp are deprecated, *_full variants are available
|
||||||
|
@ -21,6 +21,7 @@ libgdk_la_SOURCES = \
|
|||||||
gdkcursor.c \
|
gdkcursor.c \
|
||||||
gdkdnd.c \
|
gdkdnd.c \
|
||||||
gdkdraw.c \
|
gdkdraw.c \
|
||||||
|
gdkevents.c \
|
||||||
gdkfont.c \
|
gdkfont.c \
|
||||||
gdkgc.c \
|
gdkgc.c \
|
||||||
gdkglobals.c \
|
gdkglobals.c \
|
||||||
@ -38,7 +39,6 @@ libgdk_la_SOURCES = \
|
|||||||
gdkrectangle.c \
|
gdkrectangle.c \
|
||||||
gdkregion.c \
|
gdkregion.c \
|
||||||
gdkselection.c \
|
gdkselection.c \
|
||||||
gdkthreads.c \
|
|
||||||
gdkvisual.c \
|
gdkvisual.c \
|
||||||
gdkwindow.c \
|
gdkwindow.c \
|
||||||
gdkxid.c \
|
gdkxid.c \
|
||||||
|
18
gdk/gdk.h
18
gdk/gdk.h
@ -37,12 +37,16 @@ gchar* gdk_set_locale (void);
|
|||||||
gint gdk_events_pending (void);
|
gint gdk_events_pending (void);
|
||||||
GdkEvent *gdk_event_get (void);
|
GdkEvent *gdk_event_get (void);
|
||||||
GdkEvent *gdk_event_get_graphics_expose (GdkWindow *window);
|
GdkEvent *gdk_event_get_graphics_expose (GdkWindow *window);
|
||||||
void gdk_event_put (GdkEvent *event);
|
void gdk_event_put (GdkEvent *event);
|
||||||
|
|
||||||
GdkEvent *gdk_event_copy (GdkEvent *event);
|
GdkEvent *gdk_event_copy (GdkEvent *event);
|
||||||
void gdk_event_free (GdkEvent *event);
|
void gdk_event_free (GdkEvent *event);
|
||||||
guint32 gdk_event_get_time (GdkEvent *event);
|
guint32 gdk_event_get_time (GdkEvent *event);
|
||||||
|
|
||||||
|
void gdk_event_handler_set (GdkEventFunc func,
|
||||||
|
gpointer data,
|
||||||
|
GDestroyNotify notify);
|
||||||
|
|
||||||
void gdk_set_show_events (gint show_events);
|
void gdk_set_show_events (gint show_events);
|
||||||
void gdk_set_use_xshm (gint use_xshm);
|
void gdk_set_use_xshm (gint use_xshm);
|
||||||
|
|
||||||
@ -933,18 +937,6 @@ GdkRegion* gdk_regions_subtract (GdkRegion *source1,
|
|||||||
GdkRegion* gdk_regions_xor (GdkRegion *source1,
|
GdkRegion* gdk_regions_xor (GdkRegion *source1,
|
||||||
GdkRegion *source2);
|
GdkRegion *source2);
|
||||||
|
|
||||||
/* Threads
|
|
||||||
*/
|
|
||||||
|
|
||||||
gboolean gdk_threads_init (void);
|
|
||||||
void gdk_threads_enter (void);
|
|
||||||
void gdk_threads_leave (void);
|
|
||||||
|
|
||||||
/* If the mainloop thread is in its select, wake it up.
|
|
||||||
* For GTK's idle handling
|
|
||||||
*/
|
|
||||||
void gdk_threads_wake (void);
|
|
||||||
|
|
||||||
/* Miscellaneous */
|
/* Miscellaneous */
|
||||||
void gdk_event_send_clientmessage_toall (GdkEvent *event);
|
void gdk_event_send_clientmessage_toall (GdkEvent *event);
|
||||||
gboolean gdk_event_send_client_message (GdkEvent *event,
|
gboolean gdk_event_send_client_message (GdkEvent *event,
|
||||||
|
@ -54,6 +54,14 @@ gint gdk_error_warnings = TRUE;
|
|||||||
gint gdk_null_window_warnings = TRUE;
|
gint gdk_null_window_warnings = TRUE;
|
||||||
GList *gdk_default_filters = NULL;
|
GList *gdk_default_filters = NULL;
|
||||||
|
|
||||||
|
gboolean gdk_xim_using; /* using XIM Protocol if TRUE */
|
||||||
|
GdkICPrivate *gdk_xim_ic; /* currently using IC */
|
||||||
|
GdkWindow *gdk_xim_window; /* currently using Widow */
|
||||||
|
|
||||||
|
GdkWindowPrivate *gdk_xgrab_window = NULL; /* Window that currently holds the
|
||||||
|
* x pointer grab
|
||||||
|
*/
|
||||||
|
|
||||||
gboolean gdk_using_threads = FALSE;
|
gboolean gdk_using_threads = FALSE;
|
||||||
|
|
||||||
/* Used to signal the mainloop thread from its select() */
|
/* Used to signal the mainloop thread from its select() */
|
||||||
|
@ -1235,8 +1235,6 @@ gdk_ic_get_events (GdkIC *ic)
|
|||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
/* From gdkwindow.c */
|
/* From gdkwindow.c */
|
||||||
extern int nevent_masks;
|
|
||||||
extern int event_mask_table[];
|
|
||||||
|
|
||||||
g_return_val_if_fail (ic != NULL, 0);
|
g_return_val_if_fail (ic != NULL, 0);
|
||||||
|
|
||||||
@ -1252,11 +1250,11 @@ gdk_ic_get_events (GdkIC *ic)
|
|||||||
}
|
}
|
||||||
|
|
||||||
mask = 0;
|
mask = 0;
|
||||||
for (i=0, bit=2; i < nevent_masks; i++, bit <<= 1)
|
for (i=0, bit=2; i < gdk_nevent_masks; i++, bit <<= 1)
|
||||||
if (xmask & event_mask_table [i])
|
if (xmask & gdk_event_mask_table [i])
|
||||||
{
|
{
|
||||||
mask |= bit;
|
mask |= bit;
|
||||||
xmask &= ~ event_mask_table [i];
|
xmask &= ~ gdk_event_mask_table [i];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (xmask)
|
if (xmask)
|
||||||
|
@ -218,6 +218,7 @@ typedef enum {
|
|||||||
GDK_DEBUG_XIM = 1 << 4
|
GDK_DEBUG_XIM = 1 << 4
|
||||||
} GdkDebugFlag;
|
} GdkDebugFlag;
|
||||||
|
|
||||||
|
void gdk_events_init (void);
|
||||||
void gdk_window_init (void);
|
void gdk_window_init (void);
|
||||||
void gdk_visual_init (void);
|
void gdk_visual_init (void);
|
||||||
void gdk_dnd_init (void);
|
void gdk_dnd_init (void);
|
||||||
@ -276,6 +277,12 @@ extern gint gdk_error_warnings;
|
|||||||
extern gint gdk_null_window_warnings;
|
extern gint gdk_null_window_warnings;
|
||||||
extern GList *gdk_default_filters;
|
extern GList *gdk_default_filters;
|
||||||
extern gboolean gdk_using_threads;
|
extern gboolean gdk_using_threads;
|
||||||
|
extern const int gdk_nevent_masks;
|
||||||
|
extern const int gdk_event_mask_table[];
|
||||||
|
|
||||||
|
extern GdkWindowPrivate *gdk_xgrab_window; /* Window that currently holds the
|
||||||
|
* x pointer grab
|
||||||
|
*/
|
||||||
|
|
||||||
/* Threading stuff */
|
/* Threading stuff */
|
||||||
#ifdef USE_PTHREADS
|
#ifdef USE_PTHREADS
|
||||||
|
@ -1,68 +0,0 @@
|
|||||||
/* GDK - The GIMP Drawing Kit
|
|
||||||
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU Library General Public
|
|
||||||
* License as published by the Free Software Foundation; either
|
|
||||||
* version 2 of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* Library General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Library General Public
|
|
||||||
* License along with this library; if not, write to the
|
|
||||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
* Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
#include "config.h"
|
|
||||||
#include "gdk.h"
|
|
||||||
#include "gdkprivate.h"
|
|
||||||
|
|
||||||
#ifdef USE_PTHREADS
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <pthread.h>
|
|
||||||
|
|
||||||
pthread_mutex_t gdk_threads_mutex = PTHREAD_MUTEX_INITIALIZER;
|
|
||||||
#endif /* USE_PTHREADS */
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
gdk_threads_init (void)
|
|
||||||
{
|
|
||||||
#ifdef USE_PTHREADS
|
|
||||||
pipe (gdk_threads_pipe);
|
|
||||||
gdk_using_threads = TRUE;
|
|
||||||
return TRUE;
|
|
||||||
#else
|
|
||||||
return FALSE;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
gdk_threads_enter (void)
|
|
||||||
{
|
|
||||||
#ifdef USE_PTHREADS
|
|
||||||
pthread_mutex_lock (&gdk_threads_mutex);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
gdk_threads_leave (void)
|
|
||||||
{
|
|
||||||
#ifdef USE_PTHREADS
|
|
||||||
pthread_mutex_unlock (&gdk_threads_mutex);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
gdk_threads_wake (void)
|
|
||||||
{
|
|
||||||
#ifdef USE_PTHREADS
|
|
||||||
if (gdk_select_waiting)
|
|
||||||
{
|
|
||||||
gdk_select_waiting = FALSE;
|
|
||||||
write (gdk_threads_pipe[1], "A", 1);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
@ -86,7 +86,7 @@ typedef struct _GdkDeviceKey GdkDeviceKey;
|
|||||||
typedef struct _GdkDeviceInfo GdkDeviceInfo;
|
typedef struct _GdkDeviceInfo GdkDeviceInfo;
|
||||||
typedef struct _GdkTimeCoord GdkTimeCoord;
|
typedef struct _GdkTimeCoord GdkTimeCoord;
|
||||||
typedef struct _GdkRegion GdkRegion;
|
typedef struct _GdkRegion GdkRegion;
|
||||||
typedef gint (*GdkEventFunc) (GdkEvent *event,
|
typedef void (*GdkEventFunc) (GdkEvent *event,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
|
|
||||||
typedef struct _GdkIC GdkIC;
|
typedef struct _GdkIC GdkIC;
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
#include <X11/extensions/shape.h>
|
#include <X11/extensions/shape.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const int event_mask_table[20] =
|
const int gdk_event_mask_table[20] =
|
||||||
{
|
{
|
||||||
ExposureMask,
|
ExposureMask,
|
||||||
PointerMotionMask,
|
PointerMotionMask,
|
||||||
@ -56,7 +56,7 @@ const int event_mask_table[20] =
|
|||||||
0, /* PROXIMTY_OUT */
|
0, /* PROXIMTY_OUT */
|
||||||
SubstructureNotifyMask
|
SubstructureNotifyMask
|
||||||
};
|
};
|
||||||
const int nevent_masks = sizeof(event_mask_table)/sizeof(int);
|
const int gdk_nevent_masks = sizeof(gdk_event_mask_table)/sizeof(int);
|
||||||
|
|
||||||
static gboolean gdk_window_have_shape_ext (void);
|
static gboolean gdk_window_have_shape_ext (void);
|
||||||
|
|
||||||
@ -299,10 +299,10 @@ gdk_window_new (GdkWindow *parent,
|
|||||||
xvisual = ((GdkVisualPrivate*) visual)->xvisual;
|
xvisual = ((GdkVisualPrivate*) visual)->xvisual;
|
||||||
|
|
||||||
xattributes.event_mask = StructureNotifyMask;
|
xattributes.event_mask = StructureNotifyMask;
|
||||||
for (i = 0; i < nevent_masks; i++)
|
for (i = 0; i < gdk_nevent_masks; i++)
|
||||||
{
|
{
|
||||||
if (attributes->event_mask & (1 << (i + 1)))
|
if (attributes->event_mask & (1 << (i + 1)))
|
||||||
xattributes.event_mask |= event_mask_table[i];
|
xattributes.event_mask |= gdk_event_mask_table[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (xattributes.event_mask)
|
if (xattributes.event_mask)
|
||||||
@ -1703,9 +1703,9 @@ gdk_window_get_events (GdkWindow *window)
|
|||||||
&attrs);
|
&attrs);
|
||||||
|
|
||||||
event_mask = 0;
|
event_mask = 0;
|
||||||
for (i = 0; i < nevent_masks; i++)
|
for (i = 0; i < gdk_nevent_masks; i++)
|
||||||
{
|
{
|
||||||
if (attrs.your_event_mask & event_mask_table[i])
|
if (attrs.your_event_mask & gdk_event_mask_table[i])
|
||||||
event_mask |= 1 << (i + 1);
|
event_mask |= 1 << (i + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1727,10 +1727,10 @@ gdk_window_set_events (GdkWindow *window,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
xevent_mask = StructureNotifyMask;
|
xevent_mask = StructureNotifyMask;
|
||||||
for (i = 0; i < nevent_masks; i++)
|
for (i = 0; i < gdk_nevent_masks; i++)
|
||||||
{
|
{
|
||||||
if (event_mask & (1 << (i + 1)))
|
if (event_mask & (1 << (i + 1)))
|
||||||
xevent_mask |= event_mask_table[i];
|
xevent_mask |= gdk_event_mask_table[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
XSelectInput (gdk_display, private->xwindow,
|
XSelectInput (gdk_display, private->xwindow,
|
||||||
|
@ -54,6 +54,14 @@ gint gdk_error_warnings = TRUE;
|
|||||||
gint gdk_null_window_warnings = TRUE;
|
gint gdk_null_window_warnings = TRUE;
|
||||||
GList *gdk_default_filters = NULL;
|
GList *gdk_default_filters = NULL;
|
||||||
|
|
||||||
|
gboolean gdk_xim_using; /* using XIM Protocol if TRUE */
|
||||||
|
GdkICPrivate *gdk_xim_ic; /* currently using IC */
|
||||||
|
GdkWindow *gdk_xim_window; /* currently using Widow */
|
||||||
|
|
||||||
|
GdkWindowPrivate *gdk_xgrab_window = NULL; /* Window that currently holds the
|
||||||
|
* x pointer grab
|
||||||
|
*/
|
||||||
|
|
||||||
gboolean gdk_using_threads = FALSE;
|
gboolean gdk_using_threads = FALSE;
|
||||||
|
|
||||||
/* Used to signal the mainloop thread from its select() */
|
/* Used to signal the mainloop thread from its select() */
|
||||||
|
@ -1235,8 +1235,6 @@ gdk_ic_get_events (GdkIC *ic)
|
|||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
/* From gdkwindow.c */
|
/* From gdkwindow.c */
|
||||||
extern int nevent_masks;
|
|
||||||
extern int event_mask_table[];
|
|
||||||
|
|
||||||
g_return_val_if_fail (ic != NULL, 0);
|
g_return_val_if_fail (ic != NULL, 0);
|
||||||
|
|
||||||
@ -1252,11 +1250,11 @@ gdk_ic_get_events (GdkIC *ic)
|
|||||||
}
|
}
|
||||||
|
|
||||||
mask = 0;
|
mask = 0;
|
||||||
for (i=0, bit=2; i < nevent_masks; i++, bit <<= 1)
|
for (i=0, bit=2; i < gdk_nevent_masks; i++, bit <<= 1)
|
||||||
if (xmask & event_mask_table [i])
|
if (xmask & gdk_event_mask_table [i])
|
||||||
{
|
{
|
||||||
mask |= bit;
|
mask |= bit;
|
||||||
xmask &= ~ event_mask_table [i];
|
xmask &= ~ gdk_event_mask_table [i];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (xmask)
|
if (xmask)
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -33,7 +33,7 @@
|
|||||||
#include <X11/extensions/shape.h>
|
#include <X11/extensions/shape.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const int event_mask_table[20] =
|
const int gdk_event_mask_table[20] =
|
||||||
{
|
{
|
||||||
ExposureMask,
|
ExposureMask,
|
||||||
PointerMotionMask,
|
PointerMotionMask,
|
||||||
@ -56,7 +56,7 @@ const int event_mask_table[20] =
|
|||||||
0, /* PROXIMTY_OUT */
|
0, /* PROXIMTY_OUT */
|
||||||
SubstructureNotifyMask
|
SubstructureNotifyMask
|
||||||
};
|
};
|
||||||
const int nevent_masks = sizeof(event_mask_table)/sizeof(int);
|
const int gdk_nevent_masks = sizeof(gdk_event_mask_table)/sizeof(int);
|
||||||
|
|
||||||
static gboolean gdk_window_have_shape_ext (void);
|
static gboolean gdk_window_have_shape_ext (void);
|
||||||
|
|
||||||
@ -299,10 +299,10 @@ gdk_window_new (GdkWindow *parent,
|
|||||||
xvisual = ((GdkVisualPrivate*) visual)->xvisual;
|
xvisual = ((GdkVisualPrivate*) visual)->xvisual;
|
||||||
|
|
||||||
xattributes.event_mask = StructureNotifyMask;
|
xattributes.event_mask = StructureNotifyMask;
|
||||||
for (i = 0; i < nevent_masks; i++)
|
for (i = 0; i < gdk_nevent_masks; i++)
|
||||||
{
|
{
|
||||||
if (attributes->event_mask & (1 << (i + 1)))
|
if (attributes->event_mask & (1 << (i + 1)))
|
||||||
xattributes.event_mask |= event_mask_table[i];
|
xattributes.event_mask |= gdk_event_mask_table[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (xattributes.event_mask)
|
if (xattributes.event_mask)
|
||||||
@ -1703,9 +1703,9 @@ gdk_window_get_events (GdkWindow *window)
|
|||||||
&attrs);
|
&attrs);
|
||||||
|
|
||||||
event_mask = 0;
|
event_mask = 0;
|
||||||
for (i = 0; i < nevent_masks; i++)
|
for (i = 0; i < gdk_nevent_masks; i++)
|
||||||
{
|
{
|
||||||
if (attrs.your_event_mask & event_mask_table[i])
|
if (attrs.your_event_mask & gdk_event_mask_table[i])
|
||||||
event_mask |= 1 << (i + 1);
|
event_mask |= 1 << (i + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1727,10 +1727,10 @@ gdk_window_set_events (GdkWindow *window,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
xevent_mask = StructureNotifyMask;
|
xevent_mask = StructureNotifyMask;
|
||||||
for (i = 0; i < nevent_masks; i++)
|
for (i = 0; i < gdk_nevent_masks; i++)
|
||||||
{
|
{
|
||||||
if (event_mask & (1 << (i + 1)))
|
if (event_mask & (1 << (i + 1)))
|
||||||
xevent_mask |= event_mask_table[i];
|
xevent_mask |= gdk_event_mask_table[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
XSelectInput (gdk_display, private->xwindow,
|
XSelectInput (gdk_display, private->xwindow,
|
||||||
|
@ -353,7 +353,8 @@ INCLUDES = \
|
|||||||
@GLIB_CFLAGS@ \
|
@GLIB_CFLAGS@ \
|
||||||
@x_cflags@
|
@x_cflags@
|
||||||
|
|
||||||
noinst_PROGRAMS = testgtk testinput testselection testthreads testrgb testdnd simple
|
noinst_PROGRAMS = testgtk testinput testselection testrgb testdnd simple
|
||||||
|
# testthreads
|
||||||
|
|
||||||
DEPS = \
|
DEPS = \
|
||||||
libgtk.la \
|
libgtk.la \
|
||||||
@ -369,7 +370,7 @@ LDADDS = \
|
|||||||
|
|
||||||
testgtk_DEPENDENCIES = $(DEPS)
|
testgtk_DEPENDENCIES = $(DEPS)
|
||||||
testinput_DEPENDENCIES = $(DEPS)
|
testinput_DEPENDENCIES = $(DEPS)
|
||||||
testthreads_DEPENDENCIES = $(DEPS)
|
#testthreads_DEPENDENCIES = $(DEPS)
|
||||||
testselection_DEPENDENCIES = $(DEPS)
|
testselection_DEPENDENCIES = $(DEPS)
|
||||||
testrgb_DEPENDENCIES = $(DEPS)
|
testrgb_DEPENDENCIES = $(DEPS)
|
||||||
testdnd_DEPENDENCIES = $(DEPS)
|
testdnd_DEPENDENCIES = $(DEPS)
|
||||||
@ -377,7 +378,7 @@ simple_DEPENDENCIES = $(DEPS)
|
|||||||
|
|
||||||
testgtk_LDADD = $(LDADDS)
|
testgtk_LDADD = $(LDADDS)
|
||||||
testinput_LDADD = $(LDADDS)
|
testinput_LDADD = $(LDADDS)
|
||||||
testthreads_LDADD = $(LDADDS)
|
#testthreads_LDADD = $(LDADDS)
|
||||||
testselection_LDADD = $(LDADDS)
|
testselection_LDADD = $(LDADDS)
|
||||||
testrgb_LDADD = $(LDADDS)
|
testrgb_LDADD = $(LDADDS)
|
||||||
testdnd_LDADD = $(LDADDS)
|
testdnd_LDADD = $(LDADDS)
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include "gtkmain.h"
|
#include "gtkmain.h"
|
||||||
#include "gtksignal.h"
|
#include "gtksignal.h"
|
||||||
#include "gtkaccellabel.h"
|
#include "gtkaccellabel.h"
|
||||||
|
#include "gtkprivate.h"
|
||||||
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@ -45,6 +46,7 @@ static void gtk_accel_label_size_request (GtkWidget *widget,
|
|||||||
GtkRequisition *requisition);
|
GtkRequisition *requisition);
|
||||||
static gint gtk_accel_label_expose_event (GtkWidget *widget,
|
static gint gtk_accel_label_expose_event (GtkWidget *widget,
|
||||||
GdkEventExpose *event);
|
GdkEventExpose *event);
|
||||||
|
static gboolean gtk_accel_label_refetch_idle (GtkAccelLabel *accel_label);
|
||||||
|
|
||||||
static GtkAccelLabelClass *accel_label_class = NULL;
|
static GtkAccelLabelClass *accel_label_class = NULL;
|
||||||
static GtkLabelClass *parent_class = NULL;
|
static GtkLabelClass *parent_class = NULL;
|
||||||
@ -304,7 +306,7 @@ gtk_accel_label_queue_refetch (GtkAccelLabel *accel_label)
|
|||||||
|
|
||||||
if (accel_label->queue_id == 0)
|
if (accel_label->queue_id == 0)
|
||||||
accel_label->queue_id = gtk_idle_add_priority (GTK_PRIORITY_HIGH - 2,
|
accel_label->queue_id = gtk_idle_add_priority (GTK_PRIORITY_HIGH - 2,
|
||||||
(GtkFunction) gtk_accel_label_refetch,
|
(GtkFunction) gtk_accel_label_refetch_idle,
|
||||||
accel_label);
|
accel_label);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -347,6 +349,18 @@ gtk_accel_label_set_accel_widget (GtkAccelLabel *accel_label,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
gtk_accel_label_refetch_idle (GtkAccelLabel *accel_label)
|
||||||
|
{
|
||||||
|
gboolean retval;
|
||||||
|
|
||||||
|
GTK_THREADS_ENTER;
|
||||||
|
retval = gtk_accel_label_refetch (accel_label);
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
gtk_accel_label_refetch (GtkAccelLabel *accel_label)
|
gtk_accel_label_refetch (GtkAccelLabel *accel_label)
|
||||||
{
|
{
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "gtkmain.h"
|
#include "gtkmain.h"
|
||||||
#include "gtkclist.h"
|
#include "gtkclist.h"
|
||||||
#include "gtkbindings.h"
|
#include "gtkbindings.h"
|
||||||
|
#include "gtkprivate.h"
|
||||||
#include <gdk/gdkkeysyms.h>
|
#include <gdk/gdkkeysyms.h>
|
||||||
|
|
||||||
/* the number rows memchunk expands at a time */
|
/* the number rows memchunk expands at a time */
|
||||||
@ -5041,7 +5042,7 @@ horizontal_timeout (GtkCList *clist)
|
|||||||
GdkEventMotion event;
|
GdkEventMotion event;
|
||||||
GdkModifierType mask;
|
GdkModifierType mask;
|
||||||
|
|
||||||
g_return_val_if_fail (GTK_IS_CLIST (clist), FALSE);
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
clist->htimer = 0;
|
clist->htimer = 0;
|
||||||
gdk_window_get_pointer (clist->clist_window, &x, &y, &mask);
|
gdk_window_get_pointer (clist->clist_window, &x, &y, &mask);
|
||||||
@ -5053,6 +5054,8 @@ horizontal_timeout (GtkCList *clist)
|
|||||||
|
|
||||||
gtk_clist_motion (GTK_WIDGET (clist), &event);
|
gtk_clist_motion (GTK_WIDGET (clist), &event);
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5063,7 +5066,7 @@ vertical_timeout (GtkCList *clist)
|
|||||||
GdkEventMotion event;
|
GdkEventMotion event;
|
||||||
GdkModifierType mask;
|
GdkModifierType mask;
|
||||||
|
|
||||||
g_return_val_if_fail (GTK_IS_CLIST (clist), FALSE);
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
clist->vtimer = 0;
|
clist->vtimer = 0;
|
||||||
gdk_window_get_pointer (clist->clist_window, &x, &y, &mask);
|
gdk_window_get_pointer (clist->clist_window, &x, &y, &mask);
|
||||||
@ -5075,6 +5078,8 @@ vertical_timeout (GtkCList *clist)
|
|||||||
|
|
||||||
gtk_clist_motion (GTK_WIDGET (clist), &event);
|
gtk_clist_motion (GTK_WIDGET (clist), &event);
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include "gtkdrawwindow.h"
|
#include "gtkdrawwindow.h"
|
||||||
#include "gtkhbbox.h"
|
#include "gtkhbbox.h"
|
||||||
#include "gtkdnd.h"
|
#include "gtkdnd.h"
|
||||||
|
#include "gtkprivate.h"
|
||||||
#include "gtkselection.h"
|
#include "gtkselection.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1025,11 +1026,15 @@ static gint
|
|||||||
gtk_color_selection_value_timeout (GtkColorSelection *colorsel)
|
gtk_color_selection_value_timeout (GtkColorSelection *colorsel)
|
||||||
{
|
{
|
||||||
gint x, y;
|
gint x, y;
|
||||||
|
|
||||||
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
gdk_window_get_pointer (colorsel->value_area->window, &x, &y, NULL);
|
gdk_window_get_pointer (colorsel->value_area->window, &x, &y, NULL);
|
||||||
gtk_color_selection_update_value (colorsel, y);
|
gtk_color_selection_update_value (colorsel, y);
|
||||||
gtk_color_selection_color_changed (colorsel);
|
gtk_color_selection_color_changed (colorsel);
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
return (TRUE);
|
return (TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#include "gtklistitem.h"
|
#include "gtklistitem.h"
|
||||||
#include "gtkscrolledwindow.h"
|
#include "gtkscrolledwindow.h"
|
||||||
#include "gtkmain.h"
|
#include "gtkmain.h"
|
||||||
|
#include "gtkprivate.h"
|
||||||
#include "gtksignal.h"
|
#include "gtksignal.h"
|
||||||
#include "gtkwindow.h"
|
#include "gtkwindow.h"
|
||||||
#include "gdk/gdkkeysyms.h"
|
#include "gdk/gdkkeysyms.h"
|
||||||
@ -235,7 +236,11 @@ static gint
|
|||||||
gtk_combo_focus_idle (GtkCombo * combo)
|
gtk_combo_focus_idle (GtkCombo * combo)
|
||||||
{
|
{
|
||||||
if (combo)
|
if (combo)
|
||||||
gtk_widget_grab_focus (combo->entry);
|
{
|
||||||
|
GTK_THREADS_ENTER;
|
||||||
|
gtk_widget_grab_focus (combo->entry);
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -811,11 +811,13 @@ gtk_container_get_resize_container (GtkContainer *container)
|
|||||||
static gboolean
|
static gboolean
|
||||||
gtk_container_idle_sizer (gpointer data)
|
gtk_container_idle_sizer (gpointer data)
|
||||||
{
|
{
|
||||||
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
/* we may be invoked with a container_resize_queue of NULL, because
|
/* we may be invoked with a container_resize_queue of NULL, because
|
||||||
* queue_resize could have been adding an extra idle function while
|
* queue_resize could have been adding an extra idle function while
|
||||||
* the queue still got processed. we better just ignore such case
|
* the queue still got processed. we better just ignore such case
|
||||||
* than trying to explicitely work around them with some extra flags,
|
* than trying to explicitely work around them with some extra flags,
|
||||||
* sine it doesn't cause any actual harm.
|
* since it doesn't cause any actual harm.
|
||||||
*/
|
*/
|
||||||
while (container_resize_queue)
|
while (container_resize_queue)
|
||||||
{
|
{
|
||||||
@ -830,6 +832,8 @@ gtk_container_idle_sizer (gpointer data)
|
|||||||
GTK_PRIVATE_UNSET_FLAG (widget, GTK_RESIZE_PENDING);
|
GTK_PRIVATE_UNSET_FLAG (widget, GTK_RESIZE_PENDING);
|
||||||
gtk_container_check_resize (GTK_CONTAINER (widget));
|
gtk_container_check_resize (GTK_CONTAINER (widget));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
12
gtk/gtkdnd.c
12
gtk/gtkdnd.c
@ -22,6 +22,7 @@
|
|||||||
#include "gtkdnd.h"
|
#include "gtkdnd.h"
|
||||||
#include "gtkinvisible.h"
|
#include "gtkinvisible.h"
|
||||||
#include "gtkmain.h"
|
#include "gtkmain.h"
|
||||||
|
#include "gtkprivate.h"
|
||||||
#include "gtksignal.h"
|
#include "gtksignal.h"
|
||||||
#include "gtkdrawwindow.h"
|
#include "gtkdrawwindow.h"
|
||||||
|
|
||||||
@ -2268,13 +2269,16 @@ gtk_drag_anim_timeout (gpointer data)
|
|||||||
{
|
{
|
||||||
GtkDragAnim *anim = data;
|
GtkDragAnim *anim = data;
|
||||||
gint x, y;
|
gint x, y;
|
||||||
|
gboolean retval;
|
||||||
|
|
||||||
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
if (anim->step == anim->n_steps)
|
if (anim->step == anim->n_steps)
|
||||||
{
|
{
|
||||||
gtk_drag_source_info_destroy (anim->info);
|
gtk_drag_source_info_destroy (anim->info);
|
||||||
g_free (anim);
|
g_free (anim);
|
||||||
|
|
||||||
return FALSE;
|
retval = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2287,8 +2291,12 @@ gtk_drag_anim_timeout (gpointer data)
|
|||||||
|
|
||||||
anim->step++;
|
anim->step++;
|
||||||
|
|
||||||
return TRUE;
|
retval = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include "gdk/gdki18n.h"
|
#include "gdk/gdki18n.h"
|
||||||
#include "gtkentry.h"
|
#include "gtkentry.h"
|
||||||
#include "gtkmain.h"
|
#include "gtkmain.h"
|
||||||
|
#include "gtkprivate.h"
|
||||||
#include "gtkselection.h"
|
#include "gtkselection.h"
|
||||||
#include "gtksignal.h"
|
#include "gtksignal.h"
|
||||||
#include "gtkstyle.h"
|
#include "gtkstyle.h"
|
||||||
@ -1480,12 +1481,14 @@ gtk_entry_timer (gpointer data)
|
|||||||
{
|
{
|
||||||
GtkEntry *entry;
|
GtkEntry *entry;
|
||||||
|
|
||||||
g_return_val_if_fail (data != NULL, FALSE);
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
entry = GTK_ENTRY (data);
|
entry = GTK_ENTRY (data);
|
||||||
entry->timer = 0;
|
entry->timer = 0;
|
||||||
gtk_entry_draw_text (entry);
|
gtk_entry_draw_text (entry);
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "gtklist.h"
|
#include "gtklist.h"
|
||||||
#include "gtklistitem.h"
|
#include "gtklistitem.h"
|
||||||
#include "gtkmain.h"
|
#include "gtkmain.h"
|
||||||
|
#include "gtkprivate.h"
|
||||||
#include "gtksignal.h"
|
#include "gtksignal.h"
|
||||||
#include "gtklabel.h"
|
#include "gtklabel.h"
|
||||||
|
|
||||||
@ -2308,7 +2309,7 @@ gtk_list_horizontal_timeout (GtkWidget *list)
|
|||||||
GdkEventMotion event;
|
GdkEventMotion event;
|
||||||
GdkModifierType mask;
|
GdkModifierType mask;
|
||||||
|
|
||||||
g_return_val_if_fail (GTK_IS_LIST (list), FALSE);
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
GTK_LIST (list)->htimer = 0;
|
GTK_LIST (list)->htimer = 0;
|
||||||
gdk_window_get_pointer (list->window, &x, &y, &mask);
|
gdk_window_get_pointer (list->window, &x, &y, &mask);
|
||||||
@ -2320,6 +2321,8 @@ gtk_list_horizontal_timeout (GtkWidget *list)
|
|||||||
|
|
||||||
gtk_list_motion_notify (list, &event);
|
gtk_list_motion_notify (list, &event);
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2331,7 +2334,7 @@ gtk_list_vertical_timeout (GtkWidget *list)
|
|||||||
GdkEventMotion event;
|
GdkEventMotion event;
|
||||||
GdkModifierType mask;
|
GdkModifierType mask;
|
||||||
|
|
||||||
g_return_val_if_fail (GTK_IS_LIST (list), FALSE);
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
GTK_LIST (list)->vtimer = 0;
|
GTK_LIST (list)->vtimer = 0;
|
||||||
gdk_window_get_pointer (list->window, &x, &y, &mask);
|
gdk_window_get_pointer (list->window, &x, &y, &mask);
|
||||||
@ -2343,6 +2346,8 @@ gtk_list_vertical_timeout (GtkWidget *list)
|
|||||||
|
|
||||||
gtk_list_motion_notify (list, &event);
|
gtk_list_motion_notify (list, &event);
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1218
gtk/gtkmain.c
1218
gtk/gtkmain.c
File diff suppressed because it is too large
Load Diff
@ -30,7 +30,7 @@ extern "C" {
|
|||||||
|
|
||||||
#define GTK_PRIORITY_HIGH -20
|
#define GTK_PRIORITY_HIGH -20
|
||||||
#define GTK_PRIORITY_INTERNAL -10
|
#define GTK_PRIORITY_INTERNAL -10
|
||||||
#define GTK_PRIORITY_DEFAULT 0
|
#define GTK_PRIORITY_DEFAULT -5
|
||||||
#define GTK_PRIORITY_LOW 10
|
#define GTK_PRIORITY_LOW 10
|
||||||
|
|
||||||
typedef void (*GtkModuleInitFunc) (gint *argc,
|
typedef void (*GtkModuleInitFunc) (gint *argc,
|
||||||
@ -58,6 +58,13 @@ void gtk_init (int *argc,
|
|||||||
void gtk_exit (gint error_code);
|
void gtk_exit (gint error_code);
|
||||||
gchar* gtk_set_locale (void);
|
gchar* gtk_set_locale (void);
|
||||||
gint gtk_events_pending (void);
|
gint gtk_events_pending (void);
|
||||||
|
|
||||||
|
/* The following is the event func GTK+ registers with GDK
|
||||||
|
* we expose it mainly to allow filtering of events between
|
||||||
|
* GDK and GTK+.
|
||||||
|
*/
|
||||||
|
void gtk_main_do_event (GdkEvent *event);
|
||||||
|
|
||||||
void gtk_main (void);
|
void gtk_main (void);
|
||||||
guint gtk_main_level (void);
|
guint gtk_main_level (void);
|
||||||
void gtk_main_quit (void);
|
void gtk_main_quit (void);
|
||||||
@ -122,8 +129,10 @@ guint gtk_key_snooper_install (GtkKeySnoopFunc snooper,
|
|||||||
void gtk_key_snooper_remove (guint snooper_handler_id);
|
void gtk_key_snooper_remove (guint snooper_handler_id);
|
||||||
|
|
||||||
GdkEvent* gtk_get_current_event (void);
|
GdkEvent* gtk_get_current_event (void);
|
||||||
GtkWidget* gtk_get_event_widget (GdkEvent *event);
|
GtkWidget* gtk_get_event_widget (GdkEvent *event);
|
||||||
|
|
||||||
|
void gtk_threads_enter (void);
|
||||||
|
void gtk_threads_leave (void);
|
||||||
|
|
||||||
/* deprecated */
|
/* deprecated */
|
||||||
guint gtk_idle_add_interp (GtkCallbackMarshal marshal,
|
guint gtk_idle_add_interp (GtkCallbackMarshal marshal,
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "gtkaccellabel.h"
|
#include "gtkaccellabel.h"
|
||||||
#include "gtkmain.h"
|
#include "gtkmain.h"
|
||||||
|
#include "gtkprivate.h"
|
||||||
#include "gtkmenu.h"
|
#include "gtkmenu.h"
|
||||||
#include "gtkmenubar.h"
|
#include "gtkmenubar.h"
|
||||||
#include "gtkmenuitem.h"
|
#include "gtkmenuitem.h"
|
||||||
@ -620,6 +621,8 @@ gtk_menu_item_select_timeout (gpointer data)
|
|||||||
{
|
{
|
||||||
GtkMenuItem *menu_item;
|
GtkMenuItem *menu_item;
|
||||||
|
|
||||||
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
menu_item = GTK_MENU_ITEM (data);
|
menu_item = GTK_MENU_ITEM (data);
|
||||||
menu_item->timer = 0;
|
menu_item->timer = 0;
|
||||||
|
|
||||||
@ -641,6 +644,8 @@ gtk_menu_item_select_timeout (gpointer data)
|
|||||||
gtk_menu_shell_select_item (submenu, submenu->children->data);
|
gtk_menu_shell_select_item (submenu, submenu->children->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "gtknotebook.h"
|
#include "gtknotebook.h"
|
||||||
#include "gtksignal.h"
|
#include "gtksignal.h"
|
||||||
#include "gtkmain.h"
|
#include "gtkmain.h"
|
||||||
|
#include "gtkprivate.h"
|
||||||
#include "gtkmenu.h"
|
#include "gtkmenu.h"
|
||||||
#include "gtkmenuitem.h"
|
#include "gtkmenuitem.h"
|
||||||
#include "gtklabel.h"
|
#include "gtklabel.h"
|
||||||
@ -1834,9 +1835,10 @@ gtk_notebook_focus_changed (GtkNotebook *notebook,
|
|||||||
static gint
|
static gint
|
||||||
gtk_notebook_timer (GtkNotebook *notebook)
|
gtk_notebook_timer (GtkNotebook *notebook)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (notebook != NULL, FALSE);
|
gboolean retval = FALSE;
|
||||||
g_return_val_if_fail (GTK_IS_NOTEBOOK (notebook), FALSE);
|
|
||||||
|
|
||||||
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
if (notebook->timer)
|
if (notebook->timer)
|
||||||
{
|
{
|
||||||
if (notebook->click_child == GTK_ARROW_LEFT)
|
if (notebook->click_child == GTK_ARROW_LEFT)
|
||||||
@ -1859,11 +1861,14 @@ gtk_notebook_timer (GtkNotebook *notebook)
|
|||||||
notebook->timer = gtk_timeout_add (NOTEBOOK_SCROLL_DELAY,
|
notebook->timer = gtk_timeout_add (NOTEBOOK_SCROLL_DELAY,
|
||||||
(GtkFunction) gtk_notebook_timer,
|
(GtkFunction) gtk_notebook_timer,
|
||||||
(gpointer) notebook);
|
(gpointer) notebook);
|
||||||
return FALSE;
|
|
||||||
}
|
}
|
||||||
return TRUE;
|
else
|
||||||
|
retval = TRUE;
|
||||||
}
|
}
|
||||||
return FALSE;
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
|
@ -60,6 +60,19 @@ typedef enum
|
|||||||
#define GTK_PRIVATE_SET_FLAG(wid,flag) G_STMT_START{ (GTK_PRIVATE_FLAGS (wid) |= (PRIVATE_ ## flag)); }G_STMT_END
|
#define GTK_PRIVATE_SET_FLAG(wid,flag) G_STMT_START{ (GTK_PRIVATE_FLAGS (wid) |= (PRIVATE_ ## flag)); }G_STMT_END
|
||||||
#define GTK_PRIVATE_UNSET_FLAG(wid,flag) G_STMT_START{ (GTK_PRIVATE_FLAGS (wid) &= ~(PRIVATE_ ## flag)); }G_STMT_END
|
#define GTK_PRIVATE_UNSET_FLAG(wid,flag) G_STMT_START{ (GTK_PRIVATE_FLAGS (wid) &= ~(PRIVATE_ ## flag)); }G_STMT_END
|
||||||
|
|
||||||
|
/* Threading functions */
|
||||||
|
|
||||||
|
extern GMutex *gtk_threads_mutex;
|
||||||
|
|
||||||
|
#define GTK_THREADS_ENTER G_STMT_START { \
|
||||||
|
if (gtk_threads_mutex) \
|
||||||
|
g_mutex_lock (gtk_threads_mutex); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define GTK_THREADS_LEAVE G_STMT_START { \
|
||||||
|
if (gtk_threads_mutex) \
|
||||||
|
g_mutex_unlock (gtk_threads_mutex); \
|
||||||
|
} G_STMT_END
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "gtkmain.h"
|
#include "gtkmain.h"
|
||||||
#include "gtkrange.h"
|
#include "gtkrange.h"
|
||||||
|
#include "gtkprivate.h"
|
||||||
#include "gtksignal.h"
|
#include "gtksignal.h"
|
||||||
|
|
||||||
|
|
||||||
@ -1236,8 +1237,7 @@ gtk_real_range_timer (GtkRange *range)
|
|||||||
{
|
{
|
||||||
gint return_val;
|
gint return_val;
|
||||||
|
|
||||||
g_return_val_if_fail (range != NULL, FALSE);
|
GTK_THREADS_ENTER;
|
||||||
g_return_val_if_fail (GTK_IS_RANGE (range), FALSE);
|
|
||||||
|
|
||||||
return_val = TRUE;
|
return_val = TRUE;
|
||||||
if (range->click_child == RANGE_CLASS (range)->slider)
|
if (range->click_child == RANGE_CLASS (range)->slider)
|
||||||
@ -1258,7 +1258,10 @@ gtk_real_range_timer (GtkRange *range)
|
|||||||
(GtkFunction) RANGE_CLASS (range)->timer,
|
(GtkFunction) RANGE_CLASS (range)->timer,
|
||||||
(gpointer) range);
|
(gpointer) range);
|
||||||
else
|
else
|
||||||
return FALSE;
|
{
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
range->need_timer = FALSE;
|
range->need_timer = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1284,6 +1287,8 @@ gtk_real_range_timer (GtkRange *range)
|
|||||||
return_val = gtk_range_scroll (range, -1);
|
return_val = gtk_range_scroll (range, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
return return_val;
|
return return_val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
#include <gdk/gdkx.h>
|
#include <gdk/gdkx.h>
|
||||||
/* we need this for gdk_window_lookup() */
|
/* we need this for gdk_window_lookup() */
|
||||||
#include "gtkmain.h"
|
#include "gtkmain.h"
|
||||||
|
#include "gtkprivate.h"
|
||||||
#include "gtkselection.h"
|
#include "gtkselection.h"
|
||||||
#include "gtksignal.h"
|
#include "gtksignal.h"
|
||||||
|
|
||||||
@ -1089,6 +1090,9 @@ static gint
|
|||||||
gtk_selection_incr_timeout (GtkIncrInfo *info)
|
gtk_selection_incr_timeout (GtkIncrInfo *info)
|
||||||
{
|
{
|
||||||
GList *tmp_list;
|
GList *tmp_list;
|
||||||
|
gboolean retval;
|
||||||
|
|
||||||
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
/* Determine if retrieval has finished by checking if it still in
|
/* Determine if retrieval has finished by checking if it still in
|
||||||
list of pending retrievals */
|
list of pending retrievals */
|
||||||
@ -1116,14 +1120,18 @@ gtk_selection_incr_timeout (GtkIncrInfo *info)
|
|||||||
|
|
||||||
g_free (info);
|
g_free (info);
|
||||||
|
|
||||||
return FALSE; /* remove timeout */
|
retval = FALSE; /* remove timeout */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
info->idle_time++;
|
info->idle_time++;
|
||||||
|
|
||||||
return TRUE; /* timeout will happen again */
|
retval = TRUE; /* timeout will happen again */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************
|
/*************************************************************
|
||||||
@ -1324,6 +1332,9 @@ static gint
|
|||||||
gtk_selection_retrieval_timeout (GtkRetrievalInfo *info)
|
gtk_selection_retrieval_timeout (GtkRetrievalInfo *info)
|
||||||
{
|
{
|
||||||
GList *tmp_list;
|
GList *tmp_list;
|
||||||
|
gboolean retval;
|
||||||
|
|
||||||
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
/* Determine if retrieval has finished by checking if it still in
|
/* Determine if retrieval has finished by checking if it still in
|
||||||
list of pending retrievals */
|
list of pending retrievals */
|
||||||
@ -1349,15 +1360,18 @@ gtk_selection_retrieval_timeout (GtkRetrievalInfo *info)
|
|||||||
g_free (info->buffer);
|
g_free (info->buffer);
|
||||||
g_free (info);
|
g_free (info);
|
||||||
|
|
||||||
return FALSE; /* remove timeout */
|
retval = FALSE; /* remove timeout */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
info->idle_time++;
|
info->idle_time++;
|
||||||
|
|
||||||
return TRUE; /* timeout will happen again */
|
retval = TRUE; /* timeout will happen again */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************
|
/*************************************************************
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#include "gdk/gdkkeysyms.h"
|
#include "gdk/gdkkeysyms.h"
|
||||||
#include "gtkspinbutton.h"
|
#include "gtkspinbutton.h"
|
||||||
#include "gtkmain.h"
|
#include "gtkmain.h"
|
||||||
|
#include "gtkprivate.h"
|
||||||
#include "gtksignal.h"
|
#include "gtksignal.h"
|
||||||
|
|
||||||
|
|
||||||
@ -907,8 +908,9 @@ gtk_spin_button_motion_notify (GtkWidget *widget,
|
|||||||
static gint
|
static gint
|
||||||
gtk_spin_button_timer (GtkSpinButton *spin_button)
|
gtk_spin_button_timer (GtkSpinButton *spin_button)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (spin_button != NULL, FALSE);
|
gboolean retval = FALSE;
|
||||||
g_return_val_if_fail (GTK_IS_SPIN_BUTTON (spin_button), FALSE);
|
|
||||||
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
if (spin_button->timer)
|
if (spin_button->timer)
|
||||||
{
|
{
|
||||||
@ -923,22 +925,27 @@ gtk_spin_button_timer (GtkSpinButton *spin_button)
|
|||||||
spin_button->timer = gtk_timeout_add
|
spin_button->timer = gtk_timeout_add
|
||||||
(SPIN_BUTTON_TIMER_DELAY, (GtkFunction) gtk_spin_button_timer,
|
(SPIN_BUTTON_TIMER_DELAY, (GtkFunction) gtk_spin_button_timer,
|
||||||
(gpointer) spin_button);
|
(gpointer) spin_button);
|
||||||
return FALSE;
|
|
||||||
}
|
}
|
||||||
else if (spin_button->climb_rate > 0.0 && spin_button->timer_step
|
else
|
||||||
< spin_button->adjustment->page_increment)
|
|
||||||
{
|
{
|
||||||
if (spin_button->timer_calls < MAX_TIMER_CALLS)
|
if (spin_button->climb_rate > 0.0 && spin_button->timer_step
|
||||||
spin_button->timer_calls++;
|
< spin_button->adjustment->page_increment)
|
||||||
else
|
|
||||||
{
|
{
|
||||||
spin_button->timer_calls = 0;
|
if (spin_button->timer_calls < MAX_TIMER_CALLS)
|
||||||
spin_button->timer_step += spin_button->climb_rate;
|
spin_button->timer_calls++;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
spin_button->timer_calls = 0;
|
||||||
|
spin_button->timer_step += spin_button->climb_rate;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
retval = TRUE;
|
||||||
}
|
}
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
return FALSE;
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "gdk/gdkkeysyms.h"
|
#include "gdk/gdkkeysyms.h"
|
||||||
#include "gdk/gdki18n.h"
|
#include "gdk/gdki18n.h"
|
||||||
#include "gtkmain.h"
|
#include "gtkmain.h"
|
||||||
|
#include "gtkprivate.h"
|
||||||
#include "gtkselection.h"
|
#include "gtkselection.h"
|
||||||
#include "gtksignal.h"
|
#include "gtksignal.h"
|
||||||
#include "gtktext.h"
|
#include "gtktext.h"
|
||||||
@ -1697,26 +1698,27 @@ gtk_text_scroll_timeout (gpointer data)
|
|||||||
{
|
{
|
||||||
GtkText *text;
|
GtkText *text;
|
||||||
GdkEventMotion event;
|
GdkEventMotion event;
|
||||||
|
|
||||||
gint x, y;
|
gint x, y;
|
||||||
GdkModifierType mask;
|
GdkModifierType mask;
|
||||||
|
|
||||||
g_return_val_if_fail (GTK_IS_TEXT (data), FALSE);
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
text = GTK_TEXT (data);
|
text = GTK_TEXT (data);
|
||||||
|
|
||||||
text->timer = 0;
|
text->timer = 0;
|
||||||
gdk_window_get_pointer (text->text_area, &x, &y, &mask);
|
gdk_window_get_pointer (text->text_area, &x, &y, &mask);
|
||||||
|
|
||||||
if (!(mask & (GDK_BUTTON1_MASK | GDK_BUTTON3_MASK)))
|
if (mask & (GDK_BUTTON1_MASK | GDK_BUTTON3_MASK))
|
||||||
return FALSE;
|
{
|
||||||
|
event.is_hint = 0;
|
||||||
event.is_hint = 0;
|
event.x = x;
|
||||||
event.x = x;
|
event.y = y;
|
||||||
event.y = y;
|
event.state = mask;
|
||||||
event.state = mask;
|
|
||||||
|
gtk_text_motion_notify (GTK_WIDGET (text), &event);
|
||||||
gtk_text_motion_notify (GTK_WIDGET (text), &event);
|
}
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "gtkmain.h"
|
#include "gtkmain.h"
|
||||||
|
#include "gtkprivate.h"
|
||||||
#include "gtkwidget.h"
|
#include "gtkwidget.h"
|
||||||
#include "gtkdrawwindow.h"
|
#include "gtkdrawwindow.h"
|
||||||
#include "gtksignal.h"
|
#include "gtksignal.h"
|
||||||
@ -493,10 +494,14 @@ gtk_tooltips_timeout (gpointer data)
|
|||||||
{
|
{
|
||||||
GtkTooltips *tooltips = (GtkTooltips *) data;
|
GtkTooltips *tooltips = (GtkTooltips *) data;
|
||||||
|
|
||||||
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
if (tooltips->active_tips_data != NULL &&
|
if (tooltips->active_tips_data != NULL &&
|
||||||
GTK_WIDGET_DRAWABLE (tooltips->active_tips_data->widget))
|
GTK_WIDGET_DRAWABLE (tooltips->active_tips_data->widget))
|
||||||
gtk_tooltips_draw_tips (tooltips);
|
gtk_tooltips_draw_tips (tooltips);
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1950,6 +1950,8 @@ gtk_widget_idle_draw (gpointer data)
|
|||||||
GSList *draw_data_list;
|
GSList *draw_data_list;
|
||||||
GtkWidget *widget;
|
GtkWidget *widget;
|
||||||
|
|
||||||
|
GTK_THREADS_ENTER;
|
||||||
|
|
||||||
/* Translate all draw requests to be allocation-relative */
|
/* Translate all draw requests to be allocation-relative */
|
||||||
widget_list = gtk_widget_redraw_queue;
|
widget_list = gtk_widget_redraw_queue;
|
||||||
while (widget_list)
|
while (widget_list)
|
||||||
@ -2131,6 +2133,8 @@ gtk_widget_idle_draw (gpointer data)
|
|||||||
g_slist_free (gtk_widget_redraw_queue);
|
g_slist_free (gtk_widget_redraw_queue);
|
||||||
gtk_widget_redraw_queue = NULL;
|
gtk_widget_redraw_queue = NULL;
|
||||||
|
|
||||||
|
GTK_THREADS_LEAVE;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,7 +49,8 @@ typedef enum
|
|||||||
GTK_HAS_DEFAULT = 1 << 14,
|
GTK_HAS_DEFAULT = 1 << 14,
|
||||||
GTK_HAS_GRAB = 1 << 15,
|
GTK_HAS_GRAB = 1 << 15,
|
||||||
GTK_RC_STYLE = 1 << 16,
|
GTK_RC_STYLE = 1 << 16,
|
||||||
GTK_COMPOSITE_CHILD = 1 << 17
|
GTK_COMPOSITE_CHILD = 1 << 17,
|
||||||
|
GTK_NO_REPARENT = 1 << 18
|
||||||
} GtkWidgetFlags;
|
} GtkWidgetFlags;
|
||||||
|
|
||||||
/* Macro for casting a pointer to a GtkWidget or GtkWidgetClass pointer.
|
/* Macro for casting a pointer to a GtkWidget or GtkWidgetClass pointer.
|
||||||
|
@ -53,7 +53,7 @@ counter (void *data)
|
|||||||
GtkWidget *label;
|
GtkWidget *label;
|
||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
|
|
||||||
gdk_threads_enter();
|
gtk_threads_enter();
|
||||||
|
|
||||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||||
gtk_window_set_title (GTK_WINDOW (window), name);
|
gtk_window_set_title (GTK_WINDOW (window), name);
|
||||||
@ -83,7 +83,7 @@ counter (void *data)
|
|||||||
{
|
{
|
||||||
sprintf(buffer, "%d", counter);
|
sprintf(buffer, "%d", counter);
|
||||||
gtk_label_set (GTK_LABEL (label), buffer);
|
gtk_label_set (GTK_LABEL (label), buffer);
|
||||||
gdk_threads_leave();
|
gtk_threads_leave();
|
||||||
counter++;
|
counter++;
|
||||||
/* Give someone else a chance to get the lock next time.
|
/* Give someone else a chance to get the lock next time.
|
||||||
* Only necessary because we don't do anything else while
|
* Only necessary because we don't do anything else while
|
||||||
@ -91,7 +91,7 @@ counter (void *data)
|
|||||||
*/
|
*/
|
||||||
sleep(0);
|
sleep(0);
|
||||||
|
|
||||||
gdk_threads_enter();
|
gtk_threads_enter();
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_widget_destroy (window);
|
gtk_widget_destroy (window);
|
||||||
@ -102,7 +102,7 @@ counter (void *data)
|
|||||||
gtk_main_quit();
|
gtk_main_quit();
|
||||||
pthread_mutex_unlock (&nthreads_mutex);
|
pthread_mutex_unlock (&nthreads_mutex);
|
||||||
|
|
||||||
gdk_threads_leave();
|
gtk_threads_leave();
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -115,7 +115,7 @@ main (int argc, char **argv)
|
|||||||
#ifdef USE_PTHREADS
|
#ifdef USE_PTHREADS
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!gdk_threads_init())
|
if (!gtk_threads_init())
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Could not initialize threads\n");
|
fprintf(stderr, "Could not initialize threads\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
@ -141,9 +141,9 @@ main (int argc, char **argv)
|
|||||||
|
|
||||||
pthread_mutex_unlock (&nthreads_mutex);
|
pthread_mutex_unlock (&nthreads_mutex);
|
||||||
|
|
||||||
gdk_threads_enter();
|
gtk_threads_enter();
|
||||||
gtk_main();
|
gtk_main();
|
||||||
gdk_threads_leave();
|
gtk_threads_leave();
|
||||||
fprintf(stderr, "Done\n");
|
fprintf(stderr, "Done\n");
|
||||||
#else /* !USE_PTHREADS */
|
#else /* !USE_PTHREADS */
|
||||||
fprintf (stderr, "GTK+ not compiled with threads support\n");
|
fprintf (stderr, "GTK+ not compiled with threads support\n");
|
||||||
|
@ -53,7 +53,7 @@ counter (void *data)
|
|||||||
GtkWidget *label;
|
GtkWidget *label;
|
||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
|
|
||||||
gdk_threads_enter();
|
gtk_threads_enter();
|
||||||
|
|
||||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||||
gtk_window_set_title (GTK_WINDOW (window), name);
|
gtk_window_set_title (GTK_WINDOW (window), name);
|
||||||
@ -83,7 +83,7 @@ counter (void *data)
|
|||||||
{
|
{
|
||||||
sprintf(buffer, "%d", counter);
|
sprintf(buffer, "%d", counter);
|
||||||
gtk_label_set (GTK_LABEL (label), buffer);
|
gtk_label_set (GTK_LABEL (label), buffer);
|
||||||
gdk_threads_leave();
|
gtk_threads_leave();
|
||||||
counter++;
|
counter++;
|
||||||
/* Give someone else a chance to get the lock next time.
|
/* Give someone else a chance to get the lock next time.
|
||||||
* Only necessary because we don't do anything else while
|
* Only necessary because we don't do anything else while
|
||||||
@ -91,7 +91,7 @@ counter (void *data)
|
|||||||
*/
|
*/
|
||||||
sleep(0);
|
sleep(0);
|
||||||
|
|
||||||
gdk_threads_enter();
|
gtk_threads_enter();
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_widget_destroy (window);
|
gtk_widget_destroy (window);
|
||||||
@ -102,7 +102,7 @@ counter (void *data)
|
|||||||
gtk_main_quit();
|
gtk_main_quit();
|
||||||
pthread_mutex_unlock (&nthreads_mutex);
|
pthread_mutex_unlock (&nthreads_mutex);
|
||||||
|
|
||||||
gdk_threads_leave();
|
gtk_threads_leave();
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -115,7 +115,7 @@ main (int argc, char **argv)
|
|||||||
#ifdef USE_PTHREADS
|
#ifdef USE_PTHREADS
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!gdk_threads_init())
|
if (!gtk_threads_init())
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Could not initialize threads\n");
|
fprintf(stderr, "Could not initialize threads\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
@ -141,9 +141,9 @@ main (int argc, char **argv)
|
|||||||
|
|
||||||
pthread_mutex_unlock (&nthreads_mutex);
|
pthread_mutex_unlock (&nthreads_mutex);
|
||||||
|
|
||||||
gdk_threads_enter();
|
gtk_threads_enter();
|
||||||
gtk_main();
|
gtk_main();
|
||||||
gdk_threads_leave();
|
gtk_threads_leave();
|
||||||
fprintf(stderr, "Done\n");
|
fprintf(stderr, "Done\n");
|
||||||
#else /* !USE_PTHREADS */
|
#else /* !USE_PTHREADS */
|
||||||
fprintf (stderr, "GTK+ not compiled with threads support\n");
|
fprintf (stderr, "GTK+ not compiled with threads support\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user