auto merge of #4655 : glennw/servo/cef-glutin, r=larsbergstrom

This commit is contained in:
bors-servo 2015-01-19 12:57:46 -07:00
commit e4f0b816d5
5 changed files with 127 additions and 14 deletions

49
ports/cef/Cargo.lock generated
View file

@ -9,8 +9,7 @@ dependencies = [
"devtools 0.0.1",
"geom 0.1.0 (git+https://github.com/servo/rust-geom)",
"gfx 0.0.1",
"glfw 0.0.1 (git+https://github.com/servo/glfw-rs?ref=servo)",
"glfw_app 0.0.1",
"glutin_app 0.0.1",
"js 0.1.0 (git+https://github.com/servo/rust-mozjs)",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
"msg 0.0.1",
@ -24,6 +23,14 @@ dependencies = [
"util 0.0.1",
]
[[package]]
name = "android_glue"
version = "0.0.1"
source = "git+https://github.com/servo/android-rs-glue?ref=servo#122bc28545b5e59a923c466a484c403fa691bd55"
dependencies = [
"compile_msg 0.1.3 (git+https://github.com/huonw/compile_msg)",
]
[[package]]
name = "azure"
version = "0.1.0"
@ -61,6 +68,11 @@ name = "cocoa"
version = "0.1.1"
source = "git+https://github.com/servo/rust-cocoa#bf53a53ce306279fc1cae0d56fdd5e7216696420"
[[package]]
name = "compile_msg"
version = "0.1.3"
source = "git+https://github.com/huonw/compile_msg#b19da50cacf5b11bbc065da6b449f6b4fe7c019a"
[[package]]
name = "compositing"
version = "0.0.1"
@ -327,6 +339,34 @@ dependencies = [
"util 0.0.1",
]
[[package]]
name = "glutin"
version = "0.0.2"
source = "git+https://github.com/servo/glutin?ref=servo#db27370a1cbafcbfcaeee52a44076a61b3e0573c"
dependencies = [
"android_glue 0.0.1 (git+https://github.com/servo/android-rs-glue?ref=servo)",
"cocoa 0.1.1 (git+https://github.com/servo/rust-cocoa)",
"core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)",
"gl_common 0.0.1 (git+https://github.com/bjz/gl-rs.git)",
"gl_generator 0.0.1 (git+https://github.com/bjz/gl-rs.git)",
"winapi 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "glutin_app"
version = "0.0.1"
dependencies = [
"cgl 0.0.1 (git+https://github.com/servo/rust-cgl)",
"compositing 0.0.1",
"geom 0.1.0 (git+https://github.com/servo/rust-geom)",
"gleam 0.0.1 (git+https://github.com/servo/gleam)",
"glutin 0.0.2 (git+https://github.com/servo/glutin?ref=servo)",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
"msg 0.0.1",
"time 0.1.0 (git+https://github.com/rust-lang/time)",
"util 0.0.1",
]
[[package]]
name = "glx"
version = "0.0.1"
@ -726,6 +766,11 @@ name = "uuid"
version = "0.1.1"
source = "git+https://github.com/rust-lang/uuid#fc793c974a25c126c5cf5daa3b18973512a7a6a0"
[[package]]
name = "winapi"
version = "0.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "xlib"
version = "0.1.0"

View file

@ -11,8 +11,8 @@ crate-type = ["dylib"]
[dependencies.servo]
path = "../../components/servo"
[dependencies.glfw_app]
path = "../glfw"
[dependencies.glutin_app]
path = "../glutin"
[dependencies.plugins]
path = "../../components/plugins"
@ -44,10 +44,6 @@ git = "https://github.com/servo/rust-azure"
[dependencies.geom]
git = "https://github.com/servo/rust-geom"
[dependencies.glfw]
git = "https://github.com/servo/glfw-rs"
branch = "servo"
[dependencies.js]
git = "https://github.com/servo/rust-mozjs"

View file

@ -13,7 +13,7 @@ use types::{cef_browser_settings_t, cef_string_t, cef_window_info_t};
use window;
use compositing::windowing::{WindowNavigateMsg, WindowEvent};
use glfw_app;
use glutin_app;
use libc::c_int;
use servo_util::opts;
use std::cell::{Cell, RefCell};
@ -24,7 +24,7 @@ thread_local!(pub static BROWSERS: RefCell<Vec<CefBrowser>> = RefCell::new(vec!(
pub enum ServoBrowser {
Invalid,
OnScreen(Browser<glfw_app::window::Window>),
OnScreen(Browser<glutin_app::window::Window>),
OffScreen(Browser<window::Window>),
}
@ -96,8 +96,8 @@ impl ServoCefBrowser {
let host = ServoCefBrowserHost::new(client.clone()).as_cef_interface();
let servo_browser = if window_info.windowless_rendering_enabled == 0 {
let glfw_window = glfw_app::create_window();
let servo_browser = Browser::new(Some(glfw_window.clone()));
let glutin_window = glutin_app::create_window();
let servo_browser = Browser::new(Some(glutin_window.clone()));
ServoBrowser::OnScreen(servo_browser)
} else {
ServoBrowser::Invalid

View file

@ -20,8 +20,7 @@ extern crate azure;
extern crate geom;
extern crate gfx;
extern crate gleam;
extern crate glfw;
extern crate glfw_app;
extern crate glutin_app;
extern crate js;
extern crate layers;
extern crate png;

View file

@ -377,12 +377,85 @@ fn glutin_mods_to_script_mods(modifiers: KeyModifiers) -> constellation_msg::Key
fn glutin_key_to_script_key(key: glutin::VirtualKeyCode) -> Result<constellation_msg::Key, ()> {
// TODO(negge): add more key mappings
match key {
VirtualKeyCode::A => Ok(Key::A),
VirtualKeyCode::B => Ok(Key::B),
VirtualKeyCode::C => Ok(Key::C),
VirtualKeyCode::D => Ok(Key::D),
VirtualKeyCode::E => Ok(Key::E),
VirtualKeyCode::F => Ok(Key::F),
VirtualKeyCode::G => Ok(Key::G),
VirtualKeyCode::H => Ok(Key::H),
VirtualKeyCode::I => Ok(Key::I),
VirtualKeyCode::J => Ok(Key::J),
VirtualKeyCode::K => Ok(Key::K),
VirtualKeyCode::L => Ok(Key::L),
VirtualKeyCode::M => Ok(Key::M),
VirtualKeyCode::N => Ok(Key::N),
VirtualKeyCode::O => Ok(Key::O),
VirtualKeyCode::P => Ok(Key::P),
VirtualKeyCode::Q => Ok(Key::Q),
VirtualKeyCode::R => Ok(Key::R),
VirtualKeyCode::S => Ok(Key::S),
VirtualKeyCode::T => Ok(Key::T),
VirtualKeyCode::U => Ok(Key::U),
VirtualKeyCode::V => Ok(Key::V),
VirtualKeyCode::W => Ok(Key::W),
VirtualKeyCode::X => Ok(Key::X),
VirtualKeyCode::Y => Ok(Key::Y),
VirtualKeyCode::Z => Ok(Key::Z),
VirtualKeyCode::Numpad0 => Ok(Key::Num0),
VirtualKeyCode::Numpad1 => Ok(Key::Num1),
VirtualKeyCode::Numpad2 => Ok(Key::Num2),
VirtualKeyCode::Numpad3 => Ok(Key::Num3),
VirtualKeyCode::Numpad4 => Ok(Key::Num4),
VirtualKeyCode::Numpad5 => Ok(Key::Num5),
VirtualKeyCode::Numpad6 => Ok(Key::Num6),
VirtualKeyCode::Numpad7 => Ok(Key::Num7),
VirtualKeyCode::Numpad8 => Ok(Key::Num8),
VirtualKeyCode::Numpad9 => Ok(Key::Num9),
VirtualKeyCode::Key0 => Ok(Key::Kp0),
VirtualKeyCode::Key1 => Ok(Key::Kp1),
VirtualKeyCode::Key2 => Ok(Key::Kp2),
VirtualKeyCode::Key3 => Ok(Key::Kp3),
VirtualKeyCode::Key4 => Ok(Key::Kp4),
VirtualKeyCode::Key5 => Ok(Key::Kp5),
VirtualKeyCode::Key6 => Ok(Key::Kp6),
VirtualKeyCode::Key7 => Ok(Key::Kp7),
VirtualKeyCode::Key8 => Ok(Key::Kp8),
VirtualKeyCode::Key9 => Ok(Key::Kp9),
VirtualKeyCode::Return => Ok(Key::Enter),
VirtualKeyCode::Space => Ok(Key::Space),
VirtualKeyCode::Escape => Ok(Key::Escape),
VirtualKeyCode::Equals => Ok(Key::Equal),
VirtualKeyCode::Minus => Ok(Key::Minus),
VirtualKeyCode::Back => Ok(Key::Backspace),
VirtualKeyCode::PageDown => Ok(Key::PageDown),
VirtualKeyCode::PageUp => Ok(Key::PageUp),
VirtualKeyCode::Insert => Ok(Key::Insert),
VirtualKeyCode::Home => Ok(Key::Home),
VirtualKeyCode::Delete => Ok(Key::Delete),
VirtualKeyCode::End => Ok(Key::End),
VirtualKeyCode::Left => Ok(Key::Left),
VirtualKeyCode::Up => Ok(Key::Up),
VirtualKeyCode::Right => Ok(Key::Right),
VirtualKeyCode::Down => Ok(Key::Down),
VirtualKeyCode::Apostrophe => Ok(Key::Apostrophe),
VirtualKeyCode::Backslash => Ok(Key::Backslash),
VirtualKeyCode::Comma => Ok(Key::Comma),
VirtualKeyCode::Grave => Ok(Key::GraveAccent),
VirtualKeyCode::LBracket => Ok(Key::LeftBracket),
VirtualKeyCode::Period => Ok(Key::Period),
VirtualKeyCode::RBracket => Ok(Key::RightBracket),
VirtualKeyCode::Semicolon => Ok(Key::Semicolon),
VirtualKeyCode::Slash => Ok(Key::Slash),
VirtualKeyCode::Tab => Ok(Key::Tab),
_ => Err(()),
}
}