copperwater / rcosadactyl Goto Github PK
View Code? Open in Web Editor NEWSpring 2015 RCOS project - Fork of Pentadactyl
Spring 2015 RCOS project - Fork of Pentadactyl
Use this issue to report any unexplained errors or warnings that get logged to the console and do not crash the program. Do not report things with a stack trace that goes back to one of our source files.
When initially running Firefox:
2015-04-19 19:46:48.912 firefox-bin[21018:903] *** __NSAutoreleaseNoPool(): Object 0x1003b7a00 of class NSCFDictionary autoreleased with no pool in place - just leaking
2015-04-19 19:46:48.914 firefox-bin[21018:903] *** __NSAutoreleaseNoPool(): Object 0x1003bf1f0 of class NSCFArray autoreleased with no pool in place - just leaking
After about a minute of Firefox running normally, five of these pop up:
2015-04-19 19:47:52.057 firefox-bin[21018:903] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary.
They appear at the same time as a bar at the bottom that says "Firefox sends some data to Mozilla to improve your user experience."
The extended command system (where you hit : and summon the panel and enter a command) is pretty much complete (we can implement most any kind of extended command). What is not complete are the shorthand commands, commands of a few key presses (like scrolling) that carry out functions without needing the panel.
This is a major part of the add-on's UI and this needs to be the next thing we do.
I don't think we need the button with a banana on it that summons the text entry panel anymore. It was part of the original add-on SDK tutorial and its functionality has been superseded by pressing colon.
Our extension should be bootstrappable (able to run without a Firefox restart). The original Pentadactyl code is bootstrappable, and ours should be too.
This page details the necessities of a bootstrapped extension.
When you enter commands in the text-entry panel, the focus is in the text box like it should be. However, when you hit Escape, the panel is hidden (this is correct behavior) and the focus stays with the text box (which is not). Thus, when you hit more keys, none of them actually register. (You can get the events to register again by clicking the window and thus restoring focus to it.)
The focus needs to be restored whenever command mode switches to normal mode automatically.
As of right now, we are able to handle single key events. However, the original Pentadactyl had a command-line mode, which you would enter by pressing the : key and then could type out extended commands. For something like that, you need to have a text box on the page so the user can see what they are typing.
I don't know if this involves manipulating the page's DOM and overlaying a new div, or using a dynamically loaded XUL file with loadOverlay(), or whatever, but at the moment I don't know how to do this.
Right now, if I cfx run
and go some scrollable site like stackoverflow.com, keydown events log in the console and are able to scroll the page. However, if I go to some image, like http://www.upv.es/antenas/Catalogo_fotos/radioastronomia/looksouth.jpg, keydown events neither log nor scroll.
A lot of the code at the end of main.js inside text_entry.port.on("text-entered", function (text) {
is way more low-level than it needs to be. Most of it deals with opening or closing windows or tabs, and we should be using the SDK windows and tabs modules for these functions.
If at all possible our code should not need to require("chrome")
.
I created js_keycodes.txt with the mapping of all the keys on my keyboard to numbers. We need to verify that these mappings are the same on a Windows keyboard.
Specifically, we need to know the values of all the keys that don't directly have an ASCII value. So Ctrl, Alt, Shift, Escape, Backspace, Fn, and so on. I expect most of them will be the same across all platforms/keyboards.
Once this is done, the metaPressed field in handleKeypress.js should be completed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.