mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-09 18:30:08 +00:00
Added long ChangeLog entry for changes in this branch
This commit is contained in:
parent
c433c6741d
commit
aee7dfc971
121
ChangeLog
121
ChangeLog
@ -1,3 +1,120 @@
|
||||
Thu Feb 24 18:11:46 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/gdkinternals.h gdk/gdkprivate.h gdk/Makefile.am: Add a header file for
|
||||
the _really_ internal stuff, and leave gdkprivate.h for the fake private
|
||||
stuff that we've traditionally exposed.
|
||||
|
||||
* gdk/**.c: Use gdkinternals.h where appropriate.
|
||||
|
||||
* gdk/x11/gdkx.h gdk/x11/gdkprivate-x11.h gdk/x11/*.c: Make gdkx.h
|
||||
not include gdkprivate-x11.h, move all stuff of conceivable public
|
||||
interest into gdkx.h; keep all really private stuff in
|
||||
uninstalled header gdkprivate-x11.h.
|
||||
|
||||
* gdk/gdkdraw.c gdk/gdkwindow.c gdk/gdkinternals: Redirect all calls to
|
||||
image->image_put on windows through a new function _gdk_window_draw_image()
|
||||
to allow us to do backing store for images. (Sort of ugly)
|
||||
|
||||
* gdk/gdkgc.c gdk/gdkprivate.h: Cache the ts and clip origins for graphics
|
||||
contexts locally so that we can offset them properly when drawing
|
||||
onto backing pixmaps.
|
||||
|
||||
* gdk/gdkinput.h: Reindented
|
||||
|
||||
* gdk/gdkprivate.h gdk/x11/gdkwindow-x11.c: Store the background
|
||||
pixmap or color for the window, so we can properly initialize
|
||||
our double-buffer pixmaps, and also so that we temporarily set
|
||||
a background of None while scrolling.
|
||||
|
||||
* gdk/gdkregion.h: Revise region boolean operators to have an
|
||||
interface that is actually convenient - switch from creating new
|
||||
regions on every op, to "methods" that modify existing regions
|
||||
(A = A OP B). 3 argument forms which allow dest == src, would also
|
||||
be possible, but the current interfaces seem to map nicely
|
||||
onto what needs to be done. (There is quite a lot of region
|
||||
code in GDK now.)
|
||||
|
||||
* gdk/gdkregion.h: Add constructor from rectangle and a copy
|
||||
operator.
|
||||
|
||||
* gdk/x11/{gdkregion-generic.[ch],gdkpolyreg-generic.c,
|
||||
gdkpoly-generic.h: Copy region code from Xlib, switch it over
|
||||
to 32 bit coordinates, modify it to be mostly GTK+ style
|
||||
and to have interfaces that match gdkregion.h.
|
||||
|
||||
* gdk/gdkwindow.c gdk/gdkprivate.h: Add facility for
|
||||
double-buffered drawing. gdk_window_begin_paint_{rect,region}()
|
||||
create a backing pixmap and redirect all drawing to
|
||||
that backing pixmap until a matching gdk_window_end_paint().
|
||||
|
||||
* gdk/gdkwindow.[ch] gdk/gdkinternals.h gdk/x11/gdkdrawable-x11.c:
|
||||
Create a special drawable class for GtkWindow's that
|
||||
redirects the drawing to the backing pixmap as necessary
|
||||
and then calls the real operations in _gdk_windowing_window_class.
|
||||
|
||||
* gdk/gdkprivate.h gdk/gdkwindow.[ch] gdk/x11/gdkevents-x11.c:
|
||||
Store invalid region for each window. Generate expose events for invalid
|
||||
region in an idle. This replaces both the expose compression
|
||||
and the redrawing queuing in GTK+. It is both more efficient and
|
||||
simpler than either one individually and far more so then the
|
||||
combination.
|
||||
|
||||
* gdk/x11/gdkgeometry.c gdk/x11/gdkwindow.c gdk/x11/gdkprivate-x11.h:
|
||||
Emulate 32 bit coordinates for windows with 16 bit coordinates
|
||||
by offsetting drawing, guffaw scrolling techniques and
|
||||
mapping/unmapping child windows as necessary.
|
||||
|
||||
* gdk/gdkwindow.[ch] gdk/x11/gdkgeometry.c: Add anti-exposes,
|
||||
where, when invalid regions are processed, the region is stored,
|
||||
and if expose events come in that are detectably duplicate
|
||||
the processed exposes (by comparison of event serial numbers),
|
||||
the stored region is subtracted out of those exposes.
|
||||
|
||||
* gdk/x11/gdkgeometry.c: Temporarily unset backing pixmaps of
|
||||
regions newly exposed when scrolling or resizing windows.
|
||||
This, combined with forcing processesing of queued invalidated
|
||||
regions, gives nice flicker-free scrolling.
|
||||
|
||||
* gtk/gtklayout.c gtk/gtkviewport.c: Force processing of
|
||||
invalidated regions after every scroll.
|
||||
|
||||
* gtk/gtklayout.c: Vastly simplify using the new 32 bit coordinate
|
||||
emulation in GDK. Its, for all practical purposes just a
|
||||
GtkViewport/GtkFixed hybrid now.
|
||||
|
||||
* gdk/gdkdrawable-x11.c: Convert from GDK (32 bit) to X11
|
||||
(16-bit) structures as necessary instead of just casting.
|
||||
|
||||
* gdk/x11/gdkgc-x11.c gdk/x11/gdkx.h: Replace XSetRegion with code
|
||||
in terms of the structures from gdkregion-generic.c, using appropriate
|
||||
offsets from GDK to X11 coordinates. Cache clip mask and
|
||||
origin and ts origin locally and only flush to the server
|
||||
when drawing, to avoid constantly setting and resetting these
|
||||
values when offsetting GC's for scrolling and backing pixmaps.
|
||||
|
||||
* gdk/x11/gdkinput-x11.c: Fix leak of axes structures.
|
||||
|
||||
* gtk/gtkcontainer.c: Call process_all_updates at end
|
||||
of resizing to reduce flicker. (Avoids having redraw
|
||||
lag arbitrarily behind resize under some circumstances)
|
||||
|
||||
* gtk/gtkentry.c: Remove old backing store code, and simply take
|
||||
advantage of the new backing store capabilities of GDK.
|
||||
|
||||
* gtk/gtkmain.c: Simple implementation of widget backing
|
||||
store - simply push a paint while handling each expose.
|
||||
(Should really be configurable widget for widget.)
|
||||
|
||||
* gtk/gtkwidget.c: Remove all the old complicated redraw
|
||||
code, and simply invalidate the GDK windows from
|
||||
gdk_window_queue_clear(), etc. (Sigh, so much carefully
|
||||
debugged complexity ... gone to the winds.)
|
||||
|
||||
Remove all the code for suppressing expose events while
|
||||
resizes are pending; this isn't needed since the invalid
|
||||
areas won't be processed until after the resizes are
|
||||
processed, since they are in a lower priority idle.
|
||||
|
||||
Thu Feb 24 15:37:41 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/gdkrectangle.c (gdk_rectangle_intersect): Set width
|
||||
@ -34,13 +151,9 @@ Mon Dec 13 14:06:03 1999 Owen Taylor <otaylor@redhat.com>
|
||||
of the background image instead of scaling the background down to
|
||||
a line.
|
||||
|
||||
Wed Nov 24 13:02:17 1999 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtk[hv]scrollbar.c (gtk_hscrollbar_size_allocate): Removed mysterious
|
||||
which temporarily set slider to wrong size.
|
||||
|
||||
Tue Nov 23 15:48:35 1999 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkaspectframe.c gtkbin.c: Remove unecessary calls to
|
||||
queue_clear().
|
||||
|
||||
|
@ -1,3 +1,120 @@
|
||||
Thu Feb 24 18:11:46 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/gdkinternals.h gdk/gdkprivate.h gdk/Makefile.am: Add a header file for
|
||||
the _really_ internal stuff, and leave gdkprivate.h for the fake private
|
||||
stuff that we've traditionally exposed.
|
||||
|
||||
* gdk/**.c: Use gdkinternals.h where appropriate.
|
||||
|
||||
* gdk/x11/gdkx.h gdk/x11/gdkprivate-x11.h gdk/x11/*.c: Make gdkx.h
|
||||
not include gdkprivate-x11.h, move all stuff of conceivable public
|
||||
interest into gdkx.h; keep all really private stuff in
|
||||
uninstalled header gdkprivate-x11.h.
|
||||
|
||||
* gdk/gdkdraw.c gdk/gdkwindow.c gdk/gdkinternals: Redirect all calls to
|
||||
image->image_put on windows through a new function _gdk_window_draw_image()
|
||||
to allow us to do backing store for images. (Sort of ugly)
|
||||
|
||||
* gdk/gdkgc.c gdk/gdkprivate.h: Cache the ts and clip origins for graphics
|
||||
contexts locally so that we can offset them properly when drawing
|
||||
onto backing pixmaps.
|
||||
|
||||
* gdk/gdkinput.h: Reindented
|
||||
|
||||
* gdk/gdkprivate.h gdk/x11/gdkwindow-x11.c: Store the background
|
||||
pixmap or color for the window, so we can properly initialize
|
||||
our double-buffer pixmaps, and also so that we temporarily set
|
||||
a background of None while scrolling.
|
||||
|
||||
* gdk/gdkregion.h: Revise region boolean operators to have an
|
||||
interface that is actually convenient - switch from creating new
|
||||
regions on every op, to "methods" that modify existing regions
|
||||
(A = A OP B). 3 argument forms which allow dest == src, would also
|
||||
be possible, but the current interfaces seem to map nicely
|
||||
onto what needs to be done. (There is quite a lot of region
|
||||
code in GDK now.)
|
||||
|
||||
* gdk/gdkregion.h: Add constructor from rectangle and a copy
|
||||
operator.
|
||||
|
||||
* gdk/x11/{gdkregion-generic.[ch],gdkpolyreg-generic.c,
|
||||
gdkpoly-generic.h: Copy region code from Xlib, switch it over
|
||||
to 32 bit coordinates, modify it to be mostly GTK+ style
|
||||
and to have interfaces that match gdkregion.h.
|
||||
|
||||
* gdk/gdkwindow.c gdk/gdkprivate.h: Add facility for
|
||||
double-buffered drawing. gdk_window_begin_paint_{rect,region}()
|
||||
create a backing pixmap and redirect all drawing to
|
||||
that backing pixmap until a matching gdk_window_end_paint().
|
||||
|
||||
* gdk/gdkwindow.[ch] gdk/gdkinternals.h gdk/x11/gdkdrawable-x11.c:
|
||||
Create a special drawable class for GtkWindow's that
|
||||
redirects the drawing to the backing pixmap as necessary
|
||||
and then calls the real operations in _gdk_windowing_window_class.
|
||||
|
||||
* gdk/gdkprivate.h gdk/gdkwindow.[ch] gdk/x11/gdkevents-x11.c:
|
||||
Store invalid region for each window. Generate expose events for invalid
|
||||
region in an idle. This replaces both the expose compression
|
||||
and the redrawing queuing in GTK+. It is both more efficient and
|
||||
simpler than either one individually and far more so then the
|
||||
combination.
|
||||
|
||||
* gdk/x11/gdkgeometry.c gdk/x11/gdkwindow.c gdk/x11/gdkprivate-x11.h:
|
||||
Emulate 32 bit coordinates for windows with 16 bit coordinates
|
||||
by offsetting drawing, guffaw scrolling techniques and
|
||||
mapping/unmapping child windows as necessary.
|
||||
|
||||
* gdk/gdkwindow.[ch] gdk/x11/gdkgeometry.c: Add anti-exposes,
|
||||
where, when invalid regions are processed, the region is stored,
|
||||
and if expose events come in that are detectably duplicate
|
||||
the processed exposes (by comparison of event serial numbers),
|
||||
the stored region is subtracted out of those exposes.
|
||||
|
||||
* gdk/x11/gdkgeometry.c: Temporarily unset backing pixmaps of
|
||||
regions newly exposed when scrolling or resizing windows.
|
||||
This, combined with forcing processesing of queued invalidated
|
||||
regions, gives nice flicker-free scrolling.
|
||||
|
||||
* gtk/gtklayout.c gtk/gtkviewport.c: Force processing of
|
||||
invalidated regions after every scroll.
|
||||
|
||||
* gtk/gtklayout.c: Vastly simplify using the new 32 bit coordinate
|
||||
emulation in GDK. Its, for all practical purposes just a
|
||||
GtkViewport/GtkFixed hybrid now.
|
||||
|
||||
* gdk/gdkdrawable-x11.c: Convert from GDK (32 bit) to X11
|
||||
(16-bit) structures as necessary instead of just casting.
|
||||
|
||||
* gdk/x11/gdkgc-x11.c gdk/x11/gdkx.h: Replace XSetRegion with code
|
||||
in terms of the structures from gdkregion-generic.c, using appropriate
|
||||
offsets from GDK to X11 coordinates. Cache clip mask and
|
||||
origin and ts origin locally and only flush to the server
|
||||
when drawing, to avoid constantly setting and resetting these
|
||||
values when offsetting GC's for scrolling and backing pixmaps.
|
||||
|
||||
* gdk/x11/gdkinput-x11.c: Fix leak of axes structures.
|
||||
|
||||
* gtk/gtkcontainer.c: Call process_all_updates at end
|
||||
of resizing to reduce flicker. (Avoids having redraw
|
||||
lag arbitrarily behind resize under some circumstances)
|
||||
|
||||
* gtk/gtkentry.c: Remove old backing store code, and simply take
|
||||
advantage of the new backing store capabilities of GDK.
|
||||
|
||||
* gtk/gtkmain.c: Simple implementation of widget backing
|
||||
store - simply push a paint while handling each expose.
|
||||
(Should really be configurable widget for widget.)
|
||||
|
||||
* gtk/gtkwidget.c: Remove all the old complicated redraw
|
||||
code, and simply invalidate the GDK windows from
|
||||
gdk_window_queue_clear(), etc. (Sigh, so much carefully
|
||||
debugged complexity ... gone to the winds.)
|
||||
|
||||
Remove all the code for suppressing expose events while
|
||||
resizes are pending; this isn't needed since the invalid
|
||||
areas won't be processed until after the resizes are
|
||||
processed, since they are in a lower priority idle.
|
||||
|
||||
Thu Feb 24 15:37:41 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/gdkrectangle.c (gdk_rectangle_intersect): Set width
|
||||
@ -34,13 +151,9 @@ Mon Dec 13 14:06:03 1999 Owen Taylor <otaylor@redhat.com>
|
||||
of the background image instead of scaling the background down to
|
||||
a line.
|
||||
|
||||
Wed Nov 24 13:02:17 1999 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtk[hv]scrollbar.c (gtk_hscrollbar_size_allocate): Removed mysterious
|
||||
which temporarily set slider to wrong size.
|
||||
|
||||
Tue Nov 23 15:48:35 1999 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkaspectframe.c gtkbin.c: Remove unecessary calls to
|
||||
queue_clear().
|
||||
|
||||
|
@ -1,3 +1,120 @@
|
||||
Thu Feb 24 18:11:46 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/gdkinternals.h gdk/gdkprivate.h gdk/Makefile.am: Add a header file for
|
||||
the _really_ internal stuff, and leave gdkprivate.h for the fake private
|
||||
stuff that we've traditionally exposed.
|
||||
|
||||
* gdk/**.c: Use gdkinternals.h where appropriate.
|
||||
|
||||
* gdk/x11/gdkx.h gdk/x11/gdkprivate-x11.h gdk/x11/*.c: Make gdkx.h
|
||||
not include gdkprivate-x11.h, move all stuff of conceivable public
|
||||
interest into gdkx.h; keep all really private stuff in
|
||||
uninstalled header gdkprivate-x11.h.
|
||||
|
||||
* gdk/gdkdraw.c gdk/gdkwindow.c gdk/gdkinternals: Redirect all calls to
|
||||
image->image_put on windows through a new function _gdk_window_draw_image()
|
||||
to allow us to do backing store for images. (Sort of ugly)
|
||||
|
||||
* gdk/gdkgc.c gdk/gdkprivate.h: Cache the ts and clip origins for graphics
|
||||
contexts locally so that we can offset them properly when drawing
|
||||
onto backing pixmaps.
|
||||
|
||||
* gdk/gdkinput.h: Reindented
|
||||
|
||||
* gdk/gdkprivate.h gdk/x11/gdkwindow-x11.c: Store the background
|
||||
pixmap or color for the window, so we can properly initialize
|
||||
our double-buffer pixmaps, and also so that we temporarily set
|
||||
a background of None while scrolling.
|
||||
|
||||
* gdk/gdkregion.h: Revise region boolean operators to have an
|
||||
interface that is actually convenient - switch from creating new
|
||||
regions on every op, to "methods" that modify existing regions
|
||||
(A = A OP B). 3 argument forms which allow dest == src, would also
|
||||
be possible, but the current interfaces seem to map nicely
|
||||
onto what needs to be done. (There is quite a lot of region
|
||||
code in GDK now.)
|
||||
|
||||
* gdk/gdkregion.h: Add constructor from rectangle and a copy
|
||||
operator.
|
||||
|
||||
* gdk/x11/{gdkregion-generic.[ch],gdkpolyreg-generic.c,
|
||||
gdkpoly-generic.h: Copy region code from Xlib, switch it over
|
||||
to 32 bit coordinates, modify it to be mostly GTK+ style
|
||||
and to have interfaces that match gdkregion.h.
|
||||
|
||||
* gdk/gdkwindow.c gdk/gdkprivate.h: Add facility for
|
||||
double-buffered drawing. gdk_window_begin_paint_{rect,region}()
|
||||
create a backing pixmap and redirect all drawing to
|
||||
that backing pixmap until a matching gdk_window_end_paint().
|
||||
|
||||
* gdk/gdkwindow.[ch] gdk/gdkinternals.h gdk/x11/gdkdrawable-x11.c:
|
||||
Create a special drawable class for GtkWindow's that
|
||||
redirects the drawing to the backing pixmap as necessary
|
||||
and then calls the real operations in _gdk_windowing_window_class.
|
||||
|
||||
* gdk/gdkprivate.h gdk/gdkwindow.[ch] gdk/x11/gdkevents-x11.c:
|
||||
Store invalid region for each window. Generate expose events for invalid
|
||||
region in an idle. This replaces both the expose compression
|
||||
and the redrawing queuing in GTK+. It is both more efficient and
|
||||
simpler than either one individually and far more so then the
|
||||
combination.
|
||||
|
||||
* gdk/x11/gdkgeometry.c gdk/x11/gdkwindow.c gdk/x11/gdkprivate-x11.h:
|
||||
Emulate 32 bit coordinates for windows with 16 bit coordinates
|
||||
by offsetting drawing, guffaw scrolling techniques and
|
||||
mapping/unmapping child windows as necessary.
|
||||
|
||||
* gdk/gdkwindow.[ch] gdk/x11/gdkgeometry.c: Add anti-exposes,
|
||||
where, when invalid regions are processed, the region is stored,
|
||||
and if expose events come in that are detectably duplicate
|
||||
the processed exposes (by comparison of event serial numbers),
|
||||
the stored region is subtracted out of those exposes.
|
||||
|
||||
* gdk/x11/gdkgeometry.c: Temporarily unset backing pixmaps of
|
||||
regions newly exposed when scrolling or resizing windows.
|
||||
This, combined with forcing processesing of queued invalidated
|
||||
regions, gives nice flicker-free scrolling.
|
||||
|
||||
* gtk/gtklayout.c gtk/gtkviewport.c: Force processing of
|
||||
invalidated regions after every scroll.
|
||||
|
||||
* gtk/gtklayout.c: Vastly simplify using the new 32 bit coordinate
|
||||
emulation in GDK. Its, for all practical purposes just a
|
||||
GtkViewport/GtkFixed hybrid now.
|
||||
|
||||
* gdk/gdkdrawable-x11.c: Convert from GDK (32 bit) to X11
|
||||
(16-bit) structures as necessary instead of just casting.
|
||||
|
||||
* gdk/x11/gdkgc-x11.c gdk/x11/gdkx.h: Replace XSetRegion with code
|
||||
in terms of the structures from gdkregion-generic.c, using appropriate
|
||||
offsets from GDK to X11 coordinates. Cache clip mask and
|
||||
origin and ts origin locally and only flush to the server
|
||||
when drawing, to avoid constantly setting and resetting these
|
||||
values when offsetting GC's for scrolling and backing pixmaps.
|
||||
|
||||
* gdk/x11/gdkinput-x11.c: Fix leak of axes structures.
|
||||
|
||||
* gtk/gtkcontainer.c: Call process_all_updates at end
|
||||
of resizing to reduce flicker. (Avoids having redraw
|
||||
lag arbitrarily behind resize under some circumstances)
|
||||
|
||||
* gtk/gtkentry.c: Remove old backing store code, and simply take
|
||||
advantage of the new backing store capabilities of GDK.
|
||||
|
||||
* gtk/gtkmain.c: Simple implementation of widget backing
|
||||
store - simply push a paint while handling each expose.
|
||||
(Should really be configurable widget for widget.)
|
||||
|
||||
* gtk/gtkwidget.c: Remove all the old complicated redraw
|
||||
code, and simply invalidate the GDK windows from
|
||||
gdk_window_queue_clear(), etc. (Sigh, so much carefully
|
||||
debugged complexity ... gone to the winds.)
|
||||
|
||||
Remove all the code for suppressing expose events while
|
||||
resizes are pending; this isn't needed since the invalid
|
||||
areas won't be processed until after the resizes are
|
||||
processed, since they are in a lower priority idle.
|
||||
|
||||
Thu Feb 24 15:37:41 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/gdkrectangle.c (gdk_rectangle_intersect): Set width
|
||||
@ -34,13 +151,9 @@ Mon Dec 13 14:06:03 1999 Owen Taylor <otaylor@redhat.com>
|
||||
of the background image instead of scaling the background down to
|
||||
a line.
|
||||
|
||||
Wed Nov 24 13:02:17 1999 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtk[hv]scrollbar.c (gtk_hscrollbar_size_allocate): Removed mysterious
|
||||
which temporarily set slider to wrong size.
|
||||
|
||||
Tue Nov 23 15:48:35 1999 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkaspectframe.c gtkbin.c: Remove unecessary calls to
|
||||
queue_clear().
|
||||
|
||||
|
@ -1,3 +1,120 @@
|
||||
Thu Feb 24 18:11:46 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/gdkinternals.h gdk/gdkprivate.h gdk/Makefile.am: Add a header file for
|
||||
the _really_ internal stuff, and leave gdkprivate.h for the fake private
|
||||
stuff that we've traditionally exposed.
|
||||
|
||||
* gdk/**.c: Use gdkinternals.h where appropriate.
|
||||
|
||||
* gdk/x11/gdkx.h gdk/x11/gdkprivate-x11.h gdk/x11/*.c: Make gdkx.h
|
||||
not include gdkprivate-x11.h, move all stuff of conceivable public
|
||||
interest into gdkx.h; keep all really private stuff in
|
||||
uninstalled header gdkprivate-x11.h.
|
||||
|
||||
* gdk/gdkdraw.c gdk/gdkwindow.c gdk/gdkinternals: Redirect all calls to
|
||||
image->image_put on windows through a new function _gdk_window_draw_image()
|
||||
to allow us to do backing store for images. (Sort of ugly)
|
||||
|
||||
* gdk/gdkgc.c gdk/gdkprivate.h: Cache the ts and clip origins for graphics
|
||||
contexts locally so that we can offset them properly when drawing
|
||||
onto backing pixmaps.
|
||||
|
||||
* gdk/gdkinput.h: Reindented
|
||||
|
||||
* gdk/gdkprivate.h gdk/x11/gdkwindow-x11.c: Store the background
|
||||
pixmap or color for the window, so we can properly initialize
|
||||
our double-buffer pixmaps, and also so that we temporarily set
|
||||
a background of None while scrolling.
|
||||
|
||||
* gdk/gdkregion.h: Revise region boolean operators to have an
|
||||
interface that is actually convenient - switch from creating new
|
||||
regions on every op, to "methods" that modify existing regions
|
||||
(A = A OP B). 3 argument forms which allow dest == src, would also
|
||||
be possible, but the current interfaces seem to map nicely
|
||||
onto what needs to be done. (There is quite a lot of region
|
||||
code in GDK now.)
|
||||
|
||||
* gdk/gdkregion.h: Add constructor from rectangle and a copy
|
||||
operator.
|
||||
|
||||
* gdk/x11/{gdkregion-generic.[ch],gdkpolyreg-generic.c,
|
||||
gdkpoly-generic.h: Copy region code from Xlib, switch it over
|
||||
to 32 bit coordinates, modify it to be mostly GTK+ style
|
||||
and to have interfaces that match gdkregion.h.
|
||||
|
||||
* gdk/gdkwindow.c gdk/gdkprivate.h: Add facility for
|
||||
double-buffered drawing. gdk_window_begin_paint_{rect,region}()
|
||||
create a backing pixmap and redirect all drawing to
|
||||
that backing pixmap until a matching gdk_window_end_paint().
|
||||
|
||||
* gdk/gdkwindow.[ch] gdk/gdkinternals.h gdk/x11/gdkdrawable-x11.c:
|
||||
Create a special drawable class for GtkWindow's that
|
||||
redirects the drawing to the backing pixmap as necessary
|
||||
and then calls the real operations in _gdk_windowing_window_class.
|
||||
|
||||
* gdk/gdkprivate.h gdk/gdkwindow.[ch] gdk/x11/gdkevents-x11.c:
|
||||
Store invalid region for each window. Generate expose events for invalid
|
||||
region in an idle. This replaces both the expose compression
|
||||
and the redrawing queuing in GTK+. It is both more efficient and
|
||||
simpler than either one individually and far more so then the
|
||||
combination.
|
||||
|
||||
* gdk/x11/gdkgeometry.c gdk/x11/gdkwindow.c gdk/x11/gdkprivate-x11.h:
|
||||
Emulate 32 bit coordinates for windows with 16 bit coordinates
|
||||
by offsetting drawing, guffaw scrolling techniques and
|
||||
mapping/unmapping child windows as necessary.
|
||||
|
||||
* gdk/gdkwindow.[ch] gdk/x11/gdkgeometry.c: Add anti-exposes,
|
||||
where, when invalid regions are processed, the region is stored,
|
||||
and if expose events come in that are detectably duplicate
|
||||
the processed exposes (by comparison of event serial numbers),
|
||||
the stored region is subtracted out of those exposes.
|
||||
|
||||
* gdk/x11/gdkgeometry.c: Temporarily unset backing pixmaps of
|
||||
regions newly exposed when scrolling or resizing windows.
|
||||
This, combined with forcing processesing of queued invalidated
|
||||
regions, gives nice flicker-free scrolling.
|
||||
|
||||
* gtk/gtklayout.c gtk/gtkviewport.c: Force processing of
|
||||
invalidated regions after every scroll.
|
||||
|
||||
* gtk/gtklayout.c: Vastly simplify using the new 32 bit coordinate
|
||||
emulation in GDK. Its, for all practical purposes just a
|
||||
GtkViewport/GtkFixed hybrid now.
|
||||
|
||||
* gdk/gdkdrawable-x11.c: Convert from GDK (32 bit) to X11
|
||||
(16-bit) structures as necessary instead of just casting.
|
||||
|
||||
* gdk/x11/gdkgc-x11.c gdk/x11/gdkx.h: Replace XSetRegion with code
|
||||
in terms of the structures from gdkregion-generic.c, using appropriate
|
||||
offsets from GDK to X11 coordinates. Cache clip mask and
|
||||
origin and ts origin locally and only flush to the server
|
||||
when drawing, to avoid constantly setting and resetting these
|
||||
values when offsetting GC's for scrolling and backing pixmaps.
|
||||
|
||||
* gdk/x11/gdkinput-x11.c: Fix leak of axes structures.
|
||||
|
||||
* gtk/gtkcontainer.c: Call process_all_updates at end
|
||||
of resizing to reduce flicker. (Avoids having redraw
|
||||
lag arbitrarily behind resize under some circumstances)
|
||||
|
||||
* gtk/gtkentry.c: Remove old backing store code, and simply take
|
||||
advantage of the new backing store capabilities of GDK.
|
||||
|
||||
* gtk/gtkmain.c: Simple implementation of widget backing
|
||||
store - simply push a paint while handling each expose.
|
||||
(Should really be configurable widget for widget.)
|
||||
|
||||
* gtk/gtkwidget.c: Remove all the old complicated redraw
|
||||
code, and simply invalidate the GDK windows from
|
||||
gdk_window_queue_clear(), etc. (Sigh, so much carefully
|
||||
debugged complexity ... gone to the winds.)
|
||||
|
||||
Remove all the code for suppressing expose events while
|
||||
resizes are pending; this isn't needed since the invalid
|
||||
areas won't be processed until after the resizes are
|
||||
processed, since they are in a lower priority idle.
|
||||
|
||||
Thu Feb 24 15:37:41 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/gdkrectangle.c (gdk_rectangle_intersect): Set width
|
||||
@ -34,13 +151,9 @@ Mon Dec 13 14:06:03 1999 Owen Taylor <otaylor@redhat.com>
|
||||
of the background image instead of scaling the background down to
|
||||
a line.
|
||||
|
||||
Wed Nov 24 13:02:17 1999 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtk[hv]scrollbar.c (gtk_hscrollbar_size_allocate): Removed mysterious
|
||||
which temporarily set slider to wrong size.
|
||||
|
||||
Tue Nov 23 15:48:35 1999 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkaspectframe.c gtkbin.c: Remove unecessary calls to
|
||||
queue_clear().
|
||||
|
||||
|
@ -1,3 +1,120 @@
|
||||
Thu Feb 24 18:11:46 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/gdkinternals.h gdk/gdkprivate.h gdk/Makefile.am: Add a header file for
|
||||
the _really_ internal stuff, and leave gdkprivate.h for the fake private
|
||||
stuff that we've traditionally exposed.
|
||||
|
||||
* gdk/**.c: Use gdkinternals.h where appropriate.
|
||||
|
||||
* gdk/x11/gdkx.h gdk/x11/gdkprivate-x11.h gdk/x11/*.c: Make gdkx.h
|
||||
not include gdkprivate-x11.h, move all stuff of conceivable public
|
||||
interest into gdkx.h; keep all really private stuff in
|
||||
uninstalled header gdkprivate-x11.h.
|
||||
|
||||
* gdk/gdkdraw.c gdk/gdkwindow.c gdk/gdkinternals: Redirect all calls to
|
||||
image->image_put on windows through a new function _gdk_window_draw_image()
|
||||
to allow us to do backing store for images. (Sort of ugly)
|
||||
|
||||
* gdk/gdkgc.c gdk/gdkprivate.h: Cache the ts and clip origins for graphics
|
||||
contexts locally so that we can offset them properly when drawing
|
||||
onto backing pixmaps.
|
||||
|
||||
* gdk/gdkinput.h: Reindented
|
||||
|
||||
* gdk/gdkprivate.h gdk/x11/gdkwindow-x11.c: Store the background
|
||||
pixmap or color for the window, so we can properly initialize
|
||||
our double-buffer pixmaps, and also so that we temporarily set
|
||||
a background of None while scrolling.
|
||||
|
||||
* gdk/gdkregion.h: Revise region boolean operators to have an
|
||||
interface that is actually convenient - switch from creating new
|
||||
regions on every op, to "methods" that modify existing regions
|
||||
(A = A OP B). 3 argument forms which allow dest == src, would also
|
||||
be possible, but the current interfaces seem to map nicely
|
||||
onto what needs to be done. (There is quite a lot of region
|
||||
code in GDK now.)
|
||||
|
||||
* gdk/gdkregion.h: Add constructor from rectangle and a copy
|
||||
operator.
|
||||
|
||||
* gdk/x11/{gdkregion-generic.[ch],gdkpolyreg-generic.c,
|
||||
gdkpoly-generic.h: Copy region code from Xlib, switch it over
|
||||
to 32 bit coordinates, modify it to be mostly GTK+ style
|
||||
and to have interfaces that match gdkregion.h.
|
||||
|
||||
* gdk/gdkwindow.c gdk/gdkprivate.h: Add facility for
|
||||
double-buffered drawing. gdk_window_begin_paint_{rect,region}()
|
||||
create a backing pixmap and redirect all drawing to
|
||||
that backing pixmap until a matching gdk_window_end_paint().
|
||||
|
||||
* gdk/gdkwindow.[ch] gdk/gdkinternals.h gdk/x11/gdkdrawable-x11.c:
|
||||
Create a special drawable class for GtkWindow's that
|
||||
redirects the drawing to the backing pixmap as necessary
|
||||
and then calls the real operations in _gdk_windowing_window_class.
|
||||
|
||||
* gdk/gdkprivate.h gdk/gdkwindow.[ch] gdk/x11/gdkevents-x11.c:
|
||||
Store invalid region for each window. Generate expose events for invalid
|
||||
region in an idle. This replaces both the expose compression
|
||||
and the redrawing queuing in GTK+. It is both more efficient and
|
||||
simpler than either one individually and far more so then the
|
||||
combination.
|
||||
|
||||
* gdk/x11/gdkgeometry.c gdk/x11/gdkwindow.c gdk/x11/gdkprivate-x11.h:
|
||||
Emulate 32 bit coordinates for windows with 16 bit coordinates
|
||||
by offsetting drawing, guffaw scrolling techniques and
|
||||
mapping/unmapping child windows as necessary.
|
||||
|
||||
* gdk/gdkwindow.[ch] gdk/x11/gdkgeometry.c: Add anti-exposes,
|
||||
where, when invalid regions are processed, the region is stored,
|
||||
and if expose events come in that are detectably duplicate
|
||||
the processed exposes (by comparison of event serial numbers),
|
||||
the stored region is subtracted out of those exposes.
|
||||
|
||||
* gdk/x11/gdkgeometry.c: Temporarily unset backing pixmaps of
|
||||
regions newly exposed when scrolling or resizing windows.
|
||||
This, combined with forcing processesing of queued invalidated
|
||||
regions, gives nice flicker-free scrolling.
|
||||
|
||||
* gtk/gtklayout.c gtk/gtkviewport.c: Force processing of
|
||||
invalidated regions after every scroll.
|
||||
|
||||
* gtk/gtklayout.c: Vastly simplify using the new 32 bit coordinate
|
||||
emulation in GDK. Its, for all practical purposes just a
|
||||
GtkViewport/GtkFixed hybrid now.
|
||||
|
||||
* gdk/gdkdrawable-x11.c: Convert from GDK (32 bit) to X11
|
||||
(16-bit) structures as necessary instead of just casting.
|
||||
|
||||
* gdk/x11/gdkgc-x11.c gdk/x11/gdkx.h: Replace XSetRegion with code
|
||||
in terms of the structures from gdkregion-generic.c, using appropriate
|
||||
offsets from GDK to X11 coordinates. Cache clip mask and
|
||||
origin and ts origin locally and only flush to the server
|
||||
when drawing, to avoid constantly setting and resetting these
|
||||
values when offsetting GC's for scrolling and backing pixmaps.
|
||||
|
||||
* gdk/x11/gdkinput-x11.c: Fix leak of axes structures.
|
||||
|
||||
* gtk/gtkcontainer.c: Call process_all_updates at end
|
||||
of resizing to reduce flicker. (Avoids having redraw
|
||||
lag arbitrarily behind resize under some circumstances)
|
||||
|
||||
* gtk/gtkentry.c: Remove old backing store code, and simply take
|
||||
advantage of the new backing store capabilities of GDK.
|
||||
|
||||
* gtk/gtkmain.c: Simple implementation of widget backing
|
||||
store - simply push a paint while handling each expose.
|
||||
(Should really be configurable widget for widget.)
|
||||
|
||||
* gtk/gtkwidget.c: Remove all the old complicated redraw
|
||||
code, and simply invalidate the GDK windows from
|
||||
gdk_window_queue_clear(), etc. (Sigh, so much carefully
|
||||
debugged complexity ... gone to the winds.)
|
||||
|
||||
Remove all the code for suppressing expose events while
|
||||
resizes are pending; this isn't needed since the invalid
|
||||
areas won't be processed until after the resizes are
|
||||
processed, since they are in a lower priority idle.
|
||||
|
||||
Thu Feb 24 15:37:41 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/gdkrectangle.c (gdk_rectangle_intersect): Set width
|
||||
@ -34,13 +151,9 @@ Mon Dec 13 14:06:03 1999 Owen Taylor <otaylor@redhat.com>
|
||||
of the background image instead of scaling the background down to
|
||||
a line.
|
||||
|
||||
Wed Nov 24 13:02:17 1999 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtk[hv]scrollbar.c (gtk_hscrollbar_size_allocate): Removed mysterious
|
||||
which temporarily set slider to wrong size.
|
||||
|
||||
Tue Nov 23 15:48:35 1999 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkaspectframe.c gtkbin.c: Remove unecessary calls to
|
||||
queue_clear().
|
||||
|
||||
|
@ -1,3 +1,120 @@
|
||||
Thu Feb 24 18:11:46 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/gdkinternals.h gdk/gdkprivate.h gdk/Makefile.am: Add a header file for
|
||||
the _really_ internal stuff, and leave gdkprivate.h for the fake private
|
||||
stuff that we've traditionally exposed.
|
||||
|
||||
* gdk/**.c: Use gdkinternals.h where appropriate.
|
||||
|
||||
* gdk/x11/gdkx.h gdk/x11/gdkprivate-x11.h gdk/x11/*.c: Make gdkx.h
|
||||
not include gdkprivate-x11.h, move all stuff of conceivable public
|
||||
interest into gdkx.h; keep all really private stuff in
|
||||
uninstalled header gdkprivate-x11.h.
|
||||
|
||||
* gdk/gdkdraw.c gdk/gdkwindow.c gdk/gdkinternals: Redirect all calls to
|
||||
image->image_put on windows through a new function _gdk_window_draw_image()
|
||||
to allow us to do backing store for images. (Sort of ugly)
|
||||
|
||||
* gdk/gdkgc.c gdk/gdkprivate.h: Cache the ts and clip origins for graphics
|
||||
contexts locally so that we can offset them properly when drawing
|
||||
onto backing pixmaps.
|
||||
|
||||
* gdk/gdkinput.h: Reindented
|
||||
|
||||
* gdk/gdkprivate.h gdk/x11/gdkwindow-x11.c: Store the background
|
||||
pixmap or color for the window, so we can properly initialize
|
||||
our double-buffer pixmaps, and also so that we temporarily set
|
||||
a background of None while scrolling.
|
||||
|
||||
* gdk/gdkregion.h: Revise region boolean operators to have an
|
||||
interface that is actually convenient - switch from creating new
|
||||
regions on every op, to "methods" that modify existing regions
|
||||
(A = A OP B). 3 argument forms which allow dest == src, would also
|
||||
be possible, but the current interfaces seem to map nicely
|
||||
onto what needs to be done. (There is quite a lot of region
|
||||
code in GDK now.)
|
||||
|
||||
* gdk/gdkregion.h: Add constructor from rectangle and a copy
|
||||
operator.
|
||||
|
||||
* gdk/x11/{gdkregion-generic.[ch],gdkpolyreg-generic.c,
|
||||
gdkpoly-generic.h: Copy region code from Xlib, switch it over
|
||||
to 32 bit coordinates, modify it to be mostly GTK+ style
|
||||
and to have interfaces that match gdkregion.h.
|
||||
|
||||
* gdk/gdkwindow.c gdk/gdkprivate.h: Add facility for
|
||||
double-buffered drawing. gdk_window_begin_paint_{rect,region}()
|
||||
create a backing pixmap and redirect all drawing to
|
||||
that backing pixmap until a matching gdk_window_end_paint().
|
||||
|
||||
* gdk/gdkwindow.[ch] gdk/gdkinternals.h gdk/x11/gdkdrawable-x11.c:
|
||||
Create a special drawable class for GtkWindow's that
|
||||
redirects the drawing to the backing pixmap as necessary
|
||||
and then calls the real operations in _gdk_windowing_window_class.
|
||||
|
||||
* gdk/gdkprivate.h gdk/gdkwindow.[ch] gdk/x11/gdkevents-x11.c:
|
||||
Store invalid region for each window. Generate expose events for invalid
|
||||
region in an idle. This replaces both the expose compression
|
||||
and the redrawing queuing in GTK+. It is both more efficient and
|
||||
simpler than either one individually and far more so then the
|
||||
combination.
|
||||
|
||||
* gdk/x11/gdkgeometry.c gdk/x11/gdkwindow.c gdk/x11/gdkprivate-x11.h:
|
||||
Emulate 32 bit coordinates for windows with 16 bit coordinates
|
||||
by offsetting drawing, guffaw scrolling techniques and
|
||||
mapping/unmapping child windows as necessary.
|
||||
|
||||
* gdk/gdkwindow.[ch] gdk/x11/gdkgeometry.c: Add anti-exposes,
|
||||
where, when invalid regions are processed, the region is stored,
|
||||
and if expose events come in that are detectably duplicate
|
||||
the processed exposes (by comparison of event serial numbers),
|
||||
the stored region is subtracted out of those exposes.
|
||||
|
||||
* gdk/x11/gdkgeometry.c: Temporarily unset backing pixmaps of
|
||||
regions newly exposed when scrolling or resizing windows.
|
||||
This, combined with forcing processesing of queued invalidated
|
||||
regions, gives nice flicker-free scrolling.
|
||||
|
||||
* gtk/gtklayout.c gtk/gtkviewport.c: Force processing of
|
||||
invalidated regions after every scroll.
|
||||
|
||||
* gtk/gtklayout.c: Vastly simplify using the new 32 bit coordinate
|
||||
emulation in GDK. Its, for all practical purposes just a
|
||||
GtkViewport/GtkFixed hybrid now.
|
||||
|
||||
* gdk/gdkdrawable-x11.c: Convert from GDK (32 bit) to X11
|
||||
(16-bit) structures as necessary instead of just casting.
|
||||
|
||||
* gdk/x11/gdkgc-x11.c gdk/x11/gdkx.h: Replace XSetRegion with code
|
||||
in terms of the structures from gdkregion-generic.c, using appropriate
|
||||
offsets from GDK to X11 coordinates. Cache clip mask and
|
||||
origin and ts origin locally and only flush to the server
|
||||
when drawing, to avoid constantly setting and resetting these
|
||||
values when offsetting GC's for scrolling and backing pixmaps.
|
||||
|
||||
* gdk/x11/gdkinput-x11.c: Fix leak of axes structures.
|
||||
|
||||
* gtk/gtkcontainer.c: Call process_all_updates at end
|
||||
of resizing to reduce flicker. (Avoids having redraw
|
||||
lag arbitrarily behind resize under some circumstances)
|
||||
|
||||
* gtk/gtkentry.c: Remove old backing store code, and simply take
|
||||
advantage of the new backing store capabilities of GDK.
|
||||
|
||||
* gtk/gtkmain.c: Simple implementation of widget backing
|
||||
store - simply push a paint while handling each expose.
|
||||
(Should really be configurable widget for widget.)
|
||||
|
||||
* gtk/gtkwidget.c: Remove all the old complicated redraw
|
||||
code, and simply invalidate the GDK windows from
|
||||
gdk_window_queue_clear(), etc. (Sigh, so much carefully
|
||||
debugged complexity ... gone to the winds.)
|
||||
|
||||
Remove all the code for suppressing expose events while
|
||||
resizes are pending; this isn't needed since the invalid
|
||||
areas won't be processed until after the resizes are
|
||||
processed, since they are in a lower priority idle.
|
||||
|
||||
Thu Feb 24 15:37:41 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/gdkrectangle.c (gdk_rectangle_intersect): Set width
|
||||
@ -34,13 +151,9 @@ Mon Dec 13 14:06:03 1999 Owen Taylor <otaylor@redhat.com>
|
||||
of the background image instead of scaling the background down to
|
||||
a line.
|
||||
|
||||
Wed Nov 24 13:02:17 1999 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtk[hv]scrollbar.c (gtk_hscrollbar_size_allocate): Removed mysterious
|
||||
which temporarily set slider to wrong size.
|
||||
|
||||
Tue Nov 23 15:48:35 1999 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkaspectframe.c gtkbin.c: Remove unecessary calls to
|
||||
queue_clear().
|
||||
|
||||
|
@ -1,3 +1,120 @@
|
||||
Thu Feb 24 18:11:46 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/gdkinternals.h gdk/gdkprivate.h gdk/Makefile.am: Add a header file for
|
||||
the _really_ internal stuff, and leave gdkprivate.h for the fake private
|
||||
stuff that we've traditionally exposed.
|
||||
|
||||
* gdk/**.c: Use gdkinternals.h where appropriate.
|
||||
|
||||
* gdk/x11/gdkx.h gdk/x11/gdkprivate-x11.h gdk/x11/*.c: Make gdkx.h
|
||||
not include gdkprivate-x11.h, move all stuff of conceivable public
|
||||
interest into gdkx.h; keep all really private stuff in
|
||||
uninstalled header gdkprivate-x11.h.
|
||||
|
||||
* gdk/gdkdraw.c gdk/gdkwindow.c gdk/gdkinternals: Redirect all calls to
|
||||
image->image_put on windows through a new function _gdk_window_draw_image()
|
||||
to allow us to do backing store for images. (Sort of ugly)
|
||||
|
||||
* gdk/gdkgc.c gdk/gdkprivate.h: Cache the ts and clip origins for graphics
|
||||
contexts locally so that we can offset them properly when drawing
|
||||
onto backing pixmaps.
|
||||
|
||||
* gdk/gdkinput.h: Reindented
|
||||
|
||||
* gdk/gdkprivate.h gdk/x11/gdkwindow-x11.c: Store the background
|
||||
pixmap or color for the window, so we can properly initialize
|
||||
our double-buffer pixmaps, and also so that we temporarily set
|
||||
a background of None while scrolling.
|
||||
|
||||
* gdk/gdkregion.h: Revise region boolean operators to have an
|
||||
interface that is actually convenient - switch from creating new
|
||||
regions on every op, to "methods" that modify existing regions
|
||||
(A = A OP B). 3 argument forms which allow dest == src, would also
|
||||
be possible, but the current interfaces seem to map nicely
|
||||
onto what needs to be done. (There is quite a lot of region
|
||||
code in GDK now.)
|
||||
|
||||
* gdk/gdkregion.h: Add constructor from rectangle and a copy
|
||||
operator.
|
||||
|
||||
* gdk/x11/{gdkregion-generic.[ch],gdkpolyreg-generic.c,
|
||||
gdkpoly-generic.h: Copy region code from Xlib, switch it over
|
||||
to 32 bit coordinates, modify it to be mostly GTK+ style
|
||||
and to have interfaces that match gdkregion.h.
|
||||
|
||||
* gdk/gdkwindow.c gdk/gdkprivate.h: Add facility for
|
||||
double-buffered drawing. gdk_window_begin_paint_{rect,region}()
|
||||
create a backing pixmap and redirect all drawing to
|
||||
that backing pixmap until a matching gdk_window_end_paint().
|
||||
|
||||
* gdk/gdkwindow.[ch] gdk/gdkinternals.h gdk/x11/gdkdrawable-x11.c:
|
||||
Create a special drawable class for GtkWindow's that
|
||||
redirects the drawing to the backing pixmap as necessary
|
||||
and then calls the real operations in _gdk_windowing_window_class.
|
||||
|
||||
* gdk/gdkprivate.h gdk/gdkwindow.[ch] gdk/x11/gdkevents-x11.c:
|
||||
Store invalid region for each window. Generate expose events for invalid
|
||||
region in an idle. This replaces both the expose compression
|
||||
and the redrawing queuing in GTK+. It is both more efficient and
|
||||
simpler than either one individually and far more so then the
|
||||
combination.
|
||||
|
||||
* gdk/x11/gdkgeometry.c gdk/x11/gdkwindow.c gdk/x11/gdkprivate-x11.h:
|
||||
Emulate 32 bit coordinates for windows with 16 bit coordinates
|
||||
by offsetting drawing, guffaw scrolling techniques and
|
||||
mapping/unmapping child windows as necessary.
|
||||
|
||||
* gdk/gdkwindow.[ch] gdk/x11/gdkgeometry.c: Add anti-exposes,
|
||||
where, when invalid regions are processed, the region is stored,
|
||||
and if expose events come in that are detectably duplicate
|
||||
the processed exposes (by comparison of event serial numbers),
|
||||
the stored region is subtracted out of those exposes.
|
||||
|
||||
* gdk/x11/gdkgeometry.c: Temporarily unset backing pixmaps of
|
||||
regions newly exposed when scrolling or resizing windows.
|
||||
This, combined with forcing processesing of queued invalidated
|
||||
regions, gives nice flicker-free scrolling.
|
||||
|
||||
* gtk/gtklayout.c gtk/gtkviewport.c: Force processing of
|
||||
invalidated regions after every scroll.
|
||||
|
||||
* gtk/gtklayout.c: Vastly simplify using the new 32 bit coordinate
|
||||
emulation in GDK. Its, for all practical purposes just a
|
||||
GtkViewport/GtkFixed hybrid now.
|
||||
|
||||
* gdk/gdkdrawable-x11.c: Convert from GDK (32 bit) to X11
|
||||
(16-bit) structures as necessary instead of just casting.
|
||||
|
||||
* gdk/x11/gdkgc-x11.c gdk/x11/gdkx.h: Replace XSetRegion with code
|
||||
in terms of the structures from gdkregion-generic.c, using appropriate
|
||||
offsets from GDK to X11 coordinates. Cache clip mask and
|
||||
origin and ts origin locally and only flush to the server
|
||||
when drawing, to avoid constantly setting and resetting these
|
||||
values when offsetting GC's for scrolling and backing pixmaps.
|
||||
|
||||
* gdk/x11/gdkinput-x11.c: Fix leak of axes structures.
|
||||
|
||||
* gtk/gtkcontainer.c: Call process_all_updates at end
|
||||
of resizing to reduce flicker. (Avoids having redraw
|
||||
lag arbitrarily behind resize under some circumstances)
|
||||
|
||||
* gtk/gtkentry.c: Remove old backing store code, and simply take
|
||||
advantage of the new backing store capabilities of GDK.
|
||||
|
||||
* gtk/gtkmain.c: Simple implementation of widget backing
|
||||
store - simply push a paint while handling each expose.
|
||||
(Should really be configurable widget for widget.)
|
||||
|
||||
* gtk/gtkwidget.c: Remove all the old complicated redraw
|
||||
code, and simply invalidate the GDK windows from
|
||||
gdk_window_queue_clear(), etc. (Sigh, so much carefully
|
||||
debugged complexity ... gone to the winds.)
|
||||
|
||||
Remove all the code for suppressing expose events while
|
||||
resizes are pending; this isn't needed since the invalid
|
||||
areas won't be processed until after the resizes are
|
||||
processed, since they are in a lower priority idle.
|
||||
|
||||
Thu Feb 24 15:37:41 2000 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gdk/gdkrectangle.c (gdk_rectangle_intersect): Set width
|
||||
@ -34,13 +151,9 @@ Mon Dec 13 14:06:03 1999 Owen Taylor <otaylor@redhat.com>
|
||||
of the background image instead of scaling the background down to
|
||||
a line.
|
||||
|
||||
Wed Nov 24 13:02:17 1999 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtk[hv]scrollbar.c (gtk_hscrollbar_size_allocate): Removed mysterious
|
||||
which temporarily set slider to wrong size.
|
||||
|
||||
Tue Nov 23 15:48:35 1999 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkaspectframe.c gtkbin.c: Remove unecessary calls to
|
||||
queue_clear().
|
||||
|
||||
|
@ -83,6 +83,7 @@ gdk_c_sources = @STRIP_BEGIN@ \
|
||||
gdkgc.c \
|
||||
gdkglobals.c \
|
||||
gdkimage.c \
|
||||
gdkinternals.h \
|
||||
gdkrgb.c \
|
||||
gdkrectangle.c \
|
||||
gdkwindow.c \
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "gdk.h"
|
||||
#include "gdkprivate.h"
|
||||
#include "gdkinternals.h"
|
||||
|
||||
#ifndef HAVE_XCONVERTCASE
|
||||
#include "gdkkeysyms.h"
|
||||
|
@ -351,17 +351,6 @@ gdk_draw_drawable (GdkDrawable *drawable,
|
||||
width, height);
|
||||
}
|
||||
|
||||
extern void
|
||||
_gdk_window_draw_image (GdkDrawable *drawable,
|
||||
GdkGC *gc,
|
||||
GdkImage *image,
|
||||
gint xsrc,
|
||||
gint ysrc,
|
||||
gint xdest,
|
||||
gint ydest,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
void
|
||||
gdk_draw_image (GdkDrawable *drawable,
|
||||
GdkGC *gc,
|
||||
|
@ -25,7 +25,7 @@
|
||||
*/
|
||||
|
||||
#include "gdk.h"
|
||||
#include "gdkprivate.h"
|
||||
#include "gdkinternals.h"
|
||||
|
||||
typedef struct _GdkIOClosure GdkIOClosure;
|
||||
typedef struct _GdkEventPrivate GdkEventPrivate;
|
||||
|
210
gdk/gdkinternals.h
Normal file
210
gdk/gdkinternals.h
Normal file
@ -0,0 +1,210 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Modified by the GTK+ Team and others 1997-1999. See the AUTHORS
|
||||
* file for a list of people on the GTK+ Team. See the ChangeLog
|
||||
* files for a list of changes. These files are distributed with
|
||||
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
|
||||
*/
|
||||
|
||||
/* Uninstalled header defining types and functions internal to GDK */
|
||||
|
||||
#include <gdk/gdktypes.h>
|
||||
#include <gdk/gdkprivate.h>
|
||||
|
||||
#ifndef __GDK_INTERNALS_H__
|
||||
#define __GDK_INTERNALS_H__
|
||||
|
||||
/**********************
|
||||
* General Facilities *
|
||||
**********************/
|
||||
|
||||
/* Debugging support */
|
||||
|
||||
typedef enum {
|
||||
GDK_DEBUG_MISC = 1 << 0,
|
||||
GDK_DEBUG_EVENTS = 1 << 1,
|
||||
GDK_DEBUG_DND = 1 << 2,
|
||||
GDK_DEBUG_COLOR_CONTEXT = 1 << 3,
|
||||
GDK_DEBUG_XIM = 1 << 4
|
||||
} GdkDebugFlag;
|
||||
|
||||
extern gint gdk_debug_level;
|
||||
extern gboolean gdk_show_events;
|
||||
extern GList *gdk_default_filters;
|
||||
|
||||
GDKVAR guint gdk_debug_flags;
|
||||
|
||||
#ifdef G_ENABLE_DEBUG
|
||||
|
||||
#define GDK_NOTE(type,action) G_STMT_START { \
|
||||
if (gdk_debug_flags & GDK_DEBUG_##type) \
|
||||
{ action; }; } G_STMT_END
|
||||
|
||||
#else /* !G_ENABLE_DEBUG */
|
||||
|
||||
#define GDK_NOTE(type,action)
|
||||
|
||||
#endif /* G_ENABLE_DEBUG */
|
||||
|
||||
/* Arg parsing */
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GDK_ARG_STRING,
|
||||
GDK_ARG_INT,
|
||||
GDK_ARG_BOOL,
|
||||
GDK_ARG_NOBOOL,
|
||||
GDK_ARG_CALLBACK
|
||||
} GdkArgType;
|
||||
|
||||
typedef struct _GdkArgContext GdkArgContext;
|
||||
typedef struct _GdkArgDesc GdkArgDesc;
|
||||
|
||||
typedef void (*GdkArgFunc) (const char *name, const char *arg, gpointer data);
|
||||
|
||||
struct _GdkArgContext
|
||||
{
|
||||
GPtrArray *tables;
|
||||
gpointer cb_data;
|
||||
};
|
||||
|
||||
struct _GdkArgDesc
|
||||
{
|
||||
const char *name;
|
||||
GdkArgType type;
|
||||
gpointer location;
|
||||
GdkArgFunc callback;
|
||||
};
|
||||
|
||||
/* Event handling */
|
||||
|
||||
extern GdkEventFunc gdk_event_func; /* Callback for events */
|
||||
extern gpointer gdk_event_data;
|
||||
extern GDestroyNotify gdk_event_notify;
|
||||
|
||||
/* FIFO's for event queue, and for events put back using
|
||||
* gdk_event_put().
|
||||
*/
|
||||
extern GList *gdk_queued_events;
|
||||
extern GList *gdk_queued_tail;
|
||||
|
||||
GdkEvent* gdk_event_new (void);
|
||||
|
||||
void gdk_events_init (void);
|
||||
void gdk_events_queue (void);
|
||||
GdkEvent* gdk_event_unqueue (void);
|
||||
|
||||
GList* gdk_event_queue_find_first (void);
|
||||
void gdk_event_queue_remove_link (GList *node);
|
||||
void gdk_event_queue_append (GdkEvent *event);
|
||||
|
||||
void gdk_event_button_generate (GdkEvent *event);
|
||||
|
||||
/*************************************
|
||||
* Interfaces used by windowing code *
|
||||
*************************************/
|
||||
|
||||
#ifdef USE_XIM
|
||||
/* XIM support */
|
||||
gint gdk_im_open (void);
|
||||
void gdk_im_close (void);
|
||||
void gdk_ic_cleanup (void);
|
||||
#endif /* USE_XIM */
|
||||
|
||||
GdkWindow* _gdk_window_alloc (void);
|
||||
void _gdk_window_draw_image (GdkDrawable *drawable,
|
||||
GdkGC *gc,
|
||||
GdkImage *image,
|
||||
gint xsrc,
|
||||
gint ysrc,
|
||||
gint xdest,
|
||||
gint ydest,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
/*****************************************
|
||||
* Interfaces provided by windowing code *
|
||||
*****************************************/
|
||||
|
||||
/* Font/string functions implemented in module-specific code */
|
||||
gint _gdk_font_strlen (GdkFont *font, const char *str);
|
||||
void _gdk_font_destroy (GdkFont *font);
|
||||
|
||||
void _gdk_colormap_real_destroy (GdkColormap *colormap);
|
||||
|
||||
void _gdk_cursor_destroy (GdkCursor *cursor);
|
||||
|
||||
/* Class supplied by windowing-system-dependent code for GdkWindow.
|
||||
*/
|
||||
extern GdkDrawableClass _gdk_windowing_window_class;
|
||||
|
||||
/* Class for covering over windowing-system-dependent and backing-store
|
||||
* code for GdkWindow
|
||||
*/
|
||||
extern GdkDrawableClass _gdk_window_class;
|
||||
|
||||
extern GdkArgDesc _gdk_windowing_args[];
|
||||
gboolean _gdk_windowing_init_check (int argc,
|
||||
char **argv);
|
||||
void _gdk_windowing_window_get_offsets (GdkWindow *window,
|
||||
gint *x_offset,
|
||||
gint *y_offset);
|
||||
void _gdk_windowing_window_clear_area (GdkWindow *window,
|
||||
gint x,
|
||||
gint y,
|
||||
gint width,
|
||||
gint height);
|
||||
void _gdk_windowing_window_clear_area_e (GdkWindow *window,
|
||||
gint x,
|
||||
gint y,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
/* Called before processing updates for a window. This gives the windowing
|
||||
* layer a chance to save the region for later use in avoiding duplicate
|
||||
* exposes. The return value indicates whether the function has a saved
|
||||
* the region; if the result is TRUE, then the windowing layer is responsible
|
||||
* for destroying the region later.
|
||||
*/
|
||||
gboolean _gdk_windowing_window_queue_antiexpose (GdkWindow *window,
|
||||
GdkRegion *area);
|
||||
|
||||
/************************************
|
||||
* Initialization and exit routines *
|
||||
************************************/
|
||||
|
||||
void gdk_window_init (void);
|
||||
void gdk_visual_init (void);
|
||||
void gdk_dnd_init (void);
|
||||
|
||||
void gdk_image_init (void);
|
||||
void gdk_image_exit (void);
|
||||
|
||||
void gdk_input_init (void);
|
||||
void gdk_input_exit (void);
|
||||
|
||||
void gdk_windowing_exit (void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* __GDK_INTERNALS_H__ */
|
164
gdk/gdkprivate.h
164
gdk/gdkprivate.h
@ -55,7 +55,6 @@ extern "C" {
|
||||
#define gdk_font_lookup(xid) ((GdkFont*) gdk_xid_table_lookup (xid))
|
||||
|
||||
typedef struct _GdkDrawablePrivate GdkDrawablePrivate;
|
||||
/* typedef struct _GdkDrawablePrivate GdkPixmapPrivate; */
|
||||
typedef struct _GdkWindowPrivate GdkWindowPrivate;
|
||||
typedef struct _GdkImageClass GdkImageClass;
|
||||
typedef struct _GdkImagePrivate GdkImagePrivate;
|
||||
@ -179,169 +178,11 @@ struct _GdkClientFilter {
|
||||
gpointer data;
|
||||
};
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GDK_ARG_STRING,
|
||||
GDK_ARG_INT,
|
||||
GDK_ARG_BOOL,
|
||||
GDK_ARG_NOBOOL,
|
||||
GDK_ARG_CALLBACK
|
||||
} GdkArgType;
|
||||
|
||||
|
||||
typedef struct _GdkArgContext GdkArgContext;
|
||||
typedef struct _GdkArgDesc GdkArgDesc;
|
||||
|
||||
typedef void (*GdkArgFunc) (const char *name, const char *arg, gpointer data);
|
||||
|
||||
struct _GdkArgContext
|
||||
{
|
||||
GPtrArray *tables;
|
||||
gpointer cb_data;
|
||||
};
|
||||
|
||||
struct _GdkArgDesc
|
||||
{
|
||||
const char *name;
|
||||
GdkArgType type;
|
||||
gpointer location;
|
||||
GdkArgFunc callback;
|
||||
};
|
||||
|
||||
|
||||
typedef enum {
|
||||
GDK_DEBUG_MISC = 1 << 0,
|
||||
GDK_DEBUG_EVENTS = 1 << 1,
|
||||
GDK_DEBUG_DND = 1 << 2,
|
||||
GDK_DEBUG_COLOR_CONTEXT = 1 << 3,
|
||||
GDK_DEBUG_XIM = 1 << 4
|
||||
} GdkDebugFlag;
|
||||
|
||||
void gdk_event_button_generate (GdkEvent *event);
|
||||
|
||||
/* FIFO's for event queue, and for events put back using
|
||||
* gdk_event_put().
|
||||
*/
|
||||
extern GList *gdk_queued_events;
|
||||
extern GList *gdk_queued_tail;
|
||||
|
||||
extern GdkEventFunc gdk_event_func; /* Callback for events */
|
||||
extern gpointer gdk_event_data;
|
||||
extern GDestroyNotify gdk_event_notify;
|
||||
|
||||
GdkEvent* gdk_event_new (void);
|
||||
|
||||
void gdk_events_init (void);
|
||||
void gdk_events_queue (void);
|
||||
GdkEvent* gdk_event_unqueue (void);
|
||||
|
||||
GList* gdk_event_queue_find_first (void);
|
||||
void gdk_event_queue_remove_link (GList *node);
|
||||
void gdk_event_queue_append (GdkEvent *event);
|
||||
|
||||
void gdk_window_init (void);
|
||||
void gdk_visual_init (void);
|
||||
void gdk_dnd_init (void);
|
||||
|
||||
void gdk_image_init (void);
|
||||
void gdk_image_exit (void);
|
||||
|
||||
void gdk_input_init (void);
|
||||
void gdk_input_exit (void);
|
||||
|
||||
void gdk_windowing_exit (void);
|
||||
|
||||
void gdk_window_add_colormap_windows (GdkWindow *window);
|
||||
void gdk_window_destroy_notify (GdkWindow *window);
|
||||
|
||||
/* If you pass x = y = -1, it queries the pointer
|
||||
to find out where it currently is.
|
||||
If you pass x = y = -2, it does anything necessary
|
||||
to know that the drag is ending.
|
||||
*/
|
||||
void gdk_dnd_display_drag_cursor(gint x,
|
||||
gint y,
|
||||
gboolean drag_ok,
|
||||
gboolean change_made);
|
||||
|
||||
extern gint gdk_debug_level;
|
||||
extern gboolean gdk_show_events;
|
||||
extern gint gdk_screen;
|
||||
GDKVAR GdkWindow *gdk_parent_root;
|
||||
GDKVAR gint gdk_error_code;
|
||||
GDKVAR gint gdk_error_warnings;
|
||||
extern GList *gdk_default_filters;
|
||||
|
||||
GdkWindow* _gdk_window_alloc (void);
|
||||
|
||||
/* Font/string functions implemented in module-specific code */
|
||||
gint _gdk_font_strlen (GdkFont *font, const char *str);
|
||||
void _gdk_font_destroy (GdkFont *font);
|
||||
|
||||
void _gdk_colormap_real_destroy (GdkColormap *colormap);
|
||||
|
||||
void _gdk_cursor_destroy (GdkCursor *cursor);
|
||||
|
||||
/* Initialization */
|
||||
|
||||
extern GdkArgDesc _gdk_windowing_args[];
|
||||
gboolean _gdk_windowing_init_check (int argc,
|
||||
char **argv);
|
||||
void _gdk_windowing_window_get_offsets (GdkWindow *window,
|
||||
gint *x_offset,
|
||||
gint *y_offset);
|
||||
void _gdk_windowing_window_clear_area (GdkWindow *window,
|
||||
gint x,
|
||||
gint y,
|
||||
gint width,
|
||||
gint height);
|
||||
void _gdk_windowing_window_clear_area_e (GdkWindow *window,
|
||||
gint x,
|
||||
gint y,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
/* Called before processing updates for a window. This gives the windowing
|
||||
* layer a chance to save the region for later use in avoiding duplicate
|
||||
* exposes. The return value indicates whether the function has a saved
|
||||
* the region; if the result is TRUE, then the windowing layer is responsible
|
||||
* for destroying the region later.
|
||||
*/
|
||||
gboolean _gdk_windowing_window_queue_antiexpose (GdkWindow *window,
|
||||
GdkRegion *area);
|
||||
|
||||
#ifdef USE_XIM
|
||||
/* XIM support */
|
||||
gint gdk_im_open (void);
|
||||
void gdk_im_close (void);
|
||||
void gdk_ic_cleanup (void);
|
||||
#endif /* USE_XIM */
|
||||
|
||||
/* Class supplied by windowing-system-dependent code for GdkWindow.
|
||||
*/
|
||||
extern GdkDrawableClass _gdk_windowing_window_class;
|
||||
|
||||
/* Class for covering over windowing-system-dependent and backing-store
|
||||
* code for GdkWindow
|
||||
*/
|
||||
extern GdkDrawableClass _gdk_window_class;
|
||||
|
||||
/* Debugging support */
|
||||
|
||||
#ifdef G_ENABLE_DEBUG
|
||||
|
||||
#define GDK_NOTE(type,action) G_STMT_START { \
|
||||
if (gdk_debug_flags & GDK_DEBUG_##type) \
|
||||
{ action; }; } G_STMT_END
|
||||
|
||||
#else /* !G_ENABLE_DEBUG */
|
||||
|
||||
#define GDK_NOTE(type,action)
|
||||
|
||||
#endif /* G_ENABLE_DEBUG */
|
||||
|
||||
GDKVAR guint gdk_debug_flags;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
@ -349,3 +190,8 @@ GDKVAR guint gdk_debug_flags;
|
||||
|
||||
|
||||
#endif /* __GDK_PRIVATE_H__ */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -25,7 +25,7 @@
|
||||
*/
|
||||
|
||||
#include "gdkwindow.h"
|
||||
#include "gdkprivate.h"
|
||||
#include "gdkinternals.h"
|
||||
#include "gdk.h" /* For gdk_rectangle_union() */
|
||||
#include "gdkpixmap.h"
|
||||
|
||||
@ -971,7 +971,7 @@ gdk_window_clear_area_e (GdkWindow *window,
|
||||
_gdk_windowing_window_clear_area_e (window, x, y, width, height);
|
||||
}
|
||||
|
||||
extern void
|
||||
void
|
||||
_gdk_window_draw_image (GdkDrawable *drawable,
|
||||
GdkGC *gc,
|
||||
GdkImage *image,
|
||||
|
@ -67,6 +67,9 @@ libgdk_x11_la_SOURCES = \
|
||||
gdkinputprivate.h \
|
||||
$(xinput_sources)
|
||||
|
||||
INCLUDE_HEADERS = \
|
||||
gdkx.h
|
||||
|
||||
EXTRA_PROGRAMS = gxid
|
||||
bin_PROGRAMS = @xinput_progs@
|
||||
|
||||
|
@ -68,6 +68,7 @@
|
||||
#include "gdkcc.h"
|
||||
#include "gdkcolor.h"
|
||||
#include "gdkx.h"
|
||||
#include "gdkinternals.h"
|
||||
|
||||
#define MAX_IMAGE_COLORS 256
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include <time.h>
|
||||
|
||||
#include "gdkcolor.h"
|
||||
#include "gdkx.h"
|
||||
#include "gdkprivate-x11.h"
|
||||
|
||||
static gint gdk_colormap_match_color (GdkColormap *cmap,
|
||||
GdkColor *color,
|
||||
|
@ -31,8 +31,8 @@
|
||||
#include "gdk.h" /* For gdk_flush() */
|
||||
#include "gdkdnd.h"
|
||||
#include "gdkproperty.h"
|
||||
#include "gdkprivate.h"
|
||||
#include "gdkx.h"
|
||||
#include "gdkinternals.h"
|
||||
#include "gdkprivate-x11.h"
|
||||
|
||||
typedef struct _GdkDragContextPrivate GdkDragContextPrivate;
|
||||
|
||||
|
@ -1,4 +1,30 @@
|
||||
#include "gdkx.h"
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Modified by the GTK+ Team and others 1997-1999. See the AUTHORS
|
||||
* file for a list of people on the GTK+ Team. See the ChangeLog
|
||||
* files for a list of changes. These files are distributed with
|
||||
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
|
||||
*/
|
||||
|
||||
#include "gdkprivate-x11.h"
|
||||
|
||||
static void gdk_x11_drawable_destroy (GdkDrawable *drawable);
|
||||
|
||||
|
@ -25,7 +25,8 @@
|
||||
*/
|
||||
|
||||
#include "gdk.h"
|
||||
#include "gdkprivate.h"
|
||||
#include "gdkprivate-x11.h"
|
||||
#include "gdkinternals.h"
|
||||
#include "gdkx.h"
|
||||
|
||||
#include "gdkkeysyms.h"
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xos.h>
|
||||
#include "gdkfont.h"
|
||||
#include "gdkx.h"
|
||||
#include "gdkprivate-x11.h"
|
||||
|
||||
static GHashTable *font_name_hash = NULL;
|
||||
static GHashTable *fontset_name_hash = NULL;
|
||||
|
@ -29,9 +29,9 @@
|
||||
#include "gdk.h" /* For gdk_flush() */
|
||||
#include "gdkim.h"
|
||||
#include "gdkpixmap.h"
|
||||
#include "gdkprivate.h"
|
||||
#include "gdki18n.h"
|
||||
#include "gdkx.h"
|
||||
#include "gdkinternals.h"
|
||||
#include "gdkprivate-x11.h"
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
|
@ -56,7 +56,7 @@
|
||||
#include "gdk.h" /* For gdk_error_trap_* / gdk_flush_* */
|
||||
#include "gdkimage.h"
|
||||
#include "gdkprivate.h"
|
||||
#include "gdkx.h"
|
||||
#include "gdkprivate-x11.h"
|
||||
|
||||
static void gdk_x11_image_destroy (GdkImage *image);
|
||||
static void gdk_image_put_normal (GdkImage *image,
|
||||
|
@ -25,6 +25,7 @@
|
||||
*/
|
||||
|
||||
#include "gdkinputprivate.h"
|
||||
#include "gdkinternals.h"
|
||||
#include "gdkx.h"
|
||||
|
||||
/* Forward declarations */
|
||||
|
@ -47,8 +47,8 @@
|
||||
|
||||
#include "gdk.h"
|
||||
|
||||
#include "gdkx.h"
|
||||
#include "gdkprivate.h"
|
||||
#include "gdkprivate-x11.h"
|
||||
#include "gdkinternals.h"
|
||||
#include "gdkinputprivate.h"
|
||||
|
||||
typedef struct _GdkPredicate GdkPredicate;
|
||||
|
@ -33,8 +33,7 @@
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
#include "gdkpixmap.h"
|
||||
#include "gdkprivate.h"
|
||||
#include "gdkx.h"
|
||||
#include "gdkprivate-x11.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
@ -1,128 +1,42 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Modified by the GTK+ Team and others 1997-1999. See the AUTHORS
|
||||
* file for a list of people on the GTK+ Team. See the ChangeLog
|
||||
* files for a list of changes. These files are distributed with
|
||||
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Private uninstalled header defining things local to X windowing code
|
||||
*/
|
||||
|
||||
#ifndef __GDK_PRIVATE_X11_H__
|
||||
#define __GDK_PRIVATE_X11_H__
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
|
||||
#include <gdk/gdkfont.h>
|
||||
#include <gdk/gdkprivate.h>
|
||||
#include <gdk/gdkcursor.h>
|
||||
|
||||
typedef struct _GdkGCXData GdkGCXData;
|
||||
typedef struct _GdkDrawableXData GdkDrawableXData;
|
||||
typedef struct _GdkWindowXData GdkWindowXData;
|
||||
typedef struct _GdkXPositionInfo GdkXPositionInfo;
|
||||
typedef struct _GdkColormapPrivateX GdkColormapPrivateX;
|
||||
typedef struct _GdkCursorPrivate GdkCursorPrivate;
|
||||
typedef struct _GdkFontPrivateX GdkFontPrivateX;
|
||||
typedef struct _GdkImagePrivateX GdkImagePrivateX;
|
||||
typedef struct _GdkVisualPrivate GdkVisualPrivate;
|
||||
|
||||
#ifdef USE_XIM
|
||||
typedef struct _GdkICPrivate GdkICPrivate;
|
||||
#endif /* USE_XIM */
|
||||
|
||||
#define GDK_DRAWABLE_XDATA(win) ((GdkDrawableXData *)(((GdkDrawablePrivate*)(win))->klass_data))
|
||||
#define GDK_WINDOW_XDATA(win) ((GdkWindowXData *)(((GdkDrawablePrivate*)(win))->klass_data))
|
||||
#define GDK_GC_XDATA(gc) ((GdkGCXData *)(((GdkGCPrivate*)(gc))->klass_data))
|
||||
|
||||
struct _GdkGCXData
|
||||
{
|
||||
GC xgc;
|
||||
Display *xdisplay;
|
||||
GdkRegion *clip_region;
|
||||
guint dirty_mask;
|
||||
};
|
||||
|
||||
struct _GdkDrawableXData
|
||||
{
|
||||
Window xid;
|
||||
Display *xdisplay;
|
||||
};
|
||||
|
||||
struct _GdkXPositionInfo
|
||||
{
|
||||
gint x;
|
||||
gint y;
|
||||
gint width;
|
||||
gint height;
|
||||
gint x_offset; /* Offsets to add to X coordinates within window */
|
||||
gint y_offset; /* to get GDK coodinates within window */
|
||||
gboolean big : 1;
|
||||
gboolean mapped : 1;
|
||||
gboolean no_bg : 1; /* Set when the window background is temporarily
|
||||
* unset during resizing and scaling */
|
||||
GdkRectangle clip_rect; /* visible rectangle of window */
|
||||
};
|
||||
|
||||
struct _GdkWindowXData
|
||||
{
|
||||
GdkDrawableXData drawable_data;
|
||||
GdkXPositionInfo position_info;
|
||||
};
|
||||
|
||||
struct _GdkCursorPrivate
|
||||
{
|
||||
GdkCursor cursor;
|
||||
Cursor xcursor;
|
||||
Display *xdisplay;
|
||||
};
|
||||
|
||||
struct _GdkFontPrivateX
|
||||
{
|
||||
GdkFontPrivate base;
|
||||
/* XFontStruct *xfont; */
|
||||
/* generic pointer point to XFontStruct or XFontSet */
|
||||
gpointer xfont;
|
||||
Display *xdisplay;
|
||||
|
||||
GSList *names;
|
||||
};
|
||||
|
||||
struct _GdkVisualPrivate
|
||||
{
|
||||
GdkVisual visual;
|
||||
Visual *xvisual;
|
||||
};
|
||||
|
||||
struct _GdkColormapPrivateX
|
||||
{
|
||||
GdkColormapPrivate base;
|
||||
|
||||
Colormap xcolormap;
|
||||
Display *xdisplay;
|
||||
gint private_val;
|
||||
|
||||
GHashTable *hash;
|
||||
GdkColorInfo *info;
|
||||
time_t last_sync_time;
|
||||
};
|
||||
|
||||
struct _GdkImagePrivateX
|
||||
{
|
||||
GdkImagePrivate base;
|
||||
|
||||
XImage *ximage;
|
||||
Display *xdisplay;
|
||||
gpointer x_shm_info;
|
||||
};
|
||||
|
||||
|
||||
#ifdef USE_XIM
|
||||
|
||||
struct _GdkICPrivate
|
||||
{
|
||||
XIC xic;
|
||||
GdkICAttr *attr;
|
||||
GdkICAttributesType mask;
|
||||
};
|
||||
|
||||
#endif /* USE_XIM */
|
||||
#include "gdkx.h"
|
||||
|
||||
void gdk_xid_table_insert (XID *xid,
|
||||
gpointer data);
|
||||
void gdk_xid_table_remove (XID xid);
|
||||
gpointer gdk_xid_table_lookup (XID xid);
|
||||
gint gdk_send_xevent (Window window,
|
||||
gboolean propagate,
|
||||
glong event_mask,
|
||||
@ -133,6 +47,8 @@ GdkGC * _gdk_x11_gc_new (GdkDrawable *drawable,
|
||||
GdkColormap * gdk_colormap_lookup (Colormap xcolormap);
|
||||
GdkVisual * gdk_visual_lookup (Visual *xvisual);
|
||||
|
||||
void gdk_window_add_colormap_windows (GdkWindow *window);
|
||||
|
||||
/* Please see gdkwindow.c for comments on how to use */
|
||||
Window gdk_window_xid_at (Window base,
|
||||
gint bx,
|
||||
@ -157,24 +73,13 @@ void _gdk_window_process_expose (GdkWindow *window,
|
||||
gulong serial,
|
||||
GdkRectangle *area);
|
||||
|
||||
#define GDK_GC_XGC(gc) (GDK_GC_XDATA(gc)->xgc)
|
||||
#define GDK_GC_GET_XGC(gc) (GDK_GC_XDATA(gc)->dirty_mask ? _gdk_x11_gc_flush (gc) : GDK_GC_XGC (gc))
|
||||
|
||||
GC _gdk_x11_gc_flush (GdkGC *gc);
|
||||
|
||||
extern GdkDrawableClass _gdk_x11_drawable_class;
|
||||
extern gboolean gdk_use_xshm;
|
||||
extern gchar *gdk_display_name;
|
||||
extern Display *gdk_display;
|
||||
extern Window gdk_root_window;
|
||||
extern Window gdk_leader_window;
|
||||
extern Atom gdk_wm_delete_window;
|
||||
extern Atom gdk_wm_take_focus;
|
||||
extern Atom gdk_wm_protocols;
|
||||
extern Atom gdk_wm_window_protocols[];
|
||||
extern Atom gdk_selection_property;
|
||||
extern GdkWindow *selection_owner[];
|
||||
extern gchar *gdk_progclass;
|
||||
extern gboolean gdk_null_window_warnings;
|
||||
extern const int gdk_nevent_masks;
|
||||
extern const int gdk_event_mask_table[];
|
||||
|
@ -31,7 +31,7 @@
|
||||
#include "gdkproperty.h"
|
||||
#include "gdkselection.h"
|
||||
#include "gdkprivate.h"
|
||||
#include "gdkx.h"
|
||||
#include "gdkprivate-x11.h"
|
||||
|
||||
|
||||
gint
|
||||
|
@ -29,6 +29,7 @@
|
||||
|
||||
#include "gdkvisual.h"
|
||||
#include "gdkprivate-x11.h"
|
||||
#include "gdkinternals.h"
|
||||
|
||||
static void gdk_visual_add (GdkVisual *visual);
|
||||
static void gdk_visual_decompose_mask (gulong mask,
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include "gdkwindow.h"
|
||||
#include "gdkinputprivate.h"
|
||||
#include "gdkprivate-x11.h"
|
||||
#include "gdkx.h"
|
||||
#include "gdkinternals.h"
|
||||
#include "MwmUtil.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
135
gdk/x11/gdkx.h
135
gdk/x11/gdkx.h
@ -27,7 +27,122 @@
|
||||
#ifndef __GDK_X_H__
|
||||
#define __GDK_X_H__
|
||||
|
||||
#include <gdk/x11/gdkprivate-x11.h>
|
||||
#include <gdk/gdkprivate.h>
|
||||
#include <gdk/gdkcursor.h>
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
|
||||
typedef struct _GdkGCXData GdkGCXData;
|
||||
typedef struct _GdkDrawableXData GdkDrawableXData;
|
||||
typedef struct _GdkWindowXData GdkWindowXData;
|
||||
typedef struct _GdkXPositionInfo GdkXPositionInfo;
|
||||
typedef struct _GdkColormapPrivateX GdkColormapPrivateX;
|
||||
typedef struct _GdkCursorPrivate GdkCursorPrivate;
|
||||
typedef struct _GdkFontPrivateX GdkFontPrivateX;
|
||||
typedef struct _GdkImagePrivateX GdkImagePrivateX;
|
||||
typedef struct _GdkVisualPrivate GdkVisualPrivate;
|
||||
|
||||
#ifdef USE_XIM
|
||||
typedef struct _GdkICPrivate GdkICPrivate;
|
||||
#endif /* USE_XIM */
|
||||
|
||||
#define GDK_DRAWABLE_XDATA(win) ((GdkDrawableXData *)(((GdkDrawablePrivate*)(win))->klass_data))
|
||||
#define GDK_WINDOW_XDATA(win) ((GdkWindowXData *)(((GdkDrawablePrivate*)(win))->klass_data))
|
||||
#define GDK_GC_XDATA(gc) ((GdkGCXData *)(((GdkGCPrivate*)(gc))->klass_data))
|
||||
|
||||
struct _GdkGCXData
|
||||
{
|
||||
GC xgc;
|
||||
Display *xdisplay;
|
||||
GdkRegion *clip_region;
|
||||
guint dirty_mask;
|
||||
};
|
||||
|
||||
struct _GdkDrawableXData
|
||||
{
|
||||
Window xid;
|
||||
Display *xdisplay;
|
||||
};
|
||||
|
||||
struct _GdkXPositionInfo
|
||||
{
|
||||
gint x;
|
||||
gint y;
|
||||
gint width;
|
||||
gint height;
|
||||
gint x_offset; /* Offsets to add to X coordinates within window */
|
||||
gint y_offset; /* to get GDK coodinates within window */
|
||||
gboolean big : 1;
|
||||
gboolean mapped : 1;
|
||||
gboolean no_bg : 1; /* Set when the window background is temporarily
|
||||
* unset during resizing and scaling */
|
||||
GdkRectangle clip_rect; /* visible rectangle of window */
|
||||
};
|
||||
|
||||
struct _GdkWindowXData
|
||||
{
|
||||
GdkDrawableXData drawable_data;
|
||||
GdkXPositionInfo position_info;
|
||||
};
|
||||
|
||||
struct _GdkCursorPrivate
|
||||
{
|
||||
GdkCursor cursor;
|
||||
Cursor xcursor;
|
||||
Display *xdisplay;
|
||||
};
|
||||
|
||||
struct _GdkFontPrivateX
|
||||
{
|
||||
GdkFontPrivate base;
|
||||
/* XFontStruct *xfont; */
|
||||
/* generic pointer point to XFontStruct or XFontSet */
|
||||
gpointer xfont;
|
||||
Display *xdisplay;
|
||||
|
||||
GSList *names;
|
||||
};
|
||||
|
||||
struct _GdkVisualPrivate
|
||||
{
|
||||
GdkVisual visual;
|
||||
Visual *xvisual;
|
||||
};
|
||||
|
||||
struct _GdkColormapPrivateX
|
||||
{
|
||||
GdkColormapPrivate base;
|
||||
|
||||
Colormap xcolormap;
|
||||
Display *xdisplay;
|
||||
gint private_val;
|
||||
|
||||
GHashTable *hash;
|
||||
GdkColorInfo *info;
|
||||
time_t last_sync_time;
|
||||
};
|
||||
|
||||
struct _GdkImagePrivateX
|
||||
{
|
||||
GdkImagePrivate base;
|
||||
|
||||
XImage *ximage;
|
||||
Display *xdisplay;
|
||||
gpointer x_shm_info;
|
||||
};
|
||||
|
||||
|
||||
#ifdef USE_XIM
|
||||
|
||||
struct _GdkICPrivate
|
||||
{
|
||||
XIC xic;
|
||||
GdkICAttr *attr;
|
||||
GdkICAttributesType mask;
|
||||
};
|
||||
|
||||
#endif /* USE_XIM */
|
||||
|
||||
#define GDK_ROOT_WINDOW() gdk_root_window
|
||||
#define GDK_ROOT_PARENT() ((GdkWindow *)gdk_parent_root)
|
||||
@ -43,9 +158,22 @@
|
||||
#define GDK_FONT_XDISPLAY(font) (((GdkFontPrivate*) font)->xdisplay)
|
||||
#define GDK_FONT_XFONT(font) (((GdkFontPrivateX *)font)->xfont)
|
||||
|
||||
#define GDK_GC_XGC(gc) (GDK_GC_XDATA(gc)->xgc)
|
||||
#define GDK_GC_GET_XGC(gc) (GDK_GC_XDATA(gc)->dirty_mask ? _gdk_x11_gc_flush (gc) : GDK_GC_XGC (gc))
|
||||
|
||||
#define GDK_WINDOW_XWINDOW GDK_DRAWABLE_XID
|
||||
#define GDK_WINDOW_XDISPLAY GDK_DRAWABLE_XDISPLAY
|
||||
|
||||
extern Display *gdk_display;
|
||||
extern Window gdk_root_window;
|
||||
extern gint gdk_screen;
|
||||
extern gchar *gdk_display_name;
|
||||
extern Window gdk_leader_window;
|
||||
|
||||
extern Atom gdk_selection_property;
|
||||
|
||||
extern gchar *gdk_progclass;
|
||||
|
||||
GdkVisual* gdkx_visual_get (VisualID xvisualid);
|
||||
/* XXX: Do not use this function until it is fixed. An X Colormap
|
||||
* is useless unless we also have the visual. */
|
||||
@ -59,4 +187,9 @@ Window gdk_get_client_window (Display *dpy,
|
||||
GdkPixmap *gdk_pixmap_foreign_new (guint32 anid);
|
||||
GdkWindow *gdk_window_foreign_new (guint32 anid);
|
||||
|
||||
/* Return the Gdk* for a particular XID */
|
||||
gpointer gdk_xid_table_lookup (XID xid);
|
||||
|
||||
GC _gdk_x11_gc_flush (GdkGC *gc);
|
||||
|
||||
#endif /* __GDK_X_H__ */
|
||||
|
@ -14,6 +14,7 @@ testtree
|
||||
gtkcompat.h
|
||||
testthreads
|
||||
libgtk.la
|
||||
gtkfeatures.h
|
||||
gtkmarshal.h
|
||||
gtktypebuiltins.h
|
||||
gtkmarshal.c
|
||||
|
Loading…
Reference in New Issue
Block a user