CEF 3无边界的窗户
CEF 3 Borderless window
我是CEF的新手,我正在尝试在Ubuntu 12.04 x64上创建新的无边界浏览器(仅用于网页查看)。目前,我已经尝试过这种方式(GTK顶级窗口 ->禁用装饰 ->将窗口信息设置为parent设置为先前板条窗口 ->创建浏览器):
GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_decorated (GTK_WINDOW(window), FALSE);
CefWindowHandle window_handle = GDK_WINDOW_XWINDOW (GTK_WIDGET (window)->window);
CefWindowInfo window_info;
window_info.SetAsChild(window_handle, CefRect(100, 100, 800, 600));
CefBrowserHost::CreateBrowser(window_info, handler, url, browser_settings, NULL);
,但这仅在指定位置打开浏览器,其宽度/高度仍然有边界。
另一方面,我仅在Windows上成功创建了无边界浏览器窗口:
CefWindowInfo window_info;
window_info.style = WS_VISIBLE | WS_POPUP;
window_info.x = 2120;
window_info.y = 200;
window_info.width = 800;
window_info.height = 600;
CefBrowserHost::CreateBrowserSync(window_info, handler, url, browser_settings, NULL);
注意:
- 我无法重建整个CEF,
- 我无法升级Ubuntu。
我解决了X11窗口管理器的问题。
首先,我创建一个用于删除窗口边框的函数:
#include <X11/Xlib.h>
static void RemoveBorders(Window window) {
struct Data {
unsigned long flags;
unsigned long functions;
unsigned long decorations;
long inputMode;
unsigned long status;
} data = {2, 0, 0, 0, 0};
auto display = cef_get_xdisplay();
auto atom = XInternAtom(display, "_MOTIF_WM_HINTS", True);
XChangeProperty(display, window, atom, atom, 32, PropModeReplace, (unsigned char*)&data, 5);
}
之后,当我创建浏览器时,我同步创建它以检索创建的浏览器句柄,并在浏览器上调用removeBorders函数窗口window handle:
...
auto browser = CefBrowserHost::CreateBrowserSync(window_info, handler, url, browser_settings, NULL);
RemoveBorders(browser->GetHost()->GetWindowHandle());
...
相关文章:
- std::当在256字节边界上写入整数时,流的奇怪行为
- 使用不变量来确定二分搜索中的边界条件
- 跨 DLL 边界访问虚拟方法是否安全/可能?
- 在 64 位边界上对齐C++结构数组?
- std::数组边界检查如何工作?
- CGAL:如何创建填充边界曲线的曲面网格?
- 如何在窗户上使用和配置叮当声?
- 在 c++ 中是否允许创建具有运行时边界的数组?
- 是否可以跨 dll 边界返回常量引用/指向 std::vectors?
- C++11:16 字节原子<>变量是否在 16 字节边界上自动对齐,从而允许CMPXCHG16B指令?
- 转换引用对象的边界框?
- 从 c++ 运行 MsiExec.exe?窗户
- 将迭代器作为 3 个元素的滑动窗口,可以超调边界(可能使用 Boost)
- 算法设计:用边界数字表示 2D 网格的最佳方式,以C++?
- 查找矩形的边界集
- 在sfml中获取可转换的边界框
- SystemC sc_signal数组内存边界
- 如何处理libstdc++跨执行边界抛出的异常
- BoostSpirit.Qi-针对原始数据类型进行边界检查
- CEF 3无边界的窗户