mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-14 00:14:11 +09:00
Merge pull request #11820 from akallabeth/sdl-console
[client,sdl] disable connection dialog
This commit is contained in:
@@ -20,17 +20,27 @@
|
||||
|
||||
#include <sstream>
|
||||
|
||||
#include <freerdp/freerdp.h>
|
||||
#include <freerdp/settings.h>
|
||||
#include <freerdp/log.h>
|
||||
|
||||
#include "../sdl_utils.hpp"
|
||||
#include "sdl_connection_dialog.hpp"
|
||||
#include "sdl_connection_dialog_wrapper.hpp"
|
||||
|
||||
SdlConnectionDialogWrapper::SdlConnectionDialogWrapper() = default;
|
||||
SdlConnectionDialogWrapper::SdlConnectionDialogWrapper(wLog* log) : _log(log)
|
||||
{
|
||||
}
|
||||
|
||||
SdlConnectionDialogWrapper::~SdlConnectionDialogWrapper() = default;
|
||||
|
||||
void SdlConnectionDialogWrapper::create(rdpContext* context)
|
||||
{
|
||||
_connection_dialog = std::make_unique<SDLConnectionDialog>(context);
|
||||
const auto enabled =
|
||||
freerdp_settings_get_bool(context->settings, FreeRDP_UseCommonStdioCallbacks);
|
||||
_connection_dialog.reset();
|
||||
if (!enabled)
|
||||
_connection_dialog = std::make_unique<SDLConnectionDialog>(context);
|
||||
}
|
||||
|
||||
void SdlConnectionDialogWrapper::destroy()
|
||||
@@ -154,10 +164,7 @@ void SdlConnectionDialogWrapper::handleShow()
|
||||
auto arg = _queue.front();
|
||||
_queue.pop();
|
||||
|
||||
if (!_connection_dialog)
|
||||
continue;
|
||||
|
||||
if (arg.hasTitle())
|
||||
if (arg.hasTitle() && _connection_dialog)
|
||||
{
|
||||
_connection_dialog->setTitle(arg.title().c_str());
|
||||
}
|
||||
@@ -167,20 +174,29 @@ void SdlConnectionDialogWrapper::handleShow()
|
||||
switch (arg.type())
|
||||
{
|
||||
case SdlConnectionDialogWrapper::MSG_INFO:
|
||||
_connection_dialog->showInfo(arg.message().c_str());
|
||||
if (_connection_dialog)
|
||||
_connection_dialog->showInfo(arg.message().c_str());
|
||||
else
|
||||
WLog_Print(_log, WLOG_INFO, "%s", arg.message().c_str());
|
||||
break;
|
||||
case SdlConnectionDialogWrapper::MSG_WARN:
|
||||
_connection_dialog->showWarn(arg.message().c_str());
|
||||
if (_connection_dialog)
|
||||
_connection_dialog->showWarn(arg.message().c_str());
|
||||
else
|
||||
WLog_Print(_log, WLOG_WARN, "%s", arg.message().c_str());
|
||||
break;
|
||||
case SdlConnectionDialogWrapper::MSG_ERROR:
|
||||
_connection_dialog->showError(arg.message().c_str());
|
||||
if (_connection_dialog)
|
||||
_connection_dialog->showError(arg.message().c_str());
|
||||
else
|
||||
WLog_Print(_log, WLOG_ERROR, "%s", arg.message().c_str());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (arg.hasVisibility())
|
||||
if (arg.hasVisibility() && _connection_dialog)
|
||||
{
|
||||
if (arg.visible())
|
||||
_connection_dialog->show();
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <string>
|
||||
#include <queue>
|
||||
|
||||
#include <winpr/wlog.h>
|
||||
#include <winpr/platform.h>
|
||||
#include <freerdp/types.h>
|
||||
|
||||
@@ -44,7 +45,7 @@ class SdlConnectionDialogWrapper
|
||||
MSG_DISCARD
|
||||
};
|
||||
|
||||
SdlConnectionDialogWrapper();
|
||||
explicit SdlConnectionDialogWrapper(wLog* log);
|
||||
~SdlConnectionDialogWrapper();
|
||||
|
||||
SdlConnectionDialogWrapper(const SdlConnectionDialogWrapper& other) = delete;
|
||||
@@ -115,6 +116,7 @@ class SdlConnectionDialogWrapper
|
||||
void push(EventArg&& arg);
|
||||
|
||||
mutable std::mutex _mux;
|
||||
std::unique_ptr<SDLConnectionDialog> _connection_dialog;
|
||||
std::queue<EventArg> _queue;
|
||||
std::unique_ptr<SDLConnectionDialog> _connection_dialog{};
|
||||
std::queue<EventArg> _queue{};
|
||||
wLog* _log = nullptr;
|
||||
};
|
||||
|
||||
@@ -1744,7 +1744,7 @@ bool SdlContext::update_resizeable(bool enable)
|
||||
|
||||
SdlContext::SdlContext(rdpContext* context)
|
||||
: _context(context), log(WLog_Get(SDL_TAG)), disp(this), input(this), clip(this),
|
||||
primary(nullptr, SDL_DestroySurface), rdp_thread_running(false)
|
||||
primary(nullptr, SDL_DestroySurface), rdp_thread_running(false), dialog(log)
|
||||
{
|
||||
WINPR_ASSERT(context);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user