华为L420切换显示器影音应用闪退问题

开发环境

            操作系统 : 银河麒麟V10SP1
            qt版本   : qt5.13
            电脑型号 : HUAWEI QingYun L420 KLVV-W5821


排查过程

         这是一个必现的问题,只要是使用Ctrl + P切换显示器(笔记本自身的显示器与外接显示器来回切换,只有一个显示器生效),影音应用就会闪退

         直接从coredump文件查看崩溃位置,再一路反向排查,发现是此处代码有问题

    //这是qtwayland中的代码,经过测试发现每次在切换显示器时,size的宽高就会变成0,这导致mRequestedSize的宽高也变成了0
    
    //继而导致后边使用mRequestedSize的位置发生崩溃
    
    void QWaylandShmBackingStore::resize(const QSize &size, const QRegion &)
    {
        mRequestedSize = size;
    }


修改方法

 //目前想到的方法是对size进行判断,不正常的size就不赋值了,目前通过自测没有发现其他问题
 void QWaylandShmBackingStore::resize(const QSize &size, const QRegion &)
 {
      if(size.width() == 0 || size.height() == 0){
             return;
      }
      mRequestedSize = size;
 }


后记

电脑的显示是edp显示,我看分辨率很高,不知道是不是显示器硬件上的问题?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值