DSSeat: add/register slot for windowStackChanged signal 07/242107/1
authorSung-Jin Park <sj76.park@samsung.com>
Mon, 24 Aug 2020 05:48:05 +0000 (14:48 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Mon, 24 Aug 2020 06:34:12 +0000 (15:34 +0900)
Change-Id: Ida868f529c5c9a766b08414da5a269caee525506
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
src/DSSeat/DSSeat.cpp
src/DSSeat/DSSeat.h

index 645b45f..0030478 100644 (file)
@@ -58,7 +58,8 @@ DSSeat::DSSeat()
          __numPointer(0),
          __numKeyboard(0),
          __numTouch(0),
-         __focusWin(nullptr)
+         __focusWin(nullptr),
+         __stackChanged(false)
 {
 }
 
@@ -75,7 +76,8 @@ DSSeat::DSSeat(DSCompositor *compositor, std::string name)
          __numPointer(0),
          __numKeyboard(0),
          __numTouch(0),
-         __focusWin(nullptr)
+         __focusWin(nullptr),
+         __stackChanged(false)
 {
        if (!compositor)
                return;
@@ -138,6 +140,7 @@ bool DSSeat::attachZone(std::shared_ptr<DSZone> zone)
 
        __zone = zone;
        __zone->registerCallbackWindowCreated(this, std::bind(&DSSeat::__onWindowCreated, this, std::placeholders::_1));
+       __zone->registerCallbackWindowStackChanged(this, std::bind(&DSSeat::__onWindowStackChanged, this, std::placeholders::_1));
        __zone->registerCallbackWindowDestroy(this, std::bind(&DSSeat::__onWindowDestroy, this, std::placeholders::_1));
 
        return true;
@@ -460,6 +463,11 @@ void DSSeat::__onTouchEvent(DSInputTouchEvent *ev)
        __touch->processEvent(ev, nullptr);
 }
 
+void DSSeat::__onWindowStackChanged(std::shared_ptr<DSWindow> topWindow)
+{
+       __stackChanged = true;
+}
+
 void DSSeat::__onWindowCreated(std::shared_ptr<DSWindow> window)
 {
        DSLOG_INF("DSSeat", "window created : %p (%p)", window, window.get());
index a599b50..6b7cc01 100644 (file)
@@ -91,6 +91,7 @@ private:
        uint32_t __numTouch;
 
        std::shared_ptr<DSWindow> __focusWin;
+       bool __stackChanged;
 
        void __initSlots();
        void __initEventHandlers();
@@ -109,6 +110,7 @@ private:
        void __onKeyEvent(DSInputKeyboardEvent *ev);
        void __onPointerEvent(DSInputMouseEvent *ev);
        void __onTouchEvent(DSInputTouchEvent *ev);
+       void __onWindowStackChanged(std::shared_ptr<DSWindow> topWindow);
        void __onWindowCreated(std::shared_ptr<DSWindow> window);
        void __onWindowDestroy(std::shared_ptr<DSWindow> window);
 };