Commit Graph

593 Commits

Author SHA1 Message Date
Matthew Flatt
306194e9fa racket/gui gtk: preserve button font on label change 2013-04-25 06:05:22 -06:00
Matthew Flatt
ca0418d47d ffi/unsafe/objc: remove -A'/+A', add `#:async-apply'
Another run at the problem 57516164de was meant to solve. The
new solution just gives up when a `drawRect:' method is called
in the wrong thread, which might create refresh glitches but
avoids a deadlock in the case that the Racket thread is blocked
on the update happening in the foreign thread.
2013-04-23 13:48:15 -06:00
Matthew Flatt
07fd3676d0 racket/gui cocoa: fix `enable' on window whose ancestor is disabled 2013-04-23 13:48:15 -06:00
Matthew Flatt
a9cc79c89b racket/gui cocoa: fix swapping of buttons with the 'border style
Register a button as a default button every time that it is shown,
so that multiple buttons in a frame can have the 'border style
(as long as only one is shown at a time).
2013-04-20 09:38:56 -06:00
Matthew Flatt
fd8bde94da racket/gui cocoa: avoid focus-setting loop 2013-04-20 09:38:55 -06:00
Tony Garnock-Jones
38fffd3582 Complain visibly when cannot load GL shared libs, instead of swallowing error. 2013-04-19 07:54:30 -06:00
Matthew Flatt
57516164de ffi/unsafe/obj: add +A' and -A' method modes
On Cocoa, a view's `drawRect:' method can be called from a
heartbeat thread that animates controls. Such a call happens
rarely for a `canvas%' or other class where `drawRect:'
is overridden, but since it can happen, ensure that the
callback runs on the Racket thread.
2013-04-19 07:54:30 -06:00
Matthew Flatt
44d59702c0 racket/gui cocoa: fix `list-box%' visble-cell calculations
There were especially problems with header columns, but
also intercell spacing was not taken into account.

Merge to v5.3.4
2013-04-16 08:58:19 -06:00
Matthew Flatt
69707c9255 racket/gui: gl-config fixes 2013-04-12 18:29:01 -06:00
Matthew Flatt
9420855879 racket/gui cocoa: delay `on-paint' if a GL context isn't ready
The relevant `on-paint' call is one that is forced for a GL
canvas to try to draw a frame's content before the frame is
shown. Sometimes, thread scheduling would let the frame get
sufficiently initialized at the Cocoa level before the `on-paint'
call happened, but sometimes not.
2013-04-12 14:58:53 -06:00
Jay Kominek
0562755be9 OpenGL context sharing 2013-04-12 14:58:53 -06:00
Matthew Flatt
33700427f2 racket/gui: make list-box% columns more consistent across platforms
Cocoa: use ellipses instead of line wrapping
Gtk: allow column sizing below title width

Merge to v5.3.4
2013-04-12 06:36:51 -06:00
Matthew Flatt
e0486a7cf0 racket/gui: add warp-pointer' to window<%>'
Removed the method from `canvas<%>', where it was never implemented
with the `racket/gui' reimplementation.
2013-03-19 15:53:13 -07:00
Eli Barzilay
af6be85ff5 Fix lots of indentation mistakes.
(Found by my ayatollah script...)
2013-03-14 10:55:47 -04:00
Matthew Flatt
d5c1a75e38 racket/gui cocoa: fix over-eager refresh for 'gl canvas% 2013-02-14 19:47:40 -07:00
Matthew Flatt
e22977667d racket/gui gtk: fix canvas/panel border drawing
The code to draw a border has to determine the widget's position
within the drawing window. Gtk 3.0 has a function to provide that
transformation, but Gtk 2.0 doesn't seem to have one, and it seems
that the transformation implemented in `racket/gui' wasn't right.

Closes PR 13453
2013-01-25 14:21:57 -07:00
Robby Findler
5301646baf fix a bug in recently added display-changed method 2013-01-21 13:47:43 -06:00
Matthew Flatt
55f98a15d4 racket/gui gtk: make `on-demand' for menus work better
There appears to be no way to make `on-demand' work right for the
Unity window manager's global menu bar, since there's no notificiation
when the menu bar is clicked. We approximate the correct behavior
by calling `on-demand' when a containing frame loses the keyboard
focus, which might be because the menu bar was clicked; that may be
too late (because the menu has already been shown), but it should
work most of the time.

Closes PR 13347.

Relevant to PR 13395, but DrRacket will have to change to work
around the remaining limitations of `on-demand'.
2013-01-01 15:55:36 -07:00
Matthew Flatt
07d5a9e385 fix `expt' on small negative number and large positive odd
The pow() function apparently gets it wrong on some platforms.

Closes PR 13391
2013-01-01 12:33:59 -07:00
Robby Findler
19d6f7a15a Rackety 2012-12-21 19:22:59 -06:00
Robby Findler
3f9e60a908 add display-changed method 2012-12-21 19:22:59 -06:00
Robby Findler
8d4dac318c hold onto all frames weakly 2012-12-21 15:43:12 -06:00
Matthew Flatt
5b016b4c32 win32: support MinGW build
A MinGW build is the same shape as a MSVC build (but without
MzCOM), unlike a Cygwin build.
2012-12-09 11:26:02 -07:00
Samuel Bronson
b366d04792 Typo fixes 2012-11-27 07:55:29 -07:00
Matthew Flatt
31f7cfb486 racket/gui gtk: fix end-doc' for printer-dc%'
Contract demands a void result.
2012-11-20 07:15:28 -07:00
Robby Findler
3aac6ec715 add the name of the function to the message string in the gui-event logger 2012-11-16 07:26:38 -06:00
Matthew Flatt
7b04571fac racket/gui: add `get-current-mouse-state' 2012-11-07 14:37:39 -07:00
Eli Barzilay
672910f27b Lots of bad TAB eliminations.
I started from tabs that are not on the beginning of lines, and in
several places I did further cleanings.

If you're worried about knowing who wrote some code, for example, if you
get to this commit in "git blame", then note that you can use the "-w"
flag in many git commands to ignore whitespaces.  For example, to see
per-line authors, use "git blame -w <file>".  Another example: to see
the (*much* smaller) non-whitespace changes in this (or any other)
commit, use "git log -p -w -1 <sha1>".
2012-11-07 11:22:20 -05:00
Matthew Flatt
068240e9fe racket/gui: fix problems with control labels and client/global positions
Closes PR 13232
2012-11-04 08:47:50 -07:00
Matthew Flatt
0c82f54912 racket/gui: add delete' to choice%' and `list-control<%>'
Closes PR 13230
2012-11-04 08:25:43 -07:00
Robby Findler
33eba697a0 adjust the fields of the gui-event struct 2012-10-29 06:45:13 -05:00
Matthew Flatt
ba6e383963 racket/gui gtk: fix on-subwindow-... handling
Handling was broken by changes to fix enter and
leave events (in commit a5d7812732)

Merge to v5.3.1
2012-10-27 21:34:08 -06:00
Robby Findler
7e8ac872fe add logging to mred's event callback mechanism to record
how long event processing takes
2012-10-26 21:49:44 -05:00
Matthew Flatt
ebe0b64d47 racket/gui win32: fix drag-and-drop onto frame
Closes PR 13109

Merge to v5.3.1
2012-10-09 21:13:34 -06:00
Matthew Flatt
75008f14d7 win32: fix combo-field% click handling
Closes PR 13173

Merge to v5.3.1
2012-10-09 20:05:47 -06:00
Matthew Flatt
7ddd99cf52 racket/gui win32: fix duplicate pre- events for controls 2012-10-02 07:26:25 -06:00
Matthew Flatt
a5d7812732 racket/gui: skip some redundant 'enter & 'leave events 2012-10-02 07:26:25 -06:00
Matthew Flatt
efcad101d1 win32: fix coordinates of non-client mouse events
Closes PR 13141
2012-10-01 13:08:24 -06:00
Matthew Flatt
c16b696272 win32: fix for clipboard bitmap decoding
Closes PR 13119
2012-09-19 09:12:57 -06:00
Matthew Flatt
4f75350bf3 win32: fix(?) printing page-size calculation when in 100*mm
Windows provide page metrics in either 1000ths of inches or
100ths of millimeters. I think Racket's calculation was wrong
in the mm case.
2012-09-19 08:40:24 -06:00
Matthew Flatt
7291e1a24d racket/gui win32: atomicity repair 2012-08-29 17:45:59 -06:00
Matthew Flatt
088d1dadb4 add ffi/unsafe/nsalloc' and ffi/unsafe/nsstring' 2012-08-24 15:48:58 -06:00
Matthew Flatt
d9784aa7eb win32 racket/gui: fix decoding of system font name
Closes PR 12997
2012-08-23 08:16:23 -06:00
Matthew Flatt
0648556bea racket/gui: internal cleanup
As suggested by Robby.
2012-08-13 17:11:20 -06:00
Matthew Flatt
1800680c6b racket/gui: fix access of scrollbar values for canvas without a scrollbar 2012-08-12 20:17:29 -06:00
Matthew Flatt
d5024f0f20 win64 racket/gui: another work around for Cairo clipping issues
Cairo doesn't seem to deal correctly with an HDC produced
by BeginPaint() that has a clipping region. The problem affects
only Win64. Work around the problem by drawing to a separate
HDC and copying to/from the screen. (To see the problem before
this patch, draw the DrRacket window to the edge of the screen
and back, and observe tha the toolbar doesn't update correctly.)

This change could affect performance, but it should mostly
be limited to refresh when a window moves.
2012-08-08 09:56:44 -06:00
Matthew Flatt
c7d181c2a9 racket/gui, win32: fix problem with mimize for fixed-size window 2012-06-23 04:15:28 -06:00
Matthew Flatt
7a9c8e5d40 racket/gui win32: fix East Asian font problem
When the theme-specified default font has a localized name,
using it as a Pango faily name doesn't work, with the result that
text on controls could be truncated. Get a Pango-friendly
name by converting a LOGFONT to a Pango font description and
getting the name from the font description.
2012-06-06 13:25:14 +08:00
Matthew Flatt
58db5f8b46 racket/gui: implement set-clipboard-bitmap' in clipboard<%>'
Closes PR 12689

Cocoa implementation provided by Jens Axel Søgaard
2012-05-26 19:42:48 -06:00
Matthew Flatt
5b80fd37c7 racket/gui win32: fix screen info to not assume main is first
Thanks to Kieron Hardy for tracking down the problem.
2012-05-26 07:38:24 -06:00