zoukankan      html  css  js  c++  java
  • 【笔记】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吨救援拖车
  • 相关阅读:
    四则运算02
    第三周学习进度条
    《构建之法》阅读笔记1
    第二周学习进度条
    四则运算01
    第八周进度条
    每日站立会日07,08
    每日站立会议06
    每日站立会议05
    每日站立会议04
  • 原文地址:https://www.cnblogs.com/panther1942/p/15717745.html
Copyright © 2011-2022 走看看