From 522a4d02e3f87607dfcda0c7c391ea2c1f40813e Mon Sep 17 00:00:00 2001 From: Mnikolenko ProductEngine Date: Tue, 3 Dec 2013 14:37:55 +0200 Subject: MAINT-3506 FIXED Allocate appropriate amount of memory for temp variable. --- indra/llwindow/llwindowmacosx-objc.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/llwindow') diff --git a/indra/llwindow/llwindowmacosx-objc.mm b/indra/llwindow/llwindowmacosx-objc.mm index 0768d0352e..ace1ec0e73 100755 --- a/indra/llwindow/llwindowmacosx-objc.mm +++ b/indra/llwindow/llwindowmacosx-objc.mm @@ -91,7 +91,7 @@ const unsigned short *copyFromPBoard() NSArray *objToPaste = [pboard readObjectsForClasses:classArray options:[NSDictionary dictionary]]; str = [objToPaste objectAtIndex:0]; } - unichar* temp = (unichar*)calloc([str length], sizeof(unichar)); + unichar* temp = (unichar*)calloc([str length]+1, sizeof(unichar)); [str getCharacters:temp]; [pool release]; return temp; -- cgit v1.2.3 From ddd6b8f91baa4ce408682925e12c4a58b8139b78 Mon Sep 17 00:00:00 2001 From: Aura Linden Date: Tue, 17 Dec 2013 00:12:26 -0800 Subject: Mac Fullscreen fix for MAINT-3288 and MAINT-3135 --- indra/llwindow/llopenglview-objc.h | 3 +++ indra/llwindow/llopenglview-objc.mm | 21 +++++++++++++++++---- indra/llwindow/llwindow.h | 2 +- indra/llwindow/llwindowmacosx-objc.h | 1 + indra/llwindow/llwindowmacosx-objc.mm | 5 +++++ indra/llwindow/llwindowmacosx.h | 5 ++++- 6 files changed, 31 insertions(+), 6 deletions(-) (limited to 'indra/llwindow') diff --git a/indra/llwindow/llopenglview-objc.h b/indra/llwindow/llopenglview-objc.h index 1e0e47cd02..f1fab3b2c6 100644 --- a/indra/llwindow/llopenglview-objc.h +++ b/indra/llwindow/llopenglview-objc.h @@ -42,6 +42,7 @@ unsigned int mMarkedTextLength; bool mMarkedTextAllowed; bool mSimulatedRightClick; + bool mOldResize; } - (id) initWithSamples:(NSUInteger)samples; - (id) initWithSamples:(NSUInteger)samples andVsync:(BOOL)vsync; @@ -49,6 +50,8 @@ - (void)commitCurrentPreedit; +- (void) setOldResize:(bool)oldresize; + // rebuildContext // Destroys and recreates a context with the view's internal format set via setPixelFormat; // Use this in event of needing to rebuild a context for whatever reason, without needing to assign a new pixel format. diff --git a/indra/llwindow/llopenglview-objc.mm b/indra/llwindow/llopenglview-objc.mm index 7415c9d8dc..82ee5ccce4 100644 --- a/indra/llwindow/llopenglview-objc.mm +++ b/indra/llwindow/llopenglview-objc.mm @@ -94,8 +94,11 @@ attributedStringInfo getSegments(NSAttributedString *str) // Force a high quality update after live resizing - (void) viewDidEndLiveResize { - NSSize size = [self frame].size; - callResize(size.width, size.height); + if (mOldResize) //Maint-3135 + { + NSSize size = [self frame].size; + callResize(size.width, size.height); + } } - (unsigned long)getVramSize @@ -124,10 +127,18 @@ attributedStringInfo getSegments(NSAttributedString *str) object:[self window]]; } +- (void)setOldResize:(bool)oldresize +{ + mOldResize = oldresize; +} + - (void)windowResized:(NSNotification *)notification; { - //NSSize size = [self frame].size; - //callResize(size.width, size.height); + if (!mOldResize) //Maint-3288 + { + NSSize size = [self frame].size; + callResize(size.width, size.height); + } } - (void)dealloc @@ -204,6 +215,8 @@ attributedStringInfo getSegments(NSAttributedString *str) [glContext setValues:(const GLint*)0 forParameter:NSOpenGLCPSwapInterval]; } + mOldResize = false; + return self; } diff --git a/indra/llwindow/llwindow.h b/indra/llwindow/llwindow.h index 78186004b8..50ea614634 100755 --- a/indra/llwindow/llwindow.h +++ b/indra/llwindow/llwindow.h @@ -123,7 +123,7 @@ public: virtual void swapBuffers() = 0; virtual void bringToFront() = 0; virtual void focusClient() { }; // this may not have meaning or be required on other platforms, therefore, it's not abstract - + virtual void setOldResize(bool oldresize) { }; // handy coordinate space conversion routines // NB: screen to window and vice verse won't work on width/height coordinate pairs, // as the conversion must take into account left AND right border widths, etc. diff --git a/indra/llwindow/llwindowmacosx-objc.h b/indra/llwindow/llwindowmacosx-objc.h index 81b25601a9..d64525fbdd 100755 --- a/indra/llwindow/llwindowmacosx-objc.h +++ b/indra/llwindow/llwindowmacosx-objc.h @@ -74,6 +74,7 @@ void showNSCursor(); void hideNSCursorTillMove(bool hide); void requestUserAttention(); long showAlert(std::string title, std::string text, int type); +void setResizeMode(bool oldresize, void* glview); NSWindowRef createNSWindow(int x, int y, int width, int height); diff --git a/indra/llwindow/llwindowmacosx-objc.mm b/indra/llwindow/llwindowmacosx-objc.mm index ace1ec0e73..1a21bf8430 100755 --- a/indra/llwindow/llwindowmacosx-objc.mm +++ b/indra/llwindow/llwindowmacosx-objc.mm @@ -222,6 +222,11 @@ GLViewRef createOpenGLView(NSWindowRef window, unsigned int samples, bool vsync) return glview; } +void setResizeMode(bool oldresize, void* glview) +{ + [(LLOpenGLView *)glview setOldResize:oldresize]; +} + void glSwapBuffers(void* context) { [(NSOpenGLContext*)context flushBuffer]; diff --git a/indra/llwindow/llwindowmacosx.h b/indra/llwindow/llwindowmacosx.h index 6a6b39e674..825fd05c5f 100755 --- a/indra/llwindow/llwindowmacosx.h +++ b/indra/llwindow/llwindowmacosx.h @@ -152,7 +152,10 @@ protected: BOOL resetDisplayResolution(); BOOL shouldPostQuit() { return mPostQuit; } - + + //Satisfy MAINT-3135 and MAINT-3288 with a flag. + /*virtual */ void setOldResize(bool oldresize) {setResizeMode(oldresize, mGLView); } + protected: // -- cgit v1.2.3