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

QXcbConnection::KeyChecker::m_release looks redundant

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: P3: Somewhat important P3: Somewhat important
    • 5.12.0 Alpha
    • 5.12
    • QPA: X11/XCB
    • None
    • Linux/X11

      It's default value is 'true' and it never gets assigned 'false';

      class KeyChecker
      {
      public:
          KeyChecker(xcb_window_t window, xcb_keycode_t code, xcb_timestamp_t time, quint16 state)
              : m_window(window)
              , m_code(code)
              , m_time(time)
              , m_state(state)
              , m_error(false)
              , m_release(true)
          {
          }
      
          bool operator() (xcb_generic_event_t *ev)
          {
              if (m_error || !ev)
                  return false;
      
              int type = ev->response_type & ~0x80;
              if (type != XCB_KEY_PRESS && type != XCB_KEY_RELEASE)
                  return false;
      
              auto *event = reinterpret_cast<xcb_key_press_event_t *>(ev);
      
              if (event->event != m_window || event->detail != m_code || event->state != m_state) {
                  m_error = true;
                  return false;
              }
      
              if (type == XCB_KEY_PRESS) {
                  m_error = !m_release || event->time - m_time > 10;
                  return !m_error;
              }
      
              if (m_release) {
                  m_error = true;
                  return false;
              }
      
              m_release = true;
              m_time = event->time;
      
              return false;
          }
      
      private:
          xcb_window_t m_window;
          xcb_keycode_t m_code;
          xcb_timestamp_t m_time;
          quint16 m_state;
      
          bool m_error;
          bool m_release;
      };
      

        For Gerrit Dashboard: QTBUG-69679
        # Subject Branch Project Status CR V

            paeglis Gatis Paeglis
            paeglis Gatis Paeglis
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes