Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. QWS VNC doesn't work on Portrait mode
Forum Updated to NodeBB v4.3 + New Features

QWS VNC doesn't work on Portrait mode

Scheduled Pinned Locked Moved Mobile and Embedded
vncqwsembedded4.8rotate
29 Posts 3 Posters 17.6k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • SGaistS SGaist

    Yes that's what I had in mind, without forgetting the main screen first.

    K Offline
    K Offline
    kumararajas
    wrote on last edited by
    #19

    @SGaist Below the patch code, I see

        QPoint tpos;
        // Main screen
        QSize s = QSize(qt_screen->deviceWidth(), qt_screen->deviceHeight());
        tpos = qt_screen->mapFromDevice(pos, s);
    
        // Sub screens
        QList<QScreen*> screens = qt_screen->subScreens();
        if (screens.size()) 
        {
            for (int i = 0; i < screens.size(); ++i) 
            {
                QScreen *screen = screens.at(i);
                QSize s = QSize(screen->deviceWidth(), screen->deviceHeight());
                tpos = screen->mapFromDevice(pos, s);
                break;
            }
        }
    
        if (qt_last_x) {
             *qt_last_x = tpos.x();
             *qt_last_y = tpos.y();
        }
        QWSServer::mousePosition = tpos;
        qwsServerPrivate->mouseState = state;
    

    We use the tpos and mouse the mousePosition just once. Even though, we have many subscreens, we just do it once.

    Is this correct?

    Should we not do this in a loop for all the screens?

    Please let me know.

    --Kumar

    K 1 Reply Last reply
    0
    • K kumararajas

      @SGaist Below the patch code, I see

          QPoint tpos;
          // Main screen
          QSize s = QSize(qt_screen->deviceWidth(), qt_screen->deviceHeight());
          tpos = qt_screen->mapFromDevice(pos, s);
      
          // Sub screens
          QList<QScreen*> screens = qt_screen->subScreens();
          if (screens.size()) 
          {
              for (int i = 0; i < screens.size(); ++i) 
              {
                  QScreen *screen = screens.at(i);
                  QSize s = QSize(screen->deviceWidth(), screen->deviceHeight());
                  tpos = screen->mapFromDevice(pos, s);
                  break;
              }
          }
      
          if (qt_last_x) {
               *qt_last_x = tpos.x();
               *qt_last_y = tpos.y();
          }
          QWSServer::mousePosition = tpos;
          qwsServerPrivate->mouseState = state;
      

      We use the tpos and mouse the mousePosition just once. Even though, we have many subscreens, we just do it once.

      Is this correct?

      Should we not do this in a loop for all the screens?

      Please let me know.

      K Offline
      K Offline
      kumararajas
      wrote on last edited by
      #20

      Looks like I am in a wrong direction.

      I suspect "Transformed" driver is not having problem.

      I think, it is "multi" screen driver is what not working good.

      Because, when VNC option is selected, Transformed works food.
      When LinuxFb is selected, Transformed works good.

      When both are used, there lies the problem.

      I guess, we may have to look at Multi Screen driver source code to see how it has been implemented.

      Can you please point me to the right location?

      Thanks,
      Kumara

      --Kumar

      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #21

        I'd take a look a the qscreenmulti_qws.cpp file

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        K 2 Replies Last reply
        0
        • SGaistS SGaist

          I'd take a look a the qscreenmulti_qws.cpp file

          K Offline
          K Offline
          kumararajas
          wrote on last edited by
          #22

          @SGaist Oh!
          Any thing you found?

          --Kumar

          1 Reply Last reply
          0
          • SGaistS SGaist

            I'd take a look a the qscreenmulti_qws.cpp file

            K Offline
            K Offline
            kumararajas
            wrote on last edited by
            #23

            @SGaist Later I gave a try with

            export QWS_DISPLAY="VNC:Transformed:Rot270"
            

            I dont know the magic behind this.

            In my LCD display UI, looks good. And even touch works well.

            And now, in the VNC client, Application was rotated. So, I used RealVNC client and rotated the screen to 270.
            With that, UI looks good and even operation works well.

            I dont know what magic behind the scene.

            But the problem I see is, display refresh in VNC client. The screen doesnt gets refreshed. There is a hug lag while updating the screen..

            I am totally confused now, to understand the problem.

            Based on your experience,
            Where do you see the problem?

            Thanks a lot for your immense support!

            --Kumar

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #24

              90 and 270 are "complementary" meaning that 270 is equivalent to -90 so it might be that the position calculation were done wrong (or just not taking the angle in account correctly)

              Do you mean that with 90, the refreshing is done correctly on both but not the mouse handling and with 270, the refreshing is wrong but the mouse move are handled correctly ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              K 2 Replies Last reply
              0
              • SGaistS SGaist

                90 and 270 are "complementary" meaning that 270 is equivalent to -90 so it might be that the position calculation were done wrong (or just not taking the angle in account correctly)

                Do you mean that with 90, the refreshing is done correctly on both but not the mouse handling and with 270, the refreshing is wrong but the mouse move are handled correctly ?

                K Offline
                K Offline
                kumararajas
                wrote on last edited by
                #25

                @SGaist No. With both 90 or 270, I can see the mouse move is perfect. But the refreshing is not working good.

                --Kumar

                1 Reply Last reply
                0
                • SGaistS SGaist

                  90 and 270 are "complementary" meaning that 270 is equivalent to -90 so it might be that the position calculation were done wrong (or just not taking the angle in account correctly)

                  Do you mean that with 90, the refreshing is done correctly on both but not the mouse handling and with 270, the refreshing is wrong but the mouse move are handled correctly ?

                  K Offline
                  K Offline
                  kumararajas
                  wrote on last edited by kumararajas
                  #26

                  @SGaist Sam, any further thoughts?

                  I don't want to give up. I want to fix this Qt bug. For sure, I will need your / Qt experts help.

                  Thank you,
                  Kumara

                  --Kumar

                  K 1 Reply Last reply
                  0
                  • K kumararajas

                    @SGaist Sam, any further thoughts?

                    I don't want to give up. I want to fix this Qt bug. For sure, I will need your / Qt experts help.

                    Thank you,
                    Kumara

                    K Offline
                    K Offline
                    kumararajas
                    wrote on last edited by
                    #27

                    Still no success so far.

                    Any thoughts on how to handle this?

                    Thank you!
                    Kumara

                    --Kumar

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #28

                      Can you remind me the current "multiscreen" setup you have ?

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        majis
                        wrote on last edited by
                        #29

                        This is a quite old topic but what is the current situation for this problem?

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved