• 【笔记】GTK的bind函数的参数


    自打用了cinnamon之后 无比想念gnome的扩展 虽然都是基于gjs的东西 但是gnome的插件在cinnamon上没有就很痛苦

    这次修改了个插件 recents 记录历史打开的文件 想添加个功能 鼠标右键文件打开该文件所在的目录

    这个功能在gnome上是有的 但是cinnamon上没有

    对比半天 找到主要实现方法是 _launchFile(a, event, uri)

    在cinnamon的插件recents的applets文件中的函数定义是_launchFile(a, b, c, uri)

    给我弄懵了 为啥参数数量不一样 而且这个abc啥玩意

    我用global.log打印出来在调试器看(alt+f2 -> lg = melange)

    发现a是actor 就是点击的元素 b没有输出 c输出false

    往上找发现是调用的Lang.bind()函数

    该函数接收两个参数 第一个为元素对象 就是个actor 第二个是触发的事件

    直接按照gnome的扩展调用 b.get_button();

    果然输出鼠标按下的键

    1是左键 2是中键 3是右键

    那么直接把原来判断按键的代码复制过来就能用了

    _launchFile(a, event, uri) {
        if (event.get_button() == 3) {
            uri = Gio.Vfs.get_default().get_file_for_uri(uri).get_parent().get_uri();
        }
    
        try {
            Gio.app_info_launch_default_for_uri(uri, global.create_app_launch_context(0, -1));
        } catch (err) {
            Main.notify(_('Recent Manager'), err.message);
        }
    }
    来自1942年冬季攻势中的中央集团军的037号17吨救援拖车
  • 相关阅读:
    [SCOI2015]国旗计划
    [SCOI2015]小凸玩矩阵
    点分治复习笔记
    [HNOI2014]米特运输
    [HNOI2015]接水果
    [HEOI2016/TJOI2016]游戏
    为什么验证集的loss会小于训练集的loss?
    转载GPU并行计算
    深度学习图像标注工具汇总(转载)
    你理解了吗?
  • 原文地址:https://www.cnblogs.com/panther1942/p/15717745.html
Copyright © 2020-2023  润新知