Fix windows not being hidden initially
This commit is contained in:
@@ -111,34 +111,7 @@ bool SDLPlatform::CheckWindowDragging(Window* window, WindowHitCodes hit)
|
|||||||
bool handled = false;
|
bool handled = false;
|
||||||
window->OnLeftButtonHit(hit, handled);
|
window->OnLeftButtonHit(hit, handled);
|
||||||
if (handled)
|
if (handled)
|
||||||
{
|
|
||||||
DraggedWindowId = window->_windowId;
|
DraggedWindowId = window->_windowId;
|
||||||
LOG(Info, "Dragging: {}", window->_settings.Title);
|
|
||||||
|
|
||||||
String dockHintWindow("DockHint.Window");
|
|
||||||
Window* window = nullptr;
|
|
||||||
WindowsManager::WindowsLocker.Lock();
|
|
||||||
for (int32 i = 0; i < WindowsManager::Windows.Count(); i++)
|
|
||||||
{
|
|
||||||
if (WindowsManager::Windows[i]->_title.Compare(dockHintWindow) == 0)
|
|
||||||
//if (WindowsManager::Windows[i]->_windowId == DraggedWindowId)
|
|
||||||
{
|
|
||||||
window = WindowsManager::Windows[i];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
WindowsManager::WindowsLocker.Unlock();
|
|
||||||
|
|
||||||
Float2 mousePos;
|
|
||||||
auto buttons = SDL_GetGlobalMouseState(&mousePos.X, &mousePos.Y);
|
|
||||||
if (window != nullptr)
|
|
||||||
{
|
|
||||||
/*int top, left, bottom, right;
|
|
||||||
SDL_GetWindowBordersSize(window->_window, &top, &left, &bottom, &right);
|
|
||||||
mousePos += Float2(left, -top);
|
|
||||||
Input::Mouse->OnMouseDown(mousePos, MouseButton::Left, window);*/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return handled;
|
return handled;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,20 +176,16 @@ void SDLPlatform::Tick()
|
|||||||
|
|
||||||
SDL_PumpEvents();
|
SDL_PumpEvents();
|
||||||
SDL_Event events[32];
|
SDL_Event events[32];
|
||||||
int count;
|
int count = SDL_PeepEvents(events, SDL_arraysize(events), SDL_GETEVENT, SDL_EVENT_FIRST, SDL_EVENT_LAST);
|
||||||
while ((count = SDL_PeepEvents(events, SDL_arraysize(events), SDL_GETEVENT, SDL_EVENT_FIRST, SDL_EVENT_LAST)))
|
for (int i = 0; i < count; ++i)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < count; ++i)
|
SDLWindow* window = SDLWindow::GetWindowFromEvent(events[i]);
|
||||||
{
|
if (window)
|
||||||
SDLWindow* window = SDLWindow::GetWindowFromEvent(events[i]);
|
window->HandleEvent(events[i]);
|
||||||
if (window)
|
else if (events[i].type >= SDL_EVENT_JOYSTICK_AXIS_MOTION && events[i].type <= SDL_EVENT_GAMEPAD_STEAM_HANDLE_UPDATED)
|
||||||
window->HandleEvent(events[i]);
|
SDLInput::HandleEvent(nullptr, events[i]);
|
||||||
else if (events[i].type >= SDL_EVENT_JOYSTICK_AXIS_MOTION && events[i].type <= SDL_EVENT_GAMEPAD_STEAM_HANDLE_UPDATED)
|
else
|
||||||
SDLInput::HandleEvent(nullptr, events[i]);
|
SDLPlatform::HandleEvent(events[i]);
|
||||||
else
|
|
||||||
SDLPlatform::HandleEvent(events[i]);
|
|
||||||
}
|
|
||||||
SDL_PumpEvents();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ SDLWindow::SDLWindow(const CreateWindowSettings& settings)
|
|||||||
_settings.ShowAfterFirstPaint = _showAfterFirstPaint = false;
|
_settings.ShowAfterFirstPaint = _showAfterFirstPaint = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 flags = 0;
|
uint32 flags = SDL_WINDOW_HIDDEN;
|
||||||
if (_settings.Type == WindowType::Utility)
|
if (_settings.Type == WindowType::Utility)
|
||||||
flags |= SDL_WINDOW_UTILITY;
|
flags |= SDL_WINDOW_UTILITY;
|
||||||
else if (_settings.Type == WindowType::Tooltip)
|
else if (_settings.Type == WindowType::Tooltip)
|
||||||
@@ -113,12 +113,12 @@ SDLWindow::SDLWindow(const CreateWindowSettings& settings)
|
|||||||
flags |= SDL_WINDOW_INPUT_FOCUS;
|
flags |= SDL_WINDOW_INPUT_FOCUS;
|
||||||
else
|
else
|
||||||
flags |= SDL_WINDOW_NOT_FOCUSABLE;
|
flags |= SDL_WINDOW_NOT_FOCUSABLE;
|
||||||
if (_settings.ShowAfterFirstPaint)
|
|
||||||
flags |= SDL_WINDOW_HIDDEN;
|
|
||||||
if (_settings.HasSizingFrame)
|
if (_settings.HasSizingFrame)
|
||||||
flags |= SDL_WINDOW_RESIZABLE;
|
flags |= SDL_WINDOW_RESIZABLE;
|
||||||
if (_settings.IsTopmost)
|
if (_settings.IsTopmost)
|
||||||
flags |= SDL_WINDOW_ALWAYS_ON_TOP;
|
flags |= SDL_WINDOW_ALWAYS_ON_TOP;
|
||||||
|
if (_settings.SupportsTransparency)
|
||||||
|
flags |= SDL_WINDOW_TRANSPARENT;
|
||||||
//flags |= SDL_WINDOW_HIGH_PIXEL_DENSITY;
|
//flags |= SDL_WINDOW_HIGH_PIXEL_DENSITY;
|
||||||
|
|
||||||
if (_settings.Parent == nullptr && (_settings.Type == WindowType::Tooltip || _settings.Type == WindowType::Popup))
|
if (_settings.Parent == nullptr && (_settings.Type == WindowType::Tooltip || _settings.Type == WindowType::Popup))
|
||||||
@@ -317,8 +317,6 @@ SDL_HitTestResult OnWindowHitTest(SDL_Window* win, const SDL_Point* area, void*
|
|||||||
Float2 clientPosition = Float2(static_cast<float>(area->x), static_cast<float>(area->y));
|
Float2 clientPosition = Float2(static_cast<float>(area->x), static_cast<float>(area->y));
|
||||||
Float2 screenPosition = window->ClientToScreen(clientPosition);
|
Float2 screenPosition = window->ClientToScreen(clientPosition);
|
||||||
|
|
||||||
//auto clientBounds = window->GetClientBounds();
|
|
||||||
|
|
||||||
WindowHitCodes hit = WindowHitCodes::Client;
|
WindowHitCodes hit = WindowHitCodes::Client;
|
||||||
bool handled = false;
|
bool handled = false;
|
||||||
window->OnHitTest(screenPosition, hit, handled);
|
window->OnHitTest(screenPosition, hit, handled);
|
||||||
|
|||||||
Reference in New Issue
Block a user