176 m_clientListener = p;
199 void getClients(std::vector<std::string> &list)
const;
210 uint32_t getActivePrimarySides()
const;
215 bool isLockedToScreenServer()
const;
219 bool isLockedToScreen()
const;
225 void switchScreen(
BaseClientProxy *, int32_t x, int32_t y,
bool forScreenSaver);
264 void noSwitch(int32_t x, int32_t y);
270 void startSwitchTwoTap();
273 void armSwitchTwoTap(int32_t x, int32_t y);
276 void stopSwitchTwoTap();
279 bool isSwitchTwoTapStarted()
const;
282 bool shouldSwitchTwoTap()
const;
285 void startSwitchWait(int32_t x, int32_t y);
288 void stopSwitchWait();
291 bool isSwitchWaitStarted()
const;
295 uint32_t getCorner(
const BaseClientProxy *, int32_t x, int32_t y, int32_t size)
const;
298 void stopRelativeMoves();
304 void processOptions();
310 void handleKeyDownEvent(
const Event &event);
311 void handleKeyUpEvent(
const Event &event);
312 void handleKeyRepeatEvent(
const Event &event);
313 void handleButtonDownEvent(
const Event &event);
314 void handleButtonUpEvent(
const Event &event);
315 void handleMotionPrimaryEvent(
const Event &event);
316 void handleMotionSecondaryEvent(
const Event &event);
317 void handleWheelEvent(
const Event &event);
318 void handleSwitchWaitTimeout();
321 void handleSwitchToScreenEvent(
const Event &event);
322 void handleSwitchInDirectionEvent(
const Event &event);
323 void handleToggleScreenEvent(
const Event &);
324 void handleKeyboardBroadcastEvent(
const Event &event);
325 void handleLockCursorToScreenEvent(
const Event &event);
329 void onScreensaver(
bool activated);
335 bool onMouseMovePrimary(int32_t x, int32_t y);
336 void onMouseMoveSecondary(int32_t dx, int32_t dy);
337 void onMouseWheel(int32_t xDelta, int32_t yDelta);
353 void closeAllClients();
366 ClipboardInfo() =
default;
370 std::string m_clipboardData;
371 std::string m_clipboardOwner;
372 uint32_t m_clipboardSeqNum = 0;
377 PrimaryClient *m_primaryClient =
nullptr;
380 BaseClientProxy *m_active =
nullptr;
383 ServerConfig *m_config =
nullptr;
386 InputFilter *m_inputFilter =
nullptr;
389 BaseClientProxy *m_activeSaver =
nullptr;
391 BaseClientProxy *m_switchScreen =
nullptr;
392 double m_switchWaitDelay = 0.0;
393 EventQueueTimer *m_switchWaitTimer =
nullptr;
396 double m_switchTwoTapDelay = 0.0;
399 deskflow::Screen *m_screen;
401 IEventQueue *m_events =
nullptr;
402 size_t m_maximumClipboardSize = INT_MAX;
403 ClientListener *m_clientListener =
nullptr;
404 Stopwatch m_switchTwoTapTimer;
407 std::string m_keyboardBroadcastingScreens;
410 using ClientList = std::map<std::string, BaseClientProxy *>;
411 using ClientSet = std::set<BaseClientProxy *>;
412 ClientList m_clients;
413 ClientSet m_clientSet;
416 using OldClients = std::map<BaseClientProxy *, EventQueueTimer *>;
417 OldClients m_oldClients;
420 ClipboardInfo m_clipboards[kClipboardEnd];
426 uint32_t m_seqNum = 0;
437 int32_t m_xDelta = 0;
438 int32_t m_yDelta = 0;
439 int32_t m_xDelta2 = 0;
440 int32_t m_yDelta2 = 0;
446 int32_t m_switchWaitX;
447 int32_t m_switchWaitY;
449 int32_t m_switchTwoTapZone = 3;
455 bool m_switchTwoTapEngaged =
false;
456 bool m_switchTwoTapArmed =
false;
459 bool m_relativeMoves =
false;
463 bool m_keyboardBroadcasting =
false;
466 bool m_lockedToScreen =
false;
468 bool m_defaultLockToScreenState =
false;
469 bool m_disableLockToScreen =
false;
470 bool m_enableClipboard =
true;