gtk: new tab keyboard shortcut works

This commit is contained in:
Mitchell Hashimoto
2023-02-24 16:08:02 -08:00
parent ac1c961c4e
commit ad11ec145c

View File

@ -158,10 +158,9 @@ pub const App = struct {
try window.init(self); try window.init(self);
} }
pub fn newTab(self: *App, parent_: ?*CoreSurface) !void { pub fn newTab(self: *App, parent: *CoreSurface) !void {
// TODO
_ = self; _ = self;
_ = parent_; try parent.rt_surface.window.newTab();
} }
fn activate(app: *c.GtkApplication, ud: ?*anyopaque) callconv(.C) void { fn activate(app: *c.GtkApplication, ud: ?*anyopaque) callconv(.C) void {
@ -254,6 +253,7 @@ const Window = struct {
// context is ready. See Surface docs for more info. // context is ready. See Surface docs for more info.
const gl_area = c.gtk_gl_area_new(); const gl_area = c.gtk_gl_area_new();
try surface.init(self.app, .{ try surface.init(self.app, .{
.window = self,
.gl_area = @ptrCast(*c.GtkGLArea, gl_area), .gl_area = @ptrCast(*c.GtkGLArea, gl_area),
.title_label = @ptrCast(*c.GtkLabel, label_text), .title_label = @ptrCast(*c.GtkLabel, label_text),
}); });
@ -336,6 +336,9 @@ pub const Surface = struct {
pub const opengl_single_threaded_draw = true; pub const opengl_single_threaded_draw = true;
pub const Options = struct { pub const Options = struct {
/// The window that this surface is attached to.
window: *Window,
gl_area: *c.GtkGLArea, gl_area: *c.GtkGLArea,
/// The label to use as the title of this surface. This will be /// The label to use as the title of this surface. This will be
@ -357,6 +360,9 @@ pub const Surface = struct {
/// The app we're part of /// The app we're part of
app: *App, app: *App,
/// The window we're part of
window: *Window,
/// Our GTK area /// Our GTK area
gl_area: *c.GtkGLArea, gl_area: *c.GtkGLArea,
@ -441,6 +447,7 @@ pub const Surface = struct {
// Build our result // Build our result
self.* = .{ self.* = .{
.app = app, .app = app,
.window = opts.window,
.gl_area = opts.gl_area, .gl_area = opts.gl_area,
.title = if (opts.title_label) |label| .{ .title = if (opts.title_label) |label| .{
.label = label, .label = label,