abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:55 | Zajímavý software

    Projekt D7VK dospěl do verze 1.0. Jedná se o fork DXVK implementující překlad volání Direct3D 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.

    Ladislav Hagara | Komentářů: 0
    včera 16:00 | Nová verze

    Byla vydána nová verze 2025.4 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení na blogu.

    Ladislav Hagara | Komentářů: 2
    včera 12:44 | IT novinky

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) zveřejnil Národní politiku koordinovaného zveřejňování zranitelností (pdf), jejímž cílem je nejen zvyšování bezpečnosti produktů informačních a komunikačních technologií (ICT), ale také ochrana objevitelů zranitelností před negativními právními dopady. Součástí je rovněž vytvoření „koordinátora pro účely CVD“, jímž je podle nového zákona o kybernetické … více »

    Ladislav Hagara | Komentářů: 9
    včera 04:33 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.12. Přehled novinek i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    včera 03:55 | Nová verze

    Společnost System76 vydala Pop!_OS 24.04 LTS s desktopovým prostředím COSMIC. Videoukázky na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 03:11 | Nová verze

    Byla vydána verze 1.92.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    včera 01:33 | Komunita

    Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2024. Oceněni byli Andy Wingo, jeden ze správců GNU Guile, Alx Sa za příspěvky do Gimpu a Govdirectory jako společensky prospěšný projekt.

    |🇵🇸 | Komentářů: 3
    11.12. 18:55 | Nová verze

    Bylo vydáno Eclipse IDE 2025-12 aneb Eclipse 4.38. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    11.12. 17:44 | Nová verze

    U příležitosti oslav osmi let prací na debianím balíčku vyšlo GPXSee 15.6. Nová verze přináší především podporu pro geotagované MP4 soubory, včetně GoPro videí. Kdo nechce čekat, až nová verze dorazí do jeho distribuce, nalezne zdrojové kódy na GitHubu.

    Martin Tůma | Komentářů: 15
    11.12. 09:22 | Nová verze

    Monado, tj. multiplatformní open source implementace standardu OpenXR specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro virtuální realitu (VR) a rozšířenou realitu (AR), bylo vydáno ve verzi 25.1.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (48%)
     (19%)
     (17%)
     (23%)
     (15%)
     (24%)
     (15%)
     (17%)
    Celkem 460 hlasů
     Komentářů: 19, poslední 11.12. 20:04
    Rozcestník

    Dotaz: Přeposílání XEvent

    17.6.2010 16:58 kralyk z abclinuxu | skóre: 29 | blog:
    Přeposílání XEvent
    Přečteno: 210×
    Ahoj,
    řeším následující problém: Potřebuju globálně odchytávat klávesu; při stlačení něco udělat a při uvolnění zase něco udělat (například zobrazi a skrýt tooltip apod., to je jedno).

    Našel jsem zatím dva způsoby řešení.
    1.) Můžu Pravidelně (v nějakém vedlejším threadu) volat XQueryKeymap() a zjišťovat si, kdy je klávesa dole a kdy nahoře. Četl jsem ale, že tahle metoda má výkonový dopad - zatěžuje Xka.
    2.) Můžu použít XGrabKey na root window, což je jednoduché a čisté, problém ale je, že daná klávesa bude fungovat pouze v mém programu, bude grabována výhradně. Abych tenhle problém obešel, přepošlu vždycky daný XEvent znova.
    Kód vypadá takhle:
      hotkey = XKeysymToKeycode(d, XStringToKeysym("Super_L"));
      XGrabKey(d, hotkey, 0, root, True, GrabModeAsync, GrabModeAsync);
      while (1)
      {
        XNextEvent(d, &e);
        if (e.type == KeyPress)
        {
          cout << "KeyPress:\n  keycode: " << e.xkey.keycode << " state: " << hex << e.xkey.state << endl;
          XSendEvent(d, root, False, KeyPressMask, &e);
        }
        if (e.type == KeyRelease)
        {
          cout << "KeyRelease:\n  keycode: " << e.xkey.keycode << " state: " << hex << e.xkey.state << endl;
          XSendEvent(d, root, False, KeyReleaseMask, &e);
        }
      }
    
    Blbý je, že tohle nefunguje jak má. Teda XEvent se přepošle, ale například u klávesových zkratek pro compiz, konkrétně u Expa, mi to dělalo divný věci; expo se spustilo, ale focus klávesnice zůstal na aktivní ploše, takže se expo nedalo ovládat klávesnicí, a stisky kláves se posílaly aplikaci s focusem na aktivní ploše místo compizu.
    Co dělám špatně?

    Díky za všecky rady.

    Odpovědi

    22.6.2010 12:27 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Přeposílání XEvent
    Opravdu nikdo neví?
    Anebo nevíte případně, kde bych se mohl po internetu ještě zeptat (anglicky mluvim)?
    22.6.2010 13:38 chrono
    Rozbalit Rozbalit vše Re: Přeposílání XEvent
    Nebolo by jednoduchšie použiť Gtk a gdk_window_add_filter (prípadne niečo podobné z Qt)? Tam potom stačí vrátiť GDK_FILTER_REMOVE alebo GDK_FILTER_CONTINUE a Gdk sa postará o poslanie tej udalosti správnemu oknu.
    22.6.2010 15:20 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Přeposílání XEvent
    Používám tenhle mechanismus v Qt, problém je, že když event ve filtru odmítnu, Qt jej přepošle "správnému oknu" pouze v rámci aplikace, ne v rámci celého WM. Nevím, jak je tohle u GTK, ale hádám, že to bude stejné...

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.