Commit Graph

52 Commits (bd008a170898e69beeb8bc0481b4bfd94de86c55)

Author SHA1 Message Date
andreykproductengine a0bf70b41d SL-11592 [Mac] Ability to bind extra mouse buttons for push to talk 2019-07-18 19:18:02 +03:00
Nat Goodspeed 468fbd6b51 Return CGPoint and CGSize by value, not const ref to temporary. 2019-04-25 15:11:55 -04:00
ruslantproductengine acc86a9139 SL-9766 [Render] [Mac] Alt + left mouse click has severely impaired functions
SL-10019 - [Mac] [Render] Right-click context menu immediately disappears when clicking any place in the ‘Inventory’ floater
SL-9984 - [Retina] Camera frustum, do not display correctly on "WORLD MAP" window.
SL-10027 - [Mac] [Render] Add toggle for Retina support to mitigate FPS loss

Re-FIX for Retina support.
2018-11-26 18:02:44 +02:00
ruslantproductengine eaeb8605d0 SL-9774 [Render] dragging active Second Life session to second monitor zooms in making viewer unusable 2018-10-23 19:24:03 +03:00
ruslantproductengine 20a2019e4b MAINT-9076 Improved support for Retina Displays 2018-09-03 17:22:15 +03:00
Nat Goodspeed 464a0df4c1 DRTVWR-418: Unify control flow through LLAppViewer across platforms.
The LLApp API used to consist of init(), mainLoop(), cleanup() methods. This
makes sense -- but on Mac that structure was being subverted. The method
called mainLoop() was in fact being called once per frame. There was
initialization code in the method, which (on Mac) needed to be skipped with an
already-initialized bool. There was a 'while' loop which (on Mac) needed to be
turned into an 'if' instead so the method would return after every frame.

Rename LLApp::mainLoop() to frame(). Propagate through subclasses LLAppViewer
and LLCrashLogger. Document the fact that frame() returns true to mean "done."
(This was always the case, but had to be inferred from the code.)

Rename the Mac Objective-C function mainLoop to oneFrame. Rename the C++ free
function it calls from runMainLoop() to pumpMainLoop(). Add comments to
llappdelegate-objc.mm explaining (inferred) control flow.

Change the Linux viewer main() and the Windows viewer WINMAIN() from a single
LLAppViewer::mainLoop() call to repeatedly call frame() until it returns true.

Move initialization code from the top of LLAppViewer::frame() to the init()
method, where it more properly belongs. Remove corresponding
mMainLoopInitialized flag (and all references) from LLAppViewer.

Remove 'while (! LLApp::isExiting())' (or on Mac, 'if (! LLApp::isExiting())')
from LLAppViewer::frame() -- thus unindenting the whole body of the 'while'
and causing many lines of apparent change. (Apologies to reviewers.)

There are four LLApp states: APP_STATUS_RUNNING, APP_STATUS_QUITTING,
APP_STATUS_STOPPED and APP_STATUS_ERROR. Change LLAppViewer::frame() return
value from (isExiting()) (QUITTING or ERROR) to (! isRunning()). I do not know
under what circumstances the state might transition to STOPPED during a
frame() call, but I'm quite sure that if it does, we don't want to call
frame() again. We only want a subsequent call if the state is RUNNING.

Also rename mainLoop() method in LLCrashLogger subclasses
LLCrashLoggerWindows, LLCrashLoggerMac, LLCrashLoggerLinux. Of course it's
completely up to the frame() method whether to yield control; none of those in
fact do. Honor protocol by returning true (frame() is done), even though each
one's main() caller ignores the return value.

In fact LLCrashLoggerWindows::mainLoop() wasn't using the return protocol
correctly anyway, returning wParam or 0 or 1 -- possibly because the return
protocol was never explicitly documented. It should always return true: "I'm
done, don't call me again."
2016-06-30 16:51:50 -04:00
Oz Linden 950c41d184 merge 4.0.4-release and MAINT-5974 2016-05-06 10:28:42 -04:00
AndreyL ProductEngine 56f736b654 Merged in cinderblocks/storm-2127 2016-04-21 22:48:32 +03:00
Cinder c2c0c537bb STORM-2127 - Fix NSException when assigning values that don't exist in cocoa modifier key event. 2016-04-20 16:13:17 -06:00
Mnikolenko ProductEngine 272d40a089 MAINT-6239 [Mac] Computer cursor appears attached to crosshair after using modifier keys in mouselook 2016-03-29 13:30:00 +03:00
Mnikolenko ProductEngine ca1d7da571 MAINT-3171 Alt-clicking while moving mouse can move the camera significantly 2016-03-21 17:58:39 +02:00
Oz Linden bc22e58743 merge changes for 4.0.1-release 2016-01-15 16:55:04 -05:00
rider c2ad041c23 Encode keyboard event for reconstruction in the plugin. 2015-11-13 16:22:34 -08:00
Oz Linden c8726aba30 remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
rider bd817f6f42 MAINT-5754: Basic keyboard functionality on the Mac. Still incomplete 2015-11-06 14:12:30 -08:00
pavelk_productengine e92e72ff3a MAINT-5106 FIXED [MAC] if SL viewer is not running, clicking on SLURL launches viewer, BUT start location is not set 2015-04-24 23:24:44 +03:00
Mnikolenko ProductEngine c62ac0cae7 MAINT-3569 FIXED Handle window hide/unhide and minimize/unminimize events on mac. 2014-09-11 11:59:19 +03:00
Aura Linden ddd6b8f91b Mac Fullscreen fix for MAINT-3288 and MAINT-3135 2013-12-17 00:12:26 -08:00
Oz Linden 4dccf30bf3 merge changes for 3.6.7-release 2013-10-03 18:04:27 -04:00
Graham Madarasz (Graham Linden) 4bc9393240 MAINT-3155 add cocoa equiv for former AppleEventManager shenanigans for SLURL handling 2013-09-26 18:53:12 -07:00
Drake Arconis 0142a0c6a9 OPEN-189 Add missing header guard 2013-09-11 19:02:36 -04:00
Geenz a787e272c3 Alert box support! 2013-07-11 21:31:17 -04:00
Geenz b2bec3f99c STORM-1942: dock icon bouncing unimplemented 2013-07-11 19:37:08 -04:00
Geenz 2837ca7a47 This seems to be on par with viewer-release at this point. 2013-06-17 17:08:48 -04:00
Geenz 2253d22eb8 Have showInputWindow hand off input events to the bottom line input window. 2013-06-17 10:28:32 -04:00
Geenz 93531f3ba8 Insert text into the input window when we attempt to insert text without a pre-editor. Also handle backspace as a special case when determining if the input window needs to be displayed. 2013-06-17 08:59:01 -04:00
Geenz cda10266ae Only show the input window when we attempt to add marked text, *and* we can't submit marked text directly to the viewer. 2013-05-23 08:50:05 -04:00
Geenz 3779e51bfc Merged with https://bitbucket.org/lindenlab/viewer-beta 2013-05-13 22:22:51 -04:00
Geenz aa0cb35db5 Support the committing of the current pre edit string when language input is interrupted per the viewer's original pre edit functionality. 2013-04-07 11:33:39 -04:00
Geenz 2656b1f405 First pass at adding a viable replacement for TSM's old UseInputWindow method (which is now deprecated with seemingly no Cocoa replacement). 2013-04-01 08:15:12 -04:00
Graham Madarasz bf6182daa8 Update Mac and Windows breakpad builds to latest 2013-03-29 07:50:08 -07:00
Geenz 80a79e5d7b IME support is pretty much finished at this point. 2013-03-27 08:49:45 -04:00
Geenz 258b77b647 Additional IME support. LLPreeditor is largely good to go at this point, but there's still some work to do in getSegments. 2013-03-25 05:26:55 -04:00
Geenz 64c0455db5 More LLPreeditor work. 2013-03-19 23:02:47 -04:00
Geenz 3c60fb24ca Merge 2013-03-11 10:26:52 -04:00
Geenz 5caa7a465e Bug fixing and prep-work for IME support (along with refactored text input in general). 2013-03-11 10:16:22 -04:00
Graham Madarasz (Graham Linden) f5516e0fc0 For MAINT-2404 Fixes detection of VRAM on OSX removed along with other AGL code. Code Review: callum 2013-02-27 06:46:53 -08:00
Geenz 21aa4b9c24 Setup the quit handler for when the user attempts to close the window. This restores the previous functionality of asking the user if they want to quit. 2013-02-26 16:18:42 -05:00
Geenz e19db56688 Fix for antialiasing and VSync not being enabled properly. 2013-02-25 15:35:21 -05:00
Geenz 4a935b6815 Fix inconsistent handling of Control, Alt, and Shift keys through a new modifier update callback. 2013-02-22 16:41:49 -05:00
Geenz 461ab912a5 Initial Cocoa drag and drop support. 2013-01-22 19:59:49 -05:00
Geenz 09b07e3619 Big change set:
- LLAppDelegate header relocated to LLWindow.  Definition is still present in secondlife-bin (for compatibility reasons when loading a nib).
- Return key handling fixed.
- Command key now acts the same as the control key by issuing control character codes when the command key is pressed.
- We now retrieve the window pointer directly from the app delegate in LLWindow.
2013-01-08 16:22:54 -05:00
Geenz 9ce3ab1a52 Fixed the enter and return keys not being sent appropriately as unicode characters. 2013-01-02 18:53:44 -05:00
Geenz ddb48d51d9 More things in this commit:
- Removed the callback system in favor of simply defining functions in a header to later be implemented in whichever file is most convenient for what we want to do (i.e., calling LLWindow callbacks within LLWindowMacOSX, setting cursors in llwindowmacosx-objc.mm, etc.)
- Viewer shutdown now works appropriately
- Added a bit of debugging code to test if a key has been handled by the UI or not (useful for tracking down the mystery of the enter key not being handled)
- Setup a cocoa quit handler within the application delegate that intercepts any termination requests
2013-01-01 11:32:53 -05:00
Geenz bd152c1fb7 Huge amount of refactoring to use Cocoa here:
- Updated to .xib format.  To produce a new nib (which is required after changing the xib file), use "ibtool SecondLife.xib --compile SecondLife.nib" within the newview directory.
- xib file now defines the viewer's window.  VIews are still being pragmatically added to the main window.  This may change in the future.
- LLAppViewer's main loop has been slightly refactored to be executed on a timer for OS X.  This probably needs a bit more work.
- Event handling still needs more work to work within a timer based event loop.  It works fairly sporadically at the moment, as if events are being dropped between timer executions, at least for the mouse.
- Carbon has been purged from the viewer's startup, and from LLWindow entirely.  There's likely still a few odds and ends fragmented throughout the viewer and its dependencies.  Need to track these down.
- LLAppViewerMacOSX now uses NSApplicationMain, and also implements the NSApplicationDelegate protocol in LLAppDelegate.
- Fullscreen support has been implemented for OS X 10.7+
This is still a work in progress, however at this stage everything needed for a functional viewer is (mostly) complete.  From here, it's mostly just bug hunting and fixing.
2012-12-29 06:59:43 -05:00
Geenz c8aa1fb7c8 LLWindow: Move to using Cocoa for window and view creation along with setting up callbacks for event handling as such. 2012-12-17 18:00:30 -05:00
Oz Linden 06b0d72efa Change license from GPL to LGPL (version 2.1) 2010-08-13 07:24:57 -04:00
Igor Borovkov c67bc96278 Backed out changeset f4c0761897c6 EXT-4820([NUX] Viewer dimensions on first-run)
by which "moved LLDisplayInfo to llwindow, implemented getting the width/height of screen for mac os and linux."

--HG--
branch : product-engine
2010-03-18 16:31:09 +02:00
Eugene Mutavchi 48fd4c8d14 Working on major bug EXT-4820([NUX] Viewer dimensions on first-run) - moved LLDisplayInfo to llwindow, implemented getting the width/height of screen for mac os and linux.
--HG--
branch : product-engine
2010-03-05 21:36:41 +02:00
Aaron Brashears e3cf284388 Result of svn merge -r107256:107258 svn+ssh://svn/svn/user/phoenix/license_2009_merge into trunk. QAR-1165 2009-01-08 00:05:06 +00:00