Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-98649

Qt Android creates View IDs in a way potentially leading to a collision

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P3: Somewhat important
    • None
    • 6.2
    • Core: Plugins
    • None
    • Android

    Description

      Qt Android uses consecutive numbers starting from 1 as ids for View.setId(int) (variable m_surfaceId in src/plugins/platforms/android/androidjnimain.cpp). Additionally, the ids are used internally with an assumption that they are unique. It leads to unexpected behavior in some specific scenarios.

      Exemplary situation leading to an undef behavior can be reproduced as follows:

      1. add native view using insertNativeView(id, ...) using id obtained via View.generateViewId()
      2. change coordinates of the added view using setSurfaceGeometry(id, ...)

      As a result, geometry is changed for surface rendering Qt application not for just added native view because of the colliding ids.

       

      My proposition is to use View.generateViewId() in androidjnimain.cpp for obtaining id, instead of relying on a private counter.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            mcieslak Michał Cieślak
            mcieslak Michał Cieślak
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes