Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Setting up for a real window system.
|
|
Setting up for a real window system.
|
|
and not unexpectedly quitting an application.
Fixes #360
|
|
Fixes #3.
|
|
Fixes #347.
|
|
Fixes #54.
|
|
Fixes #340.
Fixes #343.
|
|
Fixes #339.
|
|
This hides the menu on dock on all screens which is more than we want.
The code was added to fix a problem with Catalina that I can no longer
reproduce, so I guess it works now.
Fixes #336.
|
|
Unfortunately this hides the dock even if it is on a
different screen. We need to figure out how to tell.
But this is more usable than not.
Probably.
|
|
`window:willUseFullScreenPresentationOptions:` is an instance method
of the protocol `NSWindowDelegate`.
|
|
Fixes #273.
|
|
Need to think a bit more about locking,
but overall it's a working devdraw.
Multiclient mode may not be working
but nothing is using it yet.
|
|
|
|
|
|
Also turn mac-srv.c into a generic srv.c,
so we can remove the duplication with x11-srv.c.
|
|
|
|
|
|
We were using osx- and cocoa- but it's not even OS X anymore.
|
|
|
|
Now that we only have Metal, we can drop the -metal.
Also now that Carbon is gone we can drop the macargv.c,
and then the -objc from object file names.
|
|
We didn't start using Metal until macOS 10.14,
but it was available on 10.13, which is currently
the oldest Apple-supported version of macOS.
Simplify by deleting the old code.
|
|
|
|
Remote whitespace at the ends of lines.
Remove blank lines from the ends of files.
Change modes on source files so that they
are not executable.
Signed-off-by: Dan Cross <cross@gajendra.net>
|
|
The immediate display of the screen sometimes miss the update from
the CPU side memory. No obvious synchronization mechanism is available.
In order to make sure the screen updates properly, we set needsDisplay
again after 16ms delay to ensure a second screen update.
|
|
This supports non-live window resize.
|
|
* devdraw: cocoa metal screen uses a dirty hack to make everything smooth
* devdraw: cocoa metal screen uses a layer to make fullscreen applications behave
* devdraw: macOS cocoa metal fix resizeimg without img
* devdraw: macOS cocoa metal uses blit instead of render
We directly use the blit command encoder to copy texture to the
framebuffer. We no longer need to compile the metal shader every
time the application starts just for rendering a flat 2D surface.
* travis: add osx images covering 10.13 and 10.14
|
|
|
|
Some libraries that depend on devdraw don't know about
32x32 cursor -- mainly 9fans.net/go/draw.
|
|
|
|
|
|
It is possible to receive multiple screen resize events, and resizeimg
would be called for different sizes, before _flushmemscreen actually
gets called with rectangle sizes different from the most recent
resizeimg call. The size mismatch would trigger illegal memory
access inside _flushmemscreen.
This commit protects _flushmemscreen by returning early if the requested
rectangle is outside of the current texture rectangle.
|
|
Fixes bug where devdraw does not "notice" mouse position after task
switch. Fixes https://github.com/9fans/plan9port/issues/232.
|
|
|
|
This replaces the pixel-art scaling algorithm used for upscaling before.
The results were not crisp enough to serve as everyday cursors.
|
|
Add a new macOS cocoa screen, cocoa-screen-metal.m.
Rewrite the macOS cocoa drawing code to use the builtin runloop,
and use Metal to push pixels with CAMetalLayer.
Remove all of the deprecated code, and simplify some of the logic.
Modify mkwsysrules.sh such that the new code is used only when
the system version is equal or higher than 10.14.
Allow touch events to simulate mouse clicks:
three finger tap for the middle mouse button;
four finger tap for the 2-1 chord.
Support Tresize.
Scale 16x16 Cursor up to 32x32 with an EPX algorithm.
Support macOS input sources including the basic dead keys and the
advanced CJK input methods.
Increase the communication buffers in cocoa-srv.c to allow more
input, especially for long sentences prepared by the macOS input
souces.
|
|
See https://plan9port-review.googlesource.com/c/plan9/+/1470
for discussion of the approach, especially Michael Stapleberg's comment:
Note that chromium, firefox and others have tried this and then switched to using the Xft.dpi X resource, see e.g. https://code.google.com/p/chromium/codesearch#chromium/src/chrome/browser/ui/libgtk2ui/gtk2_ui.cc and especially http://sources.debian.net/src/gnome-settings-daemon/3.18.2-1/plugins/xsettings/gsd-xsettings-manager.c/?hl=824#L80 for some anecdata about why this approach doesn’t work out.
The Xft.dpi resource is being set accurately by desktop environments (GNOME, KDE, …) and can easily be changed by users of niche window managers by editing ~/.Xresources.
I suggest we check only Xft.dpi, without considering the DPI environment variable or the monitor width/height.
|
|
This makes 2-1 chords possible with touchpad on a mac laptop.
|
|
|
|
After making the build on macOS silent on commit 310ae03,
the build was broken on macOS lesser than 10.12 (Sierra).
This commit conditionally checks the version the of the
SDK before using the defined values for silent build.
Fixes #66.
|
|
Change-Id: Ide32a9397701085b17fbd42f0866eb3de11e4190
Reviewed-on: https://plan9port-review.googlesource.com/2940
Reviewed-by: Russ Cox <rsc@swtch.com>
|
|
Should be a clean build now.
Change-Id: Id3460371cb5e8d4071f8faa9c2aec870d213a067
Reviewed-on: https://plan9port-review.googlesource.com/2781
Reviewed-by: Russ Cox <rsc@swtch.com>
|
|
Change-Id: Ie818f9246f749a9d3293019a1e01be4ce7e368b9
Reviewed-on: https://plan9port-review.googlesource.com/1400
Reviewed-by: Russ Cox <rsc@swtch.com>
|
|
Change-Id: I7585870aee57c7482ebdd19c117be7982123ce79
Reviewed-on: https://plan9port-review.googlesource.com/1130
Reviewed-by: Russ Cox <rsc@google.com>
|
|
Change-Id: I243a1fe3f9ec0841570c4cd69c02be9cfd9ade50
Reviewed-on: https://plan9port-review.googlesource.com/1172
Reviewed-by: Russ Cox <rsc@swtch.com>
|
|
On OSX 10.10, when you open an application that depends on devdraw, the
title bar only shows the first letter of the application's name. The
patch sets a default title as soon as the window is created, which
fixes this issue.
On OSX 10.10, when you open an application that depends on devdraw, this
application is opened in top of other windows, however the menu bar is
not updated. The patch calls topwin() at the end of makewin() in
src/cmd/devdraw/cocoa-screen.m .
Change-Id: Ie036928b5574c8df20ad8b2b54047e2f7a22bb41
Reviewed-on: https://plan9port-review.googlesource.com/1091
Reviewed-by: Russ Cox <rsc@swtch.com>
|
|
LGTM=rsc
R=rsc
https://codereview.appspot.com/33240044
|
|
TBR=rsc
https://codereview.appspot.com/53820044
|
|
R=rsc
CC=r
https://codereview.appspot.com/12577043
|