summaryrefslogtreecommitdiff
path: root/indra/llwindow
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llwindow')
-rw-r--r--indra/llwindow/lldragdropwin32.cpp8
-rw-r--r--indra/llwindow/llopenglview-objc.mm20
-rw-r--r--indra/llwindow/llwindowmacosx.cpp7
-rw-r--r--indra/llwindow/llwindowwin32.cpp36
-rw-r--r--indra/llwindow/llwindowwin32.h2
5 files changed, 46 insertions, 27 deletions
diff --git a/indra/llwindow/lldragdropwin32.cpp b/indra/llwindow/lldragdropwin32.cpp
index d00d9ab47e..0d1a47408b 100644
--- a/indra/llwindow/lldragdropwin32.cpp
+++ b/indra/llwindow/lldragdropwin32.cpp
@@ -113,7 +113,7 @@ class LLDragDropWin32Target:
PVOID data = GlobalLock( stgmed.hGlobal );
mDropUrl = std::string( (char*)data );
// XXX MAJOR MAJOR HACK!
- LLWindowWin32 *window_imp = (LLWindowWin32 *)GetWindowLong(mAppWindowHandle, GWL_USERDATA);
+ LLWindowWin32 *window_imp = (LLWindowWin32 *)GetWindowLongPtr( mAppWindowHandle, GWLP_USERDATA );
if (NULL != window_imp)
{
LLCoordGL gl_coord( 0, 0 );
@@ -168,7 +168,7 @@ class LLDragDropWin32Target:
if ( mAllowDrop )
{
// XXX MAJOR MAJOR HACK!
- LLWindowWin32 *window_imp = (LLWindowWin32 *)GetWindowLong(mAppWindowHandle, GWL_USERDATA);
+ LLWindowWin32 *window_imp = (LLWindowWin32 *)GetWindowLongPtr( mAppWindowHandle, GWLP_USERDATA );
if (NULL != window_imp)
{
LLCoordGL gl_coord( 0, 0 );
@@ -215,7 +215,7 @@ class LLDragDropWin32Target:
HRESULT __stdcall DragLeave( void )
{
// XXX MAJOR MAJOR HACK!
- LLWindowWin32 *window_imp = (LLWindowWin32 *)GetWindowLong(mAppWindowHandle, GWL_USERDATA);
+ LLWindowWin32 *window_imp = (LLWindowWin32 *)GetWindowLongPtr( mAppWindowHandle, GWLP_USERDATA );
if (NULL != window_imp)
{
LLCoordGL gl_coord( 0, 0 );
@@ -232,7 +232,7 @@ class LLDragDropWin32Target:
if ( mAllowDrop )
{
// window impl stored in Window data (neat!)
- LLWindowWin32 *window_imp = (LLWindowWin32 *)GetWindowLong( mAppWindowHandle, GWL_USERDATA );
+ LLWindowWin32 *window_imp = (LLWindowWin32 *)GetWindowLongPtr( mAppWindowHandle, GWLP_USERDATA );
if ( NULL != window_imp )
{
POINT pt_client;
diff --git a/indra/llwindow/llopenglview-objc.mm b/indra/llwindow/llopenglview-objc.mm
index 22f3339cf1..c8c086d705 100644
--- a/indra/llwindow/llopenglview-objc.mm
+++ b/indra/llwindow/llopenglview-objc.mm
@@ -232,8 +232,8 @@ attributedStringInfo getSegments(NSAttributedString *str)
NSOpenGLPFADoubleBuffer,
NSOpenGLPFAClosestPolicy,
NSOpenGLPFAAccelerated,
- NSOpenGLPFASampleBuffers, (samples > 0 ? 1 : 0),
- NSOpenGLPFASamples, samples,
+ NSOpenGLPFASampleBuffers, static_cast<NSOpenGLPixelFormatAttribute>(samples > 0 ? 1 : 0),
+ NSOpenGLPFASamples, static_cast<NSOpenGLPixelFormatAttribute>(samples),
NSOpenGLPFAStencilSize, 8,
NSOpenGLPFADepthSize, 24,
NSOpenGLPFAAlphaSize, 8,
@@ -370,8 +370,8 @@ attributedStringInfo getSegments(NSAttributedString *str)
- (void)mouseMoved:(NSEvent *)theEvent
{
float mouseDeltas[2] = {
- [theEvent deltaX],
- [theEvent deltaY]
+ float([theEvent deltaX]),
+ float([theEvent deltaY])
};
callDeltaUpdate(mouseDeltas, 0);
@@ -391,8 +391,8 @@ attributedStringInfo getSegments(NSAttributedString *str)
// The old CoreGraphics APIs we previously relied on are now flagged as obsolete.
// NSEvent isn't obsolete, and provides us with the correct deltas.
float mouseDeltas[2] = {
- [theEvent deltaX],
- [theEvent deltaY]
+ float([theEvent deltaX]),
+ float([theEvent deltaY])
};
callDeltaUpdate(mouseDeltas, 0);
@@ -592,13 +592,13 @@ attributedStringInfo getSegments(NSAttributedString *str)
if (mMarkedTextAllowed)
{
unsigned int selected[2] = {
- selectedRange.location,
- selectedRange.length
+ unsigned(selectedRange.location),
+ unsigned(selectedRange.length)
};
unsigned int replacement[2] = {
- replacementRange.location,
- replacementRange.length
+ unsigned(replacementRange.location),
+ unsigned(replacementRange.length)
};
int string_length = [aString length];
diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp
index 754306b5d2..5f35a0f0f9 100644
--- a/indra/llwindow/llwindowmacosx.cpp
+++ b/indra/llwindow/llwindowmacosx.cpp
@@ -544,7 +544,7 @@ void getPreeditLocation(float *location, unsigned int length)
preeditor->getPreeditLocation(length, &coord, &rect, NULL);
- float c[4] = {coord.mX, coord.mY, 0, 0};
+ float c[4] = {float(coord.mX), float(coord.mY), 0, 0};
convertRectToScreen(gWindowImplementation->getWindow(), c);
@@ -899,7 +899,7 @@ BOOL LLWindowMacOSX::setPosition(const LLCoordScreen position)
{
if(mWindow)
{
- float pos[2] = {position.mX, position.mY};
+ float pos[2] = {float(position.mX), float(position.mY)};
setWindowPos(mWindow, pos);
}
@@ -1758,7 +1758,7 @@ void LLWindowMacOSX::spawnWebBrowser(const std::string& escaped_url, bool async)
LLSD LLWindowMacOSX::getNativeKeyData()
{
LLSD result = LLSD::emptyMap();
-#if 1
+
if(mRawKeyEvent)
{
result["event_type"] = LLSD::Integer(mRawKeyEvent->mEventType);
@@ -1768,7 +1768,6 @@ LLSD LLWindowMacOSX::getNativeKeyData()
result["event_umodchars"] = (mRawKeyEvent->mEventUnmodChars) ? LLSD(LLSD::Integer(mRawKeyEvent->mEventUnmodChars)) : LLSD();
result["event_isrepeat"] = LLSD::Boolean(mRawKeyEvent->mEventRepeat);
}
-#endif
LL_DEBUGS() << "native key data is: " << result << LL_ENDL;
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index 62179e4d80..38f8989797 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -69,6 +69,10 @@ const F32 ICON_FLASH_TIME = 0.5f;
#define WM_DPICHANGED 0x02E0
#endif
+#ifndef USER_DEFAULT_SCREEN_DPI
+#define USER_DEFAULT_SCREEN_DPI 96 // Win7
+#endif
+
extern BOOL gDebugWindowProc;
LPWSTR gIconResource = IDI_APPLICATION;
@@ -790,7 +794,7 @@ void LLWindowWin32::close()
LL_DEBUGS("Window") << "Destroying Window" << LL_ENDL;
// Don't process events in our mainWindowProc any longer.
- SetWindowLong(mWindowHandle, GWL_USERDATA, NULL);
+ SetWindowLongPtr(mWindowHandle, GWLP_USERDATA, NULL);
// Make sure we don't leave a blank toolbar button.
ShowWindow(mWindowHandle, SW_HIDE);
@@ -1101,7 +1105,14 @@ BOOL LLWindowWin32::switchContext(BOOL fullscreen, const LLCoordScreen &size, BO
mhInstance,
NULL);
- LL_INFOS("Window") << "window is created." << LL_ENDL ;
+ if (mWindowHandle)
+ {
+ LL_INFOS("Window") << "window is created." << LL_ENDL ;
+ }
+ else
+ {
+ LL_WARNS("Window") << "Window creation failed, code: " << GetLastError() << LL_ENDL;
+ }
//-----------------------------------------------------------------------
// Create GL drawing context
@@ -1416,7 +1427,16 @@ BOOL LLWindowWin32::switchContext(BOOL fullscreen, const LLCoordScreen &size, BO
mhInstance,
NULL);
- LL_INFOS("Window") << "recreate window done." << LL_ENDL ;
+
+ if (mWindowHandle)
+ {
+ LL_INFOS("Window") << "recreate window done." << LL_ENDL ;
+ }
+ else
+ {
+ // Note: if value is NULL GetDC retrieves the DC for the entire screen.
+ LL_WARNS("Window") << "Window recreation failed, code: " << GetLastError() << LL_ENDL;
+ }
if (!(mhDC = GetDC(mWindowHandle)))
{
@@ -1569,7 +1589,7 @@ BOOL LLWindowWin32::switchContext(BOOL fullscreen, const LLCoordScreen &size, BO
LL_DEBUGS("Window") << "Keeping vertical sync" << LL_ENDL;
}
- SetWindowLong(mWindowHandle, GWL_USERDATA, (U32)this);
+ SetWindowLongPtr(mWindowHandle, GWLP_USERDATA, (LONG_PTR)this);
// register this window as handling drag/drop events from the OS
DragAcceptFiles( mWindowHandle, TRUE );
@@ -1881,7 +1901,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
// This is to avoid triggering double click teleport after returning focus (see MAINT-3786).
static bool sHandleDoubleClick = true;
- LLWindowWin32 *window_imp = (LLWindowWin32 *)GetWindowLong(h_wnd, GWL_USERDATA);
+ LLWindowWin32 *window_imp = (LLWindowWin32 *)GetWindowLongPtr( h_wnd, GWLP_USERDATA );
if (NULL != window_imp)
@@ -2646,20 +2666,20 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
}
case WM_SETFOCUS:
- window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_SETFOCUS");
if (gDebugWindowProc)
{
LL_INFOS("Window") << "WINDOWPROC SetFocus" << LL_ENDL;
}
+ window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_SETFOCUS");
window_imp->mCallbacks->handleFocus(window_imp);
return 0;
case WM_KILLFOCUS:
- window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_KILLFOCUS");
if (gDebugWindowProc)
{
LL_INFOS("Window") << "WINDOWPROC KillFocus" << LL_ENDL;
}
+ window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_KILLFOCUS");
window_imp->mCallbacks->handleFocusLost(window_imp);
return 0;
@@ -3817,7 +3837,7 @@ LLWindowCallbacks::DragNDropResult LLWindowWin32::completeDragNDropRequest( cons
// When it handled the message, the value to be returned from
// the Window Procedure is set to *result.
-BOOL LLWindowWin32::handleImeRequests(U32 request, U32 param, LRESULT *result)
+BOOL LLWindowWin32::handleImeRequests(WPARAM request, LPARAM param, LRESULT *result)
{
if ( mPreeditor )
{
diff --git a/indra/llwindow/llwindowwin32.h b/indra/llwindow/llwindowwin32.h
index cd6e5e4fa8..d72623a6f4 100644
--- a/indra/llwindow/llwindowwin32.h
+++ b/indra/llwindow/llwindowwin32.h
@@ -148,7 +148,7 @@ protected:
U32 fillReconvertString(const LLWString &text, S32 focus, S32 focus_length, RECONVERTSTRING *reconvert_string);
void handleStartCompositionMessage();
void handleCompositionMessage(U32 indexes);
- BOOL handleImeRequests(U32 request, U32 param, LRESULT *result);
+ BOOL handleImeRequests(WPARAM request, LPARAM param, LRESULT *result);
protected:
//