gui/gui-lib/mred/private/wx/gtk
Matthew Flatt 9058a148f8 another try at fixing graphics for GTK+ 3
The `gdk_window_ensure_native` call for window freeze and thaw
really is needed, but since it is incompatible with transparent
canvases, don't use freeze and thaw at all for those.

Meanwhile, repair the backing bitmap for both GTK+ 2 and 3
for a transparent canvas when a scale is in effect. And go
back to using X11 bitmaps for backing a canvas on GTK+ 3;
I'm not sure that's the right choice, but probably putting
the bitmap data on the X server instead of client is the
right thing.

Finally, restore GL bitmap support (partly by using X11 bitmaps
to back a canvas).

GL rendering to a canvas with a backing scale is not yet right,
either for GTK+ 2 or 3.
2015-08-18 09:01:28 -06:00
..
button.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
canvas.rkt another try at fixing graphics for GTK+ 3 2015-08-18 09:01:28 -06:00
check-box.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
choice.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
client-window.rkt HiDPI support on Unix (Gtk2) 2015-08-01 18:06:12 -06:00
clipboard.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
colordialog.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
combo.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
const.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
cursor.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
dc.rkt another try at fixing graphics for GTK+ 3 2015-08-18 09:01:28 -06:00
dialog.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
filedialog.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
frame.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
gauge.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
gcwin.rkt another try at fixing graphics for GTK+ 3 2015-08-18 09:01:28 -06:00
gl-context.rkt another try at fixing graphics for GTK+ 3 2015-08-18 09:01:28 -06:00
group-panel.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
gsettings.rkt fixup for old versions of GTK+ 2 2015-08-16 20:55:39 -06:00
gtk3.rkt fixup for old versions of GTK+ 2 2015-08-16 20:55:39 -06:00
init.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
item.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
keycode.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
keymap.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
list-box.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
menu-bar.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
menu-item.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
menu.rkt HiDPI support on Unix (Gtk2) 2015-08-01 18:06:12 -06:00
message.rkt HiDPI support on Unix (Gtk2) 2015-08-01 18:06:12 -06:00
panel.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
pixbuf.rkt add PLT_DISPLAY_BACKING_SCALE 2015-08-03 20:44:29 -06:00
platform.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
printer-dc.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
procs.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
queue.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
radio-box.rkt HiDPI support on Unix (Gtk2) 2015-08-01 18:06:12 -06:00
README.txt Remove extra directories. 2014-12-02 02:33:07 -05:00
resolution.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
slider.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
stddialog.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
style.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
tab-panel.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
types.rkt HiDPI support on Unix (Gtk2) 2015-08-01 18:06:12 -06:00
unique.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
utils.rkt Support and prefer GTK+ 3 on Unix/X 2015-08-16 20:55:35 -06:00
w32.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
widget.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
win32.rkt Remove extra directories. 2014-12-02 02:33:07 -05:00
window.rkt another try at fixing graphics for GTK+ 3 2015-08-18 09:01:28 -06:00
x11.rkt another try at fixing graphics for GTK+ 3 2015-08-18 09:01:28 -06:00

Allocation rules:

 * Use `as-gtk-allocation' when creating a Gtk widget that is the main
   container for a given window<%> object. When the resulting
   reference becomes unreachable, the widget will be released with
   gtk_widget_destroy() through a finalizer.

 * Use `atomically' to create and attach a sub-widget within the main
   widget.  Don't use gtk_widget_destroy(); the containing widget will
   destroy the enclosing widget.

 * For temporary objects, use `atomically' to wrap both the allocation
   and release.

Every call to a function whose name contains "new" needs to be in one
of those cases.