diff options
| author | Seth ProductEngine <slitovchuk@productengine.com> | 2011-11-30 01:01:22 +0200 | 
|---|---|---|
| committer | Seth ProductEngine <slitovchuk@productengine.com> | 2011-11-30 01:01:22 +0200 | 
| commit | 1a7e49ece8e9811ef2fceaebd38178c6ae7b8a46 (patch) | |
| tree | 7e945563ff7aae6466c4ce504d3db565f70b3384 | |
| parent | adeb71d98279fc4e8af7859cd36114be9f95e6da (diff) | |
EXP-1580 FIXED applying "MinWindowWidth" and "MinWindowHeight" settings to Linux viewer window.
Added minimum size setting method for X11 viewer window on Linux.
| -rw-r--r-- | indra/llwindow/llwindowsdl.cpp | 41 | ||||
| -rw-r--r-- | indra/llwindow/llwindowsdl.h | 2 | 
2 files changed, 20 insertions, 23 deletions
| diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index a70791d39f..10f2c2f04d 100644 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -179,20 +179,6 @@ Display* LLWindowSDL::get_SDL_Display(void)  	}  	return NULL;  } - -void LLWindowSDL::setXWindowMinSize() -{ -	// Set the minimum size limits for X11 window -	// so the window manager doesn't allow resizing below those limits. -	XSizeHints* hints = XAllocSizeHints(); -	hints->flags |= PMinSize; -	hints->min_width = mMinWindowWidth; -	hints->min_height = mMinWindowHeight; - -	XSetWMNormalHints(mSDL_Display, mSDL_XWindowID, hints); - -	XFree(hints); -}  #endif // LL_X11 @@ -752,8 +738,6 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B  			mSDL_XWindowID = info.info.x11.wmwindow;  			Lock_Display = info.info.x11.lock_func;  			Unlock_Display = info.info.x11.unlock_func; - -			setXWindowMinSize();  		}  		else  		{ @@ -1050,6 +1034,25 @@ void LLWindowSDL::setMouseClipping( BOOL b )      //SDL_WM_GrabInput(b ? SDL_GRAB_ON : SDL_GRAB_OFF);  } +// virtual +void LLWindowSDL::setMinSize(U32 min_width, U32 min_height) +{ +	LLWindow::setMinSize(min_width, min_height); + +#if LL_X11 +	// Set the minimum size limits for X11 window +	// so the window manager doesn't allow resizing below those limits. +	XSizeHints* hints = XAllocSizeHints(); +	hints->flags |= PMinSize; +	hints->min_width = mMinWindowWidth; +	hints->min_height = mMinWindowHeight; + +	XSetWMNormalHints(mSDL_Display, mSDL_XWindowID, hints); + +	XFree(hints); +#endif +} +  BOOL LLWindowSDL::setCursorPosition(const LLCoordWindow position)  {  	BOOL result = TRUE; @@ -1880,12 +1883,6 @@ void LLWindowSDL::gatherInput()      			}                  break;  		} -		 -#if LL_X11 -		// The minimum size limits should be reset after -		// each successful SDL_SetVideoMode() call. -		setXWindowMinSize(); -#endif  		mCallbacks->handleResize(this, width, height);                  break; diff --git a/indra/llwindow/llwindowsdl.h b/indra/llwindow/llwindowsdl.h index a98b1b74bd..76019999b1 100644 --- a/indra/llwindow/llwindowsdl.h +++ b/indra/llwindow/llwindowsdl.h @@ -76,6 +76,7 @@ public:  	/*virtual*/ void captureMouse();  	/*virtual*/ void releaseMouse();  	/*virtual*/ void setMouseClipping( BOOL b ); +	/*virtual*/	void setMinSize(U32 min_width, U32 min_height);  	/*virtual*/ BOOL isClipboardTextAvailable();  	/*virtual*/ BOOL pasteTextFromClipboard(LLWString &dst); @@ -140,7 +141,6 @@ public:  #if LL_X11  	static Window get_SDL_XWindowID(void);  	static Display* get_SDL_Display(void); -	void setXWindowMinSize();  #endif // LL_X11	  protected: | 
