Commit Graph

27 Commits

Author SHA1 Message Date
Matthew Flatt
e67865a8ba remove unnecessary finalization (GTK+ 3)
Essentially the same as the GTK+ 2 repair.
2015-08-18 10:58:13 -06:00
Matthew Flatt
1c65d669f3 remove unnecessary finalization (GTK+ 2)
Remove a misguided attempt to improve finaliation while
making GTK+ 3 changes, although this change affected only
GTK+ 2.
2015-08-18 10:28:44 -06:00
Matthew Flatt
ef07121b9f recognize GTK+ 3 scroll events 2015-08-18 09:35:32 -06:00
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
Matthew Flatt
8ee481840c fix transparent canvases on GTK+ 3
For GTK+ 2, we used `gdk_window_ensure_native` to make sure
that freeze and thaw work. For GTK+ 3, `gdk_window_ensure_native`
seems not to be needed and prevents a canvas from drawing over
its background.
2015-08-17 20:11:40 -06:00
Matthew Flatt
63a62b0832 fixup for old versions of GTK+ 2
Restore support for Debian Lenny, at least.
2015-08-16 20:55:39 -06:00
Matthew Flatt
f42356da3f Support and prefer GTK+ 3 on Unix/X
The main advantage of GTK+ 3 is better support for HiDPI
displays. If GTK+ 3 libraries are not available or if the
`PLT_GTK2` environment variable is defined, GTK+ 2 is used
as before.
2015-08-16 20:55:35 -06:00
Matthew Flatt
bf79fb427c ignore system scaling factor if it's not a positive rational 2015-08-04 15:45:30 -06:00
Matthew Flatt
54de09f30e add PLT_DISPLAY_BACKING_SCALE
Also, fix conversion of @2x bitmaps to pixbufs at 2.0 scale.
2015-08-03 20:44:29 -06:00
Matthew Flatt
e7399f2bcc another repair
(Mangled the previous commit.)
2015-08-01 19:14:05 -06:00
Matthew Flatt
84a5dfb367 fix HiDPI detection
Work (in unscaled mode) on systems where the relevant
setting is not available.
2015-08-01 19:08:50 -06:00
Matthew Flatt
5b7bf69a13 HiDPI support on Unix (Gtk2)
Support GUI scaling in much the same way as on Windows, where
the OS setting ("org.gnome.desktop.interface.scaling-factor"
times "...text-scaling-factor") determines the scale that is
used for both graphics and GUI sizing.

As I understand it, a complete solution requires porting to
Gtk3. With Gtk2, the graphical part of a widget doesn't scale.
Text and image labels should scale correctly, though.
2015-08-01 18:06:12 -06:00
Sam Tobin-Hochstadt
60410356cc Pass strings to raise-type-error.
Closes PR 13178.
2015-07-30 14:35:18 -07:00
Jay McCarthy
6fa420d947 add get-scaled-client-size 2015-05-20 12:59:51 -04:00
Jay McCarthy
be6bd0160c supporting opengl hires mode 2015-05-03 08:13:22 -04:00
Jay Kominek
f71f1c3ccb win32 support for frame% fullscreen and is-fullscreened? 2015-05-01 12:39:55 -06:00
Jay Kominek
eb2b279712 gtk support for frame% fullscreen and is-fullscreened? 2015-05-01 12:39:33 -06:00
Neil Toronto
7541838b78 Check for X errors as well as NULL contexts to work around broken graphics drivers
From the ARB_create_context_profile standard:

  On failure glXCreateContextAttribsARB returns NULL and generates an
  X error with extended error information.

Some NVIDIA drivers on Linux won't return a core profile. When they don't,
they're supposed to return NULL as well as generate an X error, but they
only generate an X error and return a non-NULL, garbage context. This is
not only nonstandard behavior, but lame. It's a major pain to check for X
errors. But whatever, NVIDIA, you big old gorilla.

This may or may not fix segfaults some people are having with Pict3D. If
it does, they won't have to use (current-pict3d-legacy? #t) anymore.
2015-03-16 10:53:10 -04:00
Matthew Flatt
ff6b409f28 Cocoa: avoid atomic-mode problems in clipboard
Get data from a clipboard client before going into atomic mode. This
correction can avoid an "about to suspend in atomic mode" failure,
particularly if a snip fails to copy correctly.
2015-02-05 10:33:47 +01:00
Matthew Flatt
99a04d5f52 cocoa: get file-dialog results atomically
Otherwise, the NSURL object that is returned from the dialog can
be relased before we get the result.
2015-01-23 15:37:37 -07:00
Matthew Flatt
1185faa590 cocoa: adjust key events for empty Ctl- combos and special Option
In particular, restore key handling that makes Ctl-Space produce an
event with a Space character. Also, restore `special-option-key`
support, while correcting the documentation to say what
`special-option-key` and `special-control-key` actually do.

Closes PR 14934
2015-01-14 14:08:28 -07:00
Matthew Flatt
60611bc081 cocoa: fix focus method
Don't confuse "should the Tab key advance the focus to this window?"
with "can this window have the focus?".
2015-01-11 11:05:36 -07:00
Matthew Flatt
31231a6a8d narrow dependencies on Carbon
(reduced Carbon footprint?)
2015-01-09 08:37:38 -07:00
Jens Axel Søgaard
4dc47ef413 Compute other-key-codes
Use UCKeyTranslate to compute and store other-key-codes in the key-event.
2015-01-09 08:11:02 -07:00
Jens Axel Søgaard
fb0356d2fb Bindings for UCKeyTranslate
Bindings for UCKeyTranslate.
UCKeyTranslate converts a combination of a key-code, a modifier key state, keyboard layout and dead key state to a unicode string.
2015-01-09 08:11:01 -07:00
Matthew Flatt
de783c8378 avoid crashing via GCed racket/gui instance 2015-01-06 19:54:52 -07:00
Sam Tobin-Hochstadt
135e357a37 Remove extra directories. 2014-12-02 02:33:07 -05:00